Merge branch 'master' into feature-cnt
This commit is contained in:
3
.github/CODEOWNERS
vendored
3
.github/CODEOWNERS
vendored
@ -117,6 +117,9 @@ tools/msi2lmp/* @akohlmey
|
|||||||
tools/emacs/* @HaoZeke
|
tools/emacs/* @HaoZeke
|
||||||
tools/singularity/* @akohlmey @rbberger
|
tools/singularity/* @akohlmey @rbberger
|
||||||
|
|
||||||
|
# tests
|
||||||
|
unittest/* @akohlmey @rbberger
|
||||||
|
|
||||||
# cmake
|
# cmake
|
||||||
cmake/* @junghans @rbberger
|
cmake/* @junghans @rbberger
|
||||||
cmake/Modules/Packages/USER-COLVARS.cmake @junghans @rbberger @giacomofiorin
|
cmake/Modules/Packages/USER-COLVARS.cmake @junghans @rbberger @giacomofiorin
|
||||||
|
|||||||
@ -3,6 +3,11 @@
|
|||||||
# This file is part of LAMMPS
|
# This file is part of LAMMPS
|
||||||
# Created by Christoph Junghans and Richard Berger
|
# Created by Christoph Junghans and Richard Berger
|
||||||
cmake_minimum_required(VERSION 3.10)
|
cmake_minimum_required(VERSION 3.10)
|
||||||
|
# set policy to silence warnings about ignoring <PackageName>_ROOT but use it
|
||||||
|
if(POLICY CMP0074)
|
||||||
|
cmake_policy(SET CMP0074 NEW)
|
||||||
|
endif()
|
||||||
|
########################################
|
||||||
|
|
||||||
project(lammps CXX)
|
project(lammps CXX)
|
||||||
set(SOVERSION 0)
|
set(SOVERSION 0)
|
||||||
@ -27,6 +32,12 @@ endif()
|
|||||||
# Cmake modules/macros are in a subdirectory to keep this file cleaner
|
# Cmake modules/macros are in a subdirectory to keep this file cleaner
|
||||||
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/Modules)
|
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/Modules)
|
||||||
|
|
||||||
|
# make sure LIBRARY_PATH is set if environment variable is set
|
||||||
|
if (DEFINED ENV{LIBRARY_PATH})
|
||||||
|
list(APPEND CMAKE_LIBRARY_PATH "$ENV{LIBRARY_PATH}")
|
||||||
|
message(STATUS "Appending $ENV{LIBRARY_PATH} to CMAKE_LIBRARY_PATH: ${CMAKE_LIBRARY_PATH}")
|
||||||
|
endif()
|
||||||
|
|
||||||
include(LAMMPSUtils)
|
include(LAMMPSUtils)
|
||||||
|
|
||||||
get_lammps_version(${LAMMPS_SOURCE_DIR}/version.h PROJECT_VERSION)
|
get_lammps_version(${LAMMPS_SOURCE_DIR}/version.h PROJECT_VERSION)
|
||||||
@ -60,11 +71,11 @@ if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel")
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
|
if(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
|
||||||
set(CMAKE_TUNE_DEFAULT "-ffast-math -march=native")
|
set(CMAKE_TUNE_DEFAULT "-march=native")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
|
if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
|
||||||
set(CMAKE_TUNE_DEFAULT "-ffast-math -march=native")
|
set(CMAKE_TUNE_DEFAULT "-march=native")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# we require C++11 without extensions
|
# we require C++11 without extensions
|
||||||
@ -547,8 +558,6 @@ if(BUILD_SHARED_LIBS)
|
|||||||
configure_file(pkgconfig/liblammps.pc.in ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_MACHINE}.pc @ONLY)
|
configure_file(pkgconfig/liblammps.pc.in ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_MACHINE}.pc @ONLY)
|
||||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_MACHINE}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_MACHINE}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
||||||
install(EXPORT LAMMPS_Targets FILE LAMMPS_Targets.cmake NAMESPACE LAMMPS:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/LAMMPS)
|
install(EXPORT LAMMPS_Targets FILE LAMMPS_Targets.cmake NAMESPACE LAMMPS:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/LAMMPS)
|
||||||
file(GLOB MODULE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/Modules/Find*.cmake)
|
|
||||||
install(FILES ${MODULE_FILES} DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/LAMMPS)
|
|
||||||
include(CMakePackageConfigHelpers)
|
include(CMakePackageConfigHelpers)
|
||||||
configure_file(LAMMPSConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/LAMMPSConfig.cmake @ONLY)
|
configure_file(LAMMPSConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/LAMMPSConfig.cmake @ONLY)
|
||||||
write_basic_package_version_file("LAMMPSConfigVersion.cmake" VERSION ${PROJECT_VERSION} COMPATIBILITY ExactVersion)
|
write_basic_package_version_file("LAMMPSConfigVersion.cmake" VERSION ${PROJECT_VERSION} COMPATIBILITY ExactVersion)
|
||||||
|
|||||||
@ -1,11 +1,5 @@
|
|||||||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
|
|
||||||
include(CMakeFindDependencyMacro)
|
include(CMakeFindDependencyMacro)
|
||||||
if(@BUILD_MPI@)
|
if(@BUILD_MPI@)
|
||||||
find_dependency(MPI REQUIRED CXX)
|
find_dependency(MPI REQUIRED CXX)
|
||||||
endif()
|
endif()
|
||||||
if(@PKG_KSPACE@)
|
|
||||||
if(@FFT@ STREQUAL "FFTW3")
|
|
||||||
find_dependency(@FFTW@ REQUIRED MODULE)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
include("${CMAKE_CURRENT_LIST_DIR}/LAMMPS_Targets.cmake")
|
include("${CMAKE_CURRENT_LIST_DIR}/LAMMPS_Targets.cmake")
|
||||||
|
|||||||
@ -15,14 +15,35 @@ if(ENABLE_COVERAGE)
|
|||||||
gen_coverage_xml
|
gen_coverage_xml
|
||||||
COMMAND ${GCOVR_BINARY} -s -x -r ${ABSOLUTE_LAMMPS_SOURCE_DIR} --object-directory=${CMAKE_BINARY_DIR} -o coverage.xml
|
COMMAND ${GCOVR_BINARY} -s -x -r ${ABSOLUTE_LAMMPS_SOURCE_DIR} --object-directory=${CMAKE_BINARY_DIR} -o coverage.xml
|
||||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||||
COMMENT "Generating XML Coverage Report..."
|
COMMENT "Generating XML coverage report..."
|
||||||
)
|
)
|
||||||
|
|
||||||
|
set(COVERAGE_HTML_DIR ${CMAKE_BINARY_DIR}/coverage_html)
|
||||||
|
|
||||||
|
add_custom_target(coverage_html_folder
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${COVERAGE_HTML_DIR})
|
||||||
|
|
||||||
add_custom_target(
|
add_custom_target(
|
||||||
gen_coverage_html
|
gen_coverage_html
|
||||||
COMMAND ${GCOVR_BINARY} -s --html --html-details -r ${ABSOLUTE_LAMMPS_SOURCE_DIR} --object-directory=${CMAKE_BINARY_DIR} -o coverage.html
|
COMMAND ${GCOVR_BINARY} -s --html --html-details -r ${ABSOLUTE_LAMMPS_SOURCE_DIR} --object-directory=${CMAKE_BINARY_DIR} -o ${COVERAGE_HTML_DIR}/index.html
|
||||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||||
COMMENT "Generating HTML Coverage Report..."
|
COMMENT "Generating HTML coverage report..."
|
||||||
)
|
)
|
||||||
|
add_dependencies(gen_coverage_html coverage_html_folder)
|
||||||
|
|
||||||
|
add_custom_target(clean_coverage_html
|
||||||
|
${CMAKE_COMMAND} -E remove_directory ${COVERAGE_HTML_DIR}
|
||||||
|
COMMENT "Deleting HTML coverage report..."
|
||||||
|
)
|
||||||
|
|
||||||
|
add_custom_target(reset_coverage
|
||||||
|
${CMAKE_COMMAND} -E remove -f */*.gcda */*/*.gcda */*/*/*.gcda
|
||||||
|
*/*/*/*/*.gcda */*/*/*/*/*.gcda */*/*/*/*/*/*.gcda
|
||||||
|
*/*/*/*/*/*/*/*.gcda */*/*/*/*/*/*/*/*.gcda
|
||||||
|
*/*/*/*/*/*/*/*/*/*.gcda */*/*/*/*/*/*/*/*/*/*.gcda
|
||||||
|
WORKIND_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||||
|
COMMENT "Deleting coverage data files..."
|
||||||
|
)
|
||||||
|
add_dependencies(reset_coverage clean_coverage_html)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@ -6,7 +6,6 @@
|
|||||||
# TBB_MALLOC_FOUND - True if tbb found.
|
# TBB_MALLOC_FOUND - True if tbb found.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
########################################################
|
########################################################
|
||||||
# TBB Malloc
|
# TBB Malloc
|
||||||
|
|
||||||
|
|||||||
30
cmake/Modules/FindYAML.cmake
Normal file
30
cmake/Modules/FindYAML.cmake
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
# - Find libyaml
|
||||||
|
# Find the native Yaml headers and libraries.
|
||||||
|
#
|
||||||
|
# YAML_INCLUDE_DIRS - where to find yaml.h
|
||||||
|
# YAML_LIBRARIES - List of libraries when using libyaml
|
||||||
|
# YAML_FOUND - True if libyaml is found.
|
||||||
|
#
|
||||||
|
|
||||||
|
find_path(YAML_INCLUDE_DIR yaml.h PATH_SUFFIXES yaml)
|
||||||
|
find_library(YAML_LIBRARY NAMES yaml)
|
||||||
|
|
||||||
|
# handle the QUIET and REQUIRED arguments and
|
||||||
|
# set YAML_FOUND to TRUE if all variables are non-zero
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
find_package_handle_standard_args(YAML DEFAULT_MSG YAML_LIBRARY YAML_INCLUDE_DIR)
|
||||||
|
|
||||||
|
# Copy the results to the output variables and target.
|
||||||
|
if(YAML_FOUND)
|
||||||
|
set(YAML_LIBRARIES ${YAML_LIBRARY})
|
||||||
|
set(YAML_INCLUDE_DIRS ${YAML_INCLUDE_DIR})
|
||||||
|
|
||||||
|
if(NOT TARGET Yaml::Yaml)
|
||||||
|
add_library(Yaml::Yaml UNKNOWN IMPORTED)
|
||||||
|
set_target_properties(Yaml::Yaml PROPERTIES
|
||||||
|
IMPORTED_LOCATION "${YAML_LIBRARY}"
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES "${YAML_INCLUDE_DIR}")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
mark_as_advanced(YAML_INCLUDE_DIR YAML_LIBRARY)
|
||||||
77
cmake/Modules/GTest.cmake
Normal file
77
cmake/Modules/GTest.cmake
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
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)
|
||||||
|
ExternalProject_Add(googletest
|
||||||
|
GIT_REPOSITORY https://github.com/google/googletest.git
|
||||||
|
GIT_TAG release-1.10.0
|
||||||
|
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/${CMAKE_FIND_LIBRARY_PREFIXES}gtest${GTEST_LIB_POSTFIX}.a
|
||||||
|
<BINARY_DIR>/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gmock${GTEST_LIB_POSTFIX}.a
|
||||||
|
<BINARY_DIR>/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gtest_main${GTEST_LIB_POSTFIX}.a
|
||||||
|
<BINARY_DIR>/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gmock_main${GTEST_LIB_POSTFIX}.a
|
||||||
|
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/${CMAKE_FIND_LIBRARY_PREFIXES}gtest${GTEST_LIB_POSTFIX}.a)
|
||||||
|
set(GMOCK_LIBRARY_PATH ${BINARY_DIR}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gmock${GTEST_LIB_POSTFIX}.a)
|
||||||
|
set(GTEST_MAIN_LIBRARY_PATH ${BINARY_DIR}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gtest_main${GTEST_LIB_POSTFIX}.a)
|
||||||
|
set(GMOCK_MAIN_LIBRARY_PATH ${BINARY_DIR}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gmock_main${GTEST_LIB_POSTFIX}.a)
|
||||||
|
|
||||||
|
# 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}
|
||||||
|
IMPORTED_LINK_INTERFACE_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}
|
||||||
|
IMPORTED_LINK_INTERFACE_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}
|
||||||
|
IMPORTED_LINK_INTERFACE_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}
|
||||||
|
IMPORTED_LINK_INTERFACE_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
|
||||||
|
add_dependencies(GTest::GMockMain googletest)
|
||||||
@ -40,6 +40,17 @@ if(GPU_API STREQUAL "CUDA")
|
|||||||
|
|
||||||
set(GPU_ARCH "sm_50" CACHE STRING "LAMMPS GPU CUDA SM primary architecture (e.g. sm_60)")
|
set(GPU_ARCH "sm_50" CACHE STRING "LAMMPS GPU CUDA SM primary architecture (e.g. sm_60)")
|
||||||
|
|
||||||
|
# ensure that no *cubin.h files exist from a compile in the lib/gpu folder
|
||||||
|
file(GLOB GPU_LIB_OLD_CUBIN_HEADERS ${LAMMPS_LIB_SOURCE_DIR}/gpu/*_cubin.h)
|
||||||
|
if (GPU_LIB_OLD_CUBIN_HEADERS)
|
||||||
|
message(FATAL_ERROR "########################################################################\n"
|
||||||
|
"Found file(s) generated by the make-based build system in lib/gpu\n"
|
||||||
|
"Please run\n"
|
||||||
|
" make -C ${LAMMPS_LIB_SOURCE_DIR}/gpu -f Makefile.serial clean\n"
|
||||||
|
"to remove\n"
|
||||||
|
"########################################################################")
|
||||||
|
endif()
|
||||||
|
|
||||||
file(GLOB GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cu ${CMAKE_CURRENT_SOURCE_DIR}/gpu/[^.]*.cu)
|
file(GLOB GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cu ${CMAKE_CURRENT_SOURCE_DIR}/gpu/[^.]*.cu)
|
||||||
list(REMOVE_ITEM GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_pppm.cu)
|
list(REMOVE_ITEM GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_pppm.cu)
|
||||||
|
|
||||||
@ -79,7 +90,7 @@ if(GPU_API STREQUAL "CUDA")
|
|||||||
string(APPEND GPU_CUDA_GENCODE "-gencode arch=compute_75,code=[sm_75,compute_75] ")
|
string(APPEND GPU_CUDA_GENCODE "-gencode arch=compute_75,code=[sm_75,compute_75] ")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
cuda_compile_fatbin(GPU_GEN_OBJS ${GPU_LIB_CU} OPTIONS
|
cuda_compile_fatbin(GPU_GEN_OBJS ${GPU_LIB_CU} OPTIONS ${CUDA_REQUEST_PIC}
|
||||||
-DUNIX -O3 --use_fast_math -Wno-deprecated-gpu-targets -DNV_KERNEL -DUCL_CUDADR ${GPU_CUDA_GENCODE} -D_${GPU_PREC_SETTING})
|
-DUNIX -O3 --use_fast_math -Wno-deprecated-gpu-targets -DNV_KERNEL -DUCL_CUDADR ${GPU_CUDA_GENCODE} -D_${GPU_PREC_SETTING})
|
||||||
|
|
||||||
cuda_compile(GPU_OBJS ${GPU_LIB_CUDPP_CU} OPTIONS ${CUDA_REQUEST_PIC}
|
cuda_compile(GPU_OBJS ${GPU_LIB_CUDPP_CU} OPTIONS ${CUDA_REQUEST_PIC}
|
||||||
|
|||||||
@ -2,7 +2,7 @@ option(FFT_SINGLE "Use single precision FFTs instead of double precision FFTs" O
|
|||||||
set(FFTW "FFTW3")
|
set(FFTW "FFTW3")
|
||||||
if(FFT_SINGLE)
|
if(FFT_SINGLE)
|
||||||
set(FFTW "FFTW3F")
|
set(FFTW "FFTW3F")
|
||||||
target_compile_definitions(lammps PUBLIC -DFFT_SINGLE)
|
target_compile_definitions(lammps PRIVATE -DFFT_SINGLE)
|
||||||
endif()
|
endif()
|
||||||
find_package(${FFTW} QUIET)
|
find_package(${FFTW} QUIET)
|
||||||
if(${FFTW}_FOUND)
|
if(${FFTW}_FOUND)
|
||||||
@ -17,8 +17,8 @@ string(TOUPPER ${FFT} FFT)
|
|||||||
|
|
||||||
if(FFT STREQUAL "FFTW3")
|
if(FFT STREQUAL "FFTW3")
|
||||||
find_package(${FFTW} REQUIRED)
|
find_package(${FFTW} REQUIRED)
|
||||||
target_compile_definitions(lammps PUBLIC -DFFT_FFTW3)
|
target_compile_definitions(lammps PRIVATE -DFFT_FFTW3)
|
||||||
target_link_libraries(lammps PUBLIC ${FFTW}::${FFTW})
|
target_link_libraries(lammps PRIVATE ${FFTW}::${FFTW})
|
||||||
if(FFTW3_OMP_LIBRARY OR FFTW3F_OMP_LIBRARY)
|
if(FFTW3_OMP_LIBRARY OR FFTW3F_OMP_LIBRARY)
|
||||||
option(FFT_FFTW_THREADS "Use threaded FFTW library" ON)
|
option(FFT_FFTW_THREADS "Use threaded FFTW library" ON)
|
||||||
else()
|
else()
|
||||||
|
|||||||
@ -1,8 +1,5 @@
|
|||||||
enable_language(C)
|
enable_language(C)
|
||||||
|
|
||||||
if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.12)
|
|
||||||
cmake_policy(SET CMP0074 NEW)
|
|
||||||
endif()
|
|
||||||
find_package(HDF5 REQUIRED)
|
find_package(HDF5 REQUIRED)
|
||||||
target_link_libraries(h5md PRIVATE ${HDF5_LIBRARIES})
|
target_link_libraries(h5md PRIVATE ${HDF5_LIBRARIES})
|
||||||
target_include_directories(h5md PUBLIC ${HDF5_INCLUDE_DIRS})
|
target_include_directories(h5md PUBLIC ${HDF5_INCLUDE_DIRS})
|
||||||
|
|||||||
@ -1,8 +1,7 @@
|
|||||||
# USER-NETCDF can use NetCDF, Parallel NetCDF (PNetCDF), or both. At least one necessary.
|
# USER-NETCDF can use NetCDF, Parallel NetCDF (PNetCDF), or both. At least one necessary.
|
||||||
# NetCDF library enables dump style "netcdf", while PNetCDF enables dump style "netcdf/mpiio"
|
# NetCDF library enables dump style "netcdf", while PNetCDF enables dump style "netcdf/mpiio"
|
||||||
if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.12)
|
|
||||||
cmake_policy(SET CMP0074 NEW)
|
# may use NetCDF or PNetCDF with MPI, but must have NetCDF without
|
||||||
endif()
|
|
||||||
if(NOT BUILD_MPI)
|
if(NOT BUILD_MPI)
|
||||||
find_package(NetCDF REQUIRED)
|
find_package(NetCDF REQUIRED)
|
||||||
else()
|
else()
|
||||||
|
|||||||
@ -4,48 +4,7 @@
|
|||||||
option(ENABLE_TESTING "Enable testing" OFF)
|
option(ENABLE_TESTING "Enable testing" OFF)
|
||||||
if(ENABLE_TESTING)
|
if(ENABLE_TESTING)
|
||||||
enable_testing()
|
enable_testing()
|
||||||
option(LAMMPS_TESTING_SOURCE_DIR "Location of lammps-testing source directory" "")
|
get_filename_component(LAMMPS_UNITTEST_DIR ${LAMMPS_SOURCE_DIR}/../unittest ABSOLUTE)
|
||||||
option(LAMMPS_TESTING_GIT_TAG "Git tag of lammps-testing" "master")
|
get_filename_component(LAMMPS_UNITTEST_BIN ${CMAKE_BINARY_DIR}/unittest ABSOLUTE)
|
||||||
mark_as_advanced(LAMMPS_TESTING_SOURCE_DIR LAMMPS_TESTING_GIT_TAG)
|
add_subdirectory(${LAMMPS_UNITTEST_DIR} ${LAMMPS_UNITTEST_BIN})
|
||||||
|
|
||||||
if (CMAKE_VERSION VERSION_GREATER "3.10.3" AND NOT LAMMPS_TESTING_SOURCE_DIR)
|
|
||||||
include(FetchContent)
|
|
||||||
|
|
||||||
FetchContent_Declare(lammps-testing
|
|
||||||
GIT_REPOSITORY https://github.com/lammps/lammps-testing.git
|
|
||||||
GIT_TAG ${LAMMPS_TESTING_GIT_TAG}
|
|
||||||
)
|
|
||||||
|
|
||||||
FetchContent_GetProperties(lammps-testing)
|
|
||||||
if(NOT lammps-testing_POPULATED)
|
|
||||||
message(STATUS "Downloading tests...")
|
|
||||||
FetchContent_Populate(lammps-testing)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(LAMMPS_TESTING_SOURCE_DIR ${lammps-testing_SOURCE_DIR})
|
|
||||||
elseif(NOT LAMMPS_TESTING_SOURCE_DIR)
|
|
||||||
message(WARNING "Full test-suite requires CMake >= 3.11 or copy of\n"
|
|
||||||
"https://github.com/lammps/lammps-testing in LAMMPS_TESTING_SOURCE_DIR")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
add_test(NAME ShowHelp COMMAND $<TARGET_FILE:lmp> -help)
|
|
||||||
|
|
||||||
if(EXISTS ${LAMMPS_TESTING_SOURCE_DIR})
|
|
||||||
message(STATUS "Running test discovery...")
|
|
||||||
|
|
||||||
file(GLOB_RECURSE TEST_SCRIPTS ${LAMMPS_TESTING_SOURCE_DIR}/tests/core/*/in.*)
|
|
||||||
foreach(script_path ${TEST_SCRIPTS})
|
|
||||||
get_filename_component(TEST_NAME ${script_path} EXT)
|
|
||||||
get_filename_component(SCRIPT_NAME ${script_path} NAME)
|
|
||||||
get_filename_component(PARENT_DIR ${script_path} DIRECTORY)
|
|
||||||
string(SUBSTRING ${TEST_NAME} 1 -1 TEST_NAME)
|
|
||||||
string(REPLACE "-" "_" TEST_NAME ${TEST_NAME})
|
|
||||||
string(REPLACE "+" "_" TEST_NAME ${TEST_NAME})
|
|
||||||
set(TEST_NAME "test_core_${TEST_NAME}_serial")
|
|
||||||
add_test(NAME ${TEST_NAME} COMMAND $<TARGET_FILE:lmp> -in ${SCRIPT_NAME} WORKING_DIRECTORY ${PARENT_DIR})
|
|
||||||
endforeach()
|
|
||||||
list(LENGTH TEST_SCRIPTS NUM_TESTS)
|
|
||||||
|
|
||||||
message(STATUS "Found ${NUM_TESTS} tests.")
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
.TH LAMMPS "5 May 2020" "2020-05-5"
|
.TH LAMMPS "2 June 2020" "2020-06-02"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
.B LAMMPS
|
.B LAMMPS
|
||||||
\- Molecular Dynamics Simulator.
|
\- Molecular Dynamics Simulator.
|
||||||
|
|||||||
@ -107,7 +107,7 @@ re-compile and relink the LAMMPS executable with ``cmake --build .`` (or
|
|||||||
``cmake .`` and then compile again. The included dependency tracking
|
``cmake .`` and then compile again. The included dependency tracking
|
||||||
should make certain that only the necessary subset of files are
|
should make certain that only the necessary subset of files are
|
||||||
re-compiled. You can also delete compiled objects, libraries and
|
re-compiled. You can also delete compiled objects, libraries and
|
||||||
executables with ``cmake --build . clean`` (or ``make clean``).
|
executables with ``cmake --build . --target clean`` (or ``make clean``).
|
||||||
|
|
||||||
After compilation, you may optionally install the LAMMPS executable into
|
After compilation, you may optionally install the LAMMPS executable into
|
||||||
your system with:
|
your system with:
|
||||||
|
|||||||
@ -57,53 +57,252 @@ variable during configuration. Examples:
|
|||||||
|
|
||||||
.. _testing:
|
.. _testing:
|
||||||
|
|
||||||
Code Coverage and Testing
|
Code Coverage and Unit Testing
|
||||||
---------------------------------------
|
------------------------------
|
||||||
|
|
||||||
We do extensive regression testing of the LAMMPS code base on a continuous
|
The LAMMPS code is subject to multiple levels of automated testing
|
||||||
basis. Some of the logic to do this has been added to the CMake build so
|
during development: integration testing (i.e. whether the code compiles
|
||||||
developers can run the tests directly on their workstation.
|
on various platforms and with a variety of settings), unit testing
|
||||||
|
(i.e. whether certain individual parts of the code produce the expected
|
||||||
|
results for given inputs), run testing (whether selected complete input
|
||||||
|
decks run without crashing for multiple configurations), and regression
|
||||||
|
testing (i.e. whether selected input examples reproduce the same
|
||||||
|
results over a given number of steps and operations within a given
|
||||||
|
error margin). The status of this automated testing can be viewed on
|
||||||
|
`https://ci.lammps.org <https://ci.lammps.org>`_.
|
||||||
|
|
||||||
|
The unit testing facility is integrated into the CMake build process
|
||||||
|
of the LAMMPS source code distribution itself. It can be enabled by
|
||||||
|
setting ``-D ENABLE_TESTING=on`` during the CMake configuration step.
|
||||||
|
It requires the `YAML <http://pyyaml.org/>`_ library and development
|
||||||
|
headers to compile and will download and compile a recent version of the
|
||||||
|
`Googletest <https://github.com/google/googletest/>`_ C++ test framework
|
||||||
|
for implementing the tests.
|
||||||
|
|
||||||
|
After compilation is complete, the unit testing is started in the build
|
||||||
|
folder using the ``ctest`` command, which is part of the CMake software.
|
||||||
|
The output of this command will be looking something like this::
|
||||||
|
|
||||||
|
[...]$ ctest
|
||||||
|
Test project /home/akohlmey/compile/lammps/build-testing
|
||||||
|
Start 1: MolPairStyle:hybrid-overlay
|
||||||
|
1/26 Test #1: MolPairStyle:hybrid-overlay ......... Passed 0.02 sec
|
||||||
|
Start 2: MolPairStyle:hybrid
|
||||||
|
2/26 Test #2: MolPairStyle:hybrid ................. Passed 0.01 sec
|
||||||
|
Start 3: MolPairStyle:lj_class2
|
||||||
|
[...]
|
||||||
|
Start 25: AngleStyle:harmonic
|
||||||
|
25/26 Test #25: AngleStyle:harmonic ................. Passed 0.01 sec
|
||||||
|
Start 26: AngleStyle:zero
|
||||||
|
26/26 Test #26: AngleStyle:zero ..................... Passed 0.01 sec
|
||||||
|
|
||||||
|
100% tests passed, 0 tests failed out of 26
|
||||||
|
|
||||||
|
Total Test time (real) = 0.27 sec
|
||||||
|
|
||||||
|
|
||||||
|
The ``ctest`` command has many options, the most important ones are:
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
|
||||||
|
* - Option
|
||||||
|
- Function
|
||||||
|
* - -V
|
||||||
|
- verbose output: display output of individual test runs
|
||||||
|
* - -j <num>
|
||||||
|
- parallel run: run <num> tests in parallel
|
||||||
|
* - -R <regex>
|
||||||
|
- run subset of tests matching the regular expression <regex>
|
||||||
|
* - -E <regex>
|
||||||
|
- exclude subset of tests matching the regular expression <regex>
|
||||||
|
* - -N
|
||||||
|
- dry-run: display list of tests without running them
|
||||||
|
|
||||||
|
In its full implementation, the unit test framework will consist of multiple
|
||||||
|
kinds of tests implemented in different programming languages (C++, C, Python,
|
||||||
|
Fortran) and testing different aspects of the LAMMPS software and its features.
|
||||||
|
At the moment only tests for "force styles" are implemented. More on those
|
||||||
|
in the next section.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
this is incomplete and only represents a small subset of tests that we run
|
This unit test framework is new and still under development.
|
||||||
|
The coverage is only minimal and will be expanded over time.
|
||||||
|
Tests styles of the same kind of style (e.g. pair styles or
|
||||||
|
bond styles) are performed with the same executable using
|
||||||
|
different input files in YAML format. So to add a test for
|
||||||
|
another pair style can be done by copying the YAML file and
|
||||||
|
editing the style settings and then running the individual test
|
||||||
|
program with a flag to update the computed reference data.
|
||||||
|
Detailed documentation about how to add new test program and
|
||||||
|
the contents of the YAML files for existing test programs
|
||||||
|
will be provided in time as well.
|
||||||
|
|
||||||
|
Unit tests for force styles
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
A large part of LAMMPS are different "styles" for computing non-bonded
|
||||||
|
and bonded interactions selected through the :doc:`pair_style`,
|
||||||
|
:doc:`bond_style`, :doc:`angle_style`, :doc:`dihedral_style`,
|
||||||
|
:doc:`improper_style`, and :doc:`kspace_style`. Since these all share
|
||||||
|
common interfaces, it is possible to write generic test programs that
|
||||||
|
will call those common interfaces for small test systems with less than
|
||||||
|
100 atoms and compare the results with pre-recorded reference results.
|
||||||
|
A test run is then a a collection multiple individual test runs each
|
||||||
|
with many comparisons to reference results based on template input
|
||||||
|
files, individual command settings, relative error margins, and
|
||||||
|
reference data stored in a YAML format file with ``.yaml``
|
||||||
|
suffix. Currently the programs ``pair_style``, ``bond_style``, and
|
||||||
|
``angle_style`` are implemented. They will compare forces, energies and
|
||||||
|
(global) stress for all atoms after a ``run 0`` calculation and after a
|
||||||
|
few steps of MD with :doc:`fix nve <fix_nve>`, each in multiple variants
|
||||||
|
with different settings and also for multiple accelerated styles. If a
|
||||||
|
prerequisite style or package is missing, the individual tests are
|
||||||
|
skipped. All tests will be executed on a single MPI process, so using
|
||||||
|
the CMake option ``-D BUILD_MPI=off`` can significantly speed up testing,
|
||||||
|
since this will skip the MPI initialization for each test run.
|
||||||
|
Below is an example command and output:
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
[tests]$ pair_style mol-pair-lj_cut.yaml
|
||||||
|
[==========] Running 6 tests from 1 test suite.
|
||||||
|
[----------] Global test environment set-up.
|
||||||
|
[----------] 6 tests from PairStyle
|
||||||
|
[ RUN ] PairStyle.plain
|
||||||
|
[ OK ] PairStyle.plain (24 ms)
|
||||||
|
[ RUN ] PairStyle.omp
|
||||||
|
[ OK ] PairStyle.omp (18 ms)
|
||||||
|
[ RUN ] PairStyle.intel
|
||||||
|
[ OK ] PairStyle.intel (6 ms)
|
||||||
|
[ RUN ] PairStyle.opt
|
||||||
|
[ SKIPPED ] PairStyle.opt (0 ms)
|
||||||
|
[ RUN ] PairStyle.single
|
||||||
|
[ OK ] PairStyle.single (7 ms)
|
||||||
|
[ RUN ] PairStyle.extract
|
||||||
|
[ OK ] PairStyle.extract (6 ms)
|
||||||
|
[----------] 6 tests from PairStyle (62 ms total)
|
||||||
|
|
||||||
|
[----------] Global test environment tear-down
|
||||||
|
[==========] 6 tests from 1 test suite ran. (63 ms total)
|
||||||
|
[ PASSED ] 5 tests.
|
||||||
|
[ SKIPPED ] 1 test, listed below:
|
||||||
|
[ SKIPPED ] PairStyle.opt
|
||||||
|
|
||||||
|
In this particular case, 5 out of 6 sets of tests were conducted, the
|
||||||
|
tests for the ``lj/cut/opt`` pair style was skipped, since the tests
|
||||||
|
executable did not include it. To learn what individual tests are performed,
|
||||||
|
you (currently) need to read the source code. You can use code coverage
|
||||||
|
recording (see next section) to confirm how well the tests cover the individual
|
||||||
|
source files.
|
||||||
|
|
||||||
|
The force style test programs have a common set of options:
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
|
||||||
|
* - Option
|
||||||
|
- Function
|
||||||
|
* - -g <newfile>
|
||||||
|
- regenerate reference data in new YAML file
|
||||||
|
* - -u
|
||||||
|
- update reference data in the original YAML file
|
||||||
|
* - -s
|
||||||
|
- print error statistics for each group of comparisons
|
||||||
|
* - -v
|
||||||
|
- verbose output: also print the executed LAMMPS commands
|
||||||
|
|
||||||
|
To add a test for a style that is not yet covered, it is usually best
|
||||||
|
to copy a YAML file for a similar style to a new file, edit the details
|
||||||
|
of the style (how to call it, how to set its coefficients) and then
|
||||||
|
run test command with either the *-g* and the replace the initial
|
||||||
|
test file with the regenerated one or the *-u* option. The *-u* option
|
||||||
|
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.
|
||||||
|
|
||||||
|
.. admonition:: Recommendations and notes for YAML files
|
||||||
|
:class: note
|
||||||
|
|
||||||
|
- The reference results should be recorded without any code
|
||||||
|
optimization or related compiler flags enabled.
|
||||||
|
- The ``epsilon`` parameter defines the relative precision with which
|
||||||
|
the reference results must be met. The test geometries often have
|
||||||
|
high and low energy parts and thus a significant impact from
|
||||||
|
floating-point math truncation errors is to be expected. Some
|
||||||
|
functional forms and potentials are more noisy than others, so this
|
||||||
|
parameter needs to be adjusted. Typically a value around 1.0e-13
|
||||||
|
can be used, but it may need to be as large as 1.0e-8 in some
|
||||||
|
cases.
|
||||||
|
- The tests for pair styles from OPT, USER-OMP and USER-INTEL are
|
||||||
|
performed with automatically rescaled epsilon to account for
|
||||||
|
additional loss of precision from code optimizations and different
|
||||||
|
summation orders.
|
||||||
|
- When compiling with aggressive compiler optimization, some tests
|
||||||
|
are likely to fail. It is recommended to inspect the individual
|
||||||
|
tests in detail to decide whether the specific error for a specific
|
||||||
|
property is acceptable (it often is), or this may be an indication
|
||||||
|
of mis-compiled code (or undesired large of precision due to
|
||||||
|
reordering of operations).
|
||||||
|
|
||||||
|
Collect and visualize code coverage metrics
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
You can also collect code coverage metrics while running LAMMPS or the
|
||||||
|
tests by enabling code coverage support during the CMake configuration:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
-D ENABLE_TESTING=value # enable simple run tests of LAMMPS, value = no (default) or yes
|
-D ENABLE_COVERAGE=on # enable coverage measurements (off by default)
|
||||||
-D LAMMPS_TESTING_SOURCE_DIR=path # path to lammps-testing repository (option if in custom location)
|
|
||||||
-D LAMMPS_TESTING_GIT_TAG=value # version of lammps-testing repository that should be used, value = master (default) or custom git commit or tag
|
|
||||||
|
|
||||||
If you enable testing in the CMake build it will create an additional
|
This will instrument all object files to write information about which
|
||||||
target called "test". You can run them with:
|
lines of code were accessed during execution in files next to the
|
||||||
|
corresponding object files. These can be post-processed to visually
|
||||||
|
show the degree of coverage and which code paths are accessed and which
|
||||||
|
are not taken. When working on unit tests (see above), this can be
|
||||||
|
extremely helpful to determine which parts of the code are not executed
|
||||||
|
and thus what kind of tests are still missing. The coverage data is
|
||||||
|
cumulative, i.e. new data is added with each new run.
|
||||||
|
|
||||||
|
Enabling code coverage will also add the following build targets to
|
||||||
|
generate coverage reports after running the LAMMPS executable or the
|
||||||
|
unit tests:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
cmake --build . test
|
make gen_coverage_html # generate coverage report in HTML format
|
||||||
|
make gen_coverage_xml # generate coverage report in XML format
|
||||||
|
make clean_coverage_html # delete folder with HTML format coverage report
|
||||||
|
make reset_coverage # delete all collected coverage data and HTML output
|
||||||
|
|
||||||
The test cases used come from the lammps-testing repository. They are
|
These reports require `GCOVR <https://gcovr.com/>`_ to be installed. The easiest way
|
||||||
derivatives of the examples folder with some modifications to make the
|
to do this to install it via pip:
|
||||||
run faster.
|
|
||||||
|
|
||||||
You can also collect code coverage metrics while running the tests by
|
|
||||||
enabling coverage support during building.
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
-D ENABLE_COVERAGE=value # enable coverage measurements, value = no (default) or yes
|
|
||||||
|
|
||||||
This will also add the following targets to generate coverage reports
|
|
||||||
after running the LAMMPS executable:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
make test # run tests first!
|
|
||||||
make gen_coverage_html # generate coverage report in HTML format
|
|
||||||
make gen_coverage_xml # generate coverage report in XML format
|
|
||||||
|
|
||||||
These reports require GCOVR to be installed. The easiest way to do this
|
|
||||||
to install it via pip:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
pip install git+https://github.com/gcovr/gcovr.git
|
pip install git+https://github.com/gcovr/gcovr.git
|
||||||
|
|
||||||
|
After post-processing with ``gen_coverage_html`` the results are in
|
||||||
|
a folder ``coverage_html`` and can be viewed with a web browser.
|
||||||
|
The images below illustrate how the data is presented.
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
|
||||||
|
* - .. figure:: JPG/coverage-overview-top.png
|
||||||
|
:target: JPG/coverage-overview-top.png
|
||||||
|
|
||||||
|
Top of the overview page
|
||||||
|
|
||||||
|
- .. figure:: JPG/coverage-overview-manybody.png
|
||||||
|
:target: JPG/coverage-overview-manybody.png
|
||||||
|
|
||||||
|
Styles with good coverage
|
||||||
|
|
||||||
|
- .. figure:: JPG/coverage-file-top.png
|
||||||
|
:target: JPG/coverage-file-top.png
|
||||||
|
|
||||||
|
Top of individual source page
|
||||||
|
|
||||||
|
- .. figure:: JPG/coverage-file-branches.png
|
||||||
|
:target: JPG/coverage-file-branches.png
|
||||||
|
|
||||||
|
Source page with branches
|
||||||
|
|||||||
@ -132,6 +132,10 @@ Thus the GPU_ARCH setting is merely an optimization, to have code for
|
|||||||
the preferred GPU architecture directly included rather than having to wait
|
the preferred GPU architecture directly included rather than having to wait
|
||||||
for the JIT compiler of the CUDA driver to translate it.
|
for the JIT compiler of the CUDA driver to translate it.
|
||||||
|
|
||||||
|
When building with CMake, you **must NOT** build the GPU library in ``lib/gpu``
|
||||||
|
using the traditional build procedure. CMake will detect files generated by that
|
||||||
|
process and will terminate with an error and a suggestion for how to remove them.
|
||||||
|
|
||||||
If you are compiling with HIP, note that before running CMake you will have to
|
If you are compiling with HIP, note that before running CMake you will have to
|
||||||
set appropriate environment variables. Some variables such as
|
set appropriate environment variables. Some variables such as
|
||||||
:code:`HCC_AMDGPU_TARGET` or :code:`CUDA_PATH` are necessary for :code:`hipcc`
|
:code:`HCC_AMDGPU_TARGET` or :code:`CUDA_PATH` are necessary for :code:`hipcc`
|
||||||
|
|||||||
@ -94,6 +94,7 @@ An alphabetic list of all general LAMMPS commands.
|
|||||||
* :doc:`package <package>`
|
* :doc:`package <package>`
|
||||||
* :doc:`pair_coeff <pair_coeff>`
|
* :doc:`pair_coeff <pair_coeff>`
|
||||||
* :doc:`pair_modify <pair_modify>`
|
* :doc:`pair_modify <pair_modify>`
|
||||||
|
* :doc:`pair_style <pair_style>`
|
||||||
* :doc:`pair_write <pair_write>`
|
* :doc:`pair_write <pair_write>`
|
||||||
* :doc:`partition <partition>`
|
* :doc:`partition <partition>`
|
||||||
* :doc:`prd <prd>`
|
* :doc:`prd <prd>`
|
||||||
|
|||||||
@ -147,6 +147,7 @@ OPT.
|
|||||||
* :doc:`oneway <fix_oneway>`
|
* :doc:`oneway <fix_oneway>`
|
||||||
* :doc:`orient/bcc <fix_orient>`
|
* :doc:`orient/bcc <fix_orient>`
|
||||||
* :doc:`orient/fcc <fix_orient>`
|
* :doc:`orient/fcc <fix_orient>`
|
||||||
|
* :doc:`orient/eco <fix_orient_eco>`
|
||||||
* :doc:`phonon <fix_phonon>`
|
* :doc:`phonon <fix_phonon>`
|
||||||
* :doc:`pimd <fix_pimd>`
|
* :doc:`pimd <fix_pimd>`
|
||||||
* :doc:`planeforce <fix_planeforce>`
|
* :doc:`planeforce <fix_planeforce>`
|
||||||
|
|||||||
@ -92,8 +92,8 @@ OPT.
|
|||||||
* :doc:`drip <pair_drip>`
|
* :doc:`drip <pair_drip>`
|
||||||
* :doc:`eam (gikot) <pair_eam>`
|
* :doc:`eam (gikot) <pair_eam>`
|
||||||
* :doc:`eam/alloy (gikot) <pair_eam>`
|
* :doc:`eam/alloy (gikot) <pair_eam>`
|
||||||
* :doc:`eam/cd (o) <pair_eam>`
|
* :doc:`eam/cd <pair_eam>`
|
||||||
* :doc:`eam/cd/old (o) <pair_eam>`
|
* :doc:`eam/cd/old <pair_eam>`
|
||||||
* :doc:`eam/fs (gikot) <pair_eam>`
|
* :doc:`eam/fs (gikot) <pair_eam>`
|
||||||
* :doc:`edip (o) <pair_edip>`
|
* :doc:`edip (o) <pair_edip>`
|
||||||
* :doc:`edip/multi <pair_edip>`
|
* :doc:`edip/multi <pair_edip>`
|
||||||
|
|||||||
@ -415,8 +415,10 @@ This is particularly convenient, if you have set a custom build command
|
|||||||
via the ``CMAKE_MAKE_PROGRAM`` variable.
|
via the ``CMAKE_MAKE_PROGRAM`` variable.
|
||||||
|
|
||||||
When calling the build program, you can also select which "target" is to
|
When calling the build program, you can also select which "target" is to
|
||||||
be build through appending the name of the target to the build command.
|
be build through appending the ``--target`` flag and the name of the target
|
||||||
Example: ``cmake --build . all``. The following abstract targets are available:
|
to the build command. When using ``make`` as build tool, you can just append
|
||||||
|
the target name to the command. Example: ``cmake --build . --target all`` or
|
||||||
|
``make all``. The following abstract targets are available:
|
||||||
|
|
||||||
.. list-table::
|
.. list-table::
|
||||||
:header-rows: 1
|
:header-rows: 1
|
||||||
@ -432,7 +434,7 @@ Example: ``cmake --build . all``. The following abstract targets are available:
|
|||||||
* - ``install``
|
* - ``install``
|
||||||
- install all target files into folders in ``CMAKE_INSTALL_PREFIX``
|
- install all target files into folders in ``CMAKE_INSTALL_PREFIX``
|
||||||
* - ``test``
|
* - ``test``
|
||||||
- run some simple tests (if configured with ``-D ENABLE_TESTING=on``)
|
- run some tests (if configured with ``-D ENABLE_TESTING=on``)
|
||||||
* - ``clean``
|
* - ``clean``
|
||||||
- remove all generated files
|
- remove all generated files
|
||||||
|
|
||||||
|
|||||||
BIN
doc/src/JPG/coverage-file-branches.png
Normal file
BIN
doc/src/JPG/coverage-file-branches.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 153 KiB |
BIN
doc/src/JPG/coverage-file-top.png
Normal file
BIN
doc/src/JPG/coverage-file-top.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 110 KiB |
BIN
doc/src/JPG/coverage-overview-manybody.png
Normal file
BIN
doc/src/JPG/coverage-overview-manybody.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 302 KiB |
BIN
doc/src/JPG/coverage-overview-top.png
Normal file
BIN
doc/src/JPG/coverage-overview-top.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 238 KiB |
@ -1,37 +1,51 @@
|
|||||||
Submitting new features for inclusion in LAMMPS
|
Submitting new features for inclusion in LAMMPS
|
||||||
===============================================
|
===============================================
|
||||||
|
|
||||||
We encourage users to submit new features or modifications for LAMMPS
|
We encourage users to submit new features or modifications for LAMMPS to
|
||||||
to `the core developers <https://lammps.sandia.gov/authors.html>`_ so they
|
`the core developers <https://lammps.sandia.gov/authors.html>`_ so they
|
||||||
can be added to the LAMMPS distribution. The preferred way to manage
|
can be added to the LAMMPS distribution. The preferred way to manage and
|
||||||
and coordinate this is as of Fall 2016 via the LAMMPS project on
|
coordinate this is via the LAMMPS project on `GitHub
|
||||||
`GitHub <https://github.com/lammps/lammps>`_. An alternative is to
|
<https://github.com/lammps/lammps>`_. Please see the :doc:`GitHub
|
||||||
contact the LAMMPS developers or the indicated developer of a package
|
Tutorial <Howto_github>` for a demonstration on how to do that. An
|
||||||
or feature directly and send in your contribution via e-mail.
|
alternative is to contact the LAMMPS developers or the indicated
|
||||||
|
developer of a package or feature directly and send in your contribution
|
||||||
|
via e-mail, but that can add a significant delay on getting your
|
||||||
|
contribution included, depending on how busy the developer is you
|
||||||
|
contact, how complex a task it would be to integrate that code, and how
|
||||||
|
many - if any - changes are required before the code can be included.
|
||||||
|
|
||||||
For any larger modifications or programming project, you are
|
For any larger modifications or programming project, you are encouraged
|
||||||
encouraged to contact the LAMMPS developers ahead of time, in order to
|
to contact the LAMMPS developers ahead of time, in order to discuss
|
||||||
discuss implementation strategies and coding guidelines, that will
|
implementation strategies and coding guidelines, that will make it
|
||||||
make it easier to integrate your contribution and result in less work
|
easier to integrate your contribution and result in less work for
|
||||||
for everybody involved. You are also encouraged to search through the
|
everybody involved. You are also encouraged to search through the list
|
||||||
list of `open issues on GitHub <https://github.com/lammps/lammps/issues>`_ and submit a new issue
|
of `open issues on GitHub <https://github.com/lammps/lammps/issues>`_
|
||||||
for a planned feature, so you would not duplicate the work of others
|
and submit a new issue for a planned feature, so you would not duplicate
|
||||||
(and possibly get scooped by them) or have your work duplicated by
|
the work of others (and possibly get scooped by them) or have your work
|
||||||
others.
|
duplicated by others.
|
||||||
|
|
||||||
How quickly your contribution will be integrated depends largely on
|
For informal communication with (some of) the LAMMPS developers you may
|
||||||
how much effort it will cause to integrate and test it, how much it
|
ask to join the `LAMMPS developers on Slack <https://lammps.slack.com>`_.
|
||||||
requires changes to the core codebase, and of how much interest it is
|
This slack work space is by invitation only. Thus for access, please
|
||||||
to the larger LAMMPS community. Please see below for a checklist of
|
send an e-mail to ``slack@lammps.org`` explaining what part of LAMMPS
|
||||||
typical requirements. Once you have prepared everything, see the
|
you are working on. Only discussions related to LAMMPS development are
|
||||||
:doc:`Using GitHub with LAMMPS Howto <Howto_github>` doc page for instructions on how to
|
tolerated, so this is **NOT** for people that look for help with compiling,
|
||||||
submit your changes or new files through a GitHub pull request. If you
|
installing, or using LAMMPS. Please contact the `lammps-users mailing
|
||||||
prefer to submit patches or full files, you should first make certain,
|
list <https://lammps.sandia.gov>`_ for those purposes instead.
|
||||||
that your code works correctly with the latest patch-level version of
|
|
||||||
LAMMPS and contains all bug fixes from it. Then create a gzipped tar
|
How quickly your contribution will be integrated depends largely on how
|
||||||
file of all changed or added files or a corresponding patch file using
|
much effort it will cause to integrate and test it, how much it requires
|
||||||
'diff -u' or 'diff -c' and compress it with gzip. Please only use gzip
|
changes to the core codebase, and of how much interest it is to the
|
||||||
compression, as this works well on all platforms.
|
larger LAMMPS community. Please see below for a checklist of typical
|
||||||
|
requirements. Once you have prepared everything, see the :doc:`Using
|
||||||
|
GitHub with LAMMPS Howto <Howto_github>` doc page for instructions on
|
||||||
|
how to submit your changes or new files through a GitHub pull
|
||||||
|
request. If you prefer to submit patches or full files, you should first
|
||||||
|
make certain, that your code works correctly with the latest patch-level
|
||||||
|
version of LAMMPS and contains all bug fixes from it. Then create a
|
||||||
|
gzipped tar file of all changed or added files or a corresponding patch
|
||||||
|
file using 'diff -u' or 'diff -c' and compress it with gzip. Please only
|
||||||
|
use gzip compression, as this works well on all platforms.
|
||||||
|
|
||||||
If the new features/files are broadly useful we may add them as core
|
If the new features/files are broadly useful we may add them as core
|
||||||
files to LAMMPS or as part of a :doc:`standard package <Packages_standard>`. Else we will add them as a
|
files to LAMMPS or as part of a :doc:`standard package <Packages_standard>`. Else we will add them as a
|
||||||
|
|||||||
@ -2098,7 +2098,7 @@ molecules, and chiral-sensitive reactions.
|
|||||||
* examples/USER/reaction
|
* examples/USER/reaction
|
||||||
* `2017 LAMMPS Workshop <https://lammps.sandia.gov/workshops/Aug17/pdf/gissinger.pdf>`_
|
* `2017 LAMMPS Workshop <https://lammps.sandia.gov/workshops/Aug17/pdf/gissinger.pdf>`_
|
||||||
* `2019 LAMMPS Workshop <https://lammps.sandia.gov/workshops/Aug19/talk_gissinger.pdf>`_
|
* `2019 LAMMPS Workshop <https://lammps.sandia.gov/workshops/Aug19/talk_gissinger.pdf>`_
|
||||||
* disarmmd.org
|
* reacter.org
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
|||||||
@ -37,7 +37,7 @@ and the relative shape anisotropy, k:
|
|||||||
b = & l_y - l_x \\
|
b = & l_y - l_x \\
|
||||||
k = & \frac{3}{2} \frac{l_x^2+l_y^2+l_z^2}{(l_x+l_y+l_z)^2} - \frac{1}{2}
|
k = & \frac{3}{2} \frac{l_x^2+l_y^2+l_z^2}{(l_x+l_y+l_z)^2} - \frac{1}{2}
|
||||||
|
|
||||||
where :math:`l_x` <= :math:`l_y` <= :math`l_z` are the three eigenvalues of the gyration tensor. A general description
|
where :math:`l_x` <= :math:`l_y` <= :math:`l_z` are the three eigenvalues of the gyration tensor. A general description
|
||||||
of these parameters is provided in :ref:`(Mattice) <Mattice2>` while an application to polymer systems
|
of these parameters is provided in :ref:`(Mattice) <Mattice2>` while an application to polymer systems
|
||||||
can be found in :ref:`(Theodorou) <Theodorou2>`. The asphericity is always non-negative and zero
|
can be found in :ref:`(Theodorou) <Theodorou2>`. The asphericity is always non-negative and zero
|
||||||
only when the three principal moments are equal. This zero condition is met when the distribution
|
only when the three principal moments are equal. This zero condition is met when the distribution
|
||||||
|
|||||||
@ -552,9 +552,9 @@ when writing to XTC files. By default they are initialized for
|
|||||||
whatever :doc:`units <units>` style is being used, to write out
|
whatever :doc:`units <units>` style is being used, to write out
|
||||||
coordinates in nanometers and time in picoseconds. I.e. for *real*
|
coordinates in nanometers and time in picoseconds. I.e. for *real*
|
||||||
units, LAMMPS defines *sfactor* = 0.1 and *tfactor* = 0.001, since the
|
units, LAMMPS defines *sfactor* = 0.1 and *tfactor* = 0.001, since the
|
||||||
Angstroms and fmsec used by *real* units are 0.1 nm and 0.001 psec
|
Angstroms and fs used by *real* units are 0.1 nm and 0.001 ps
|
||||||
respectively. If you are using a units system with distance and time
|
respectively. If you are using a units system with distance and time
|
||||||
units far from nm and psec, you may wish to write XTC files with
|
units far from nm and ps, you may wish to write XTC files with
|
||||||
different units, since the compression algorithm used in XTC files is
|
different units, since the compression algorithm used in XTC files is
|
||||||
most effective when the typical magnitude of position data is between
|
most effective when the typical magnitude of position data is between
|
||||||
10.0 and 0.1.
|
10.0 and 0.1.
|
||||||
|
|||||||
@ -290,6 +290,7 @@ accelerated styles exist.
|
|||||||
* :doc:`oneway <fix_oneway>` - constrain particles on move in one direction
|
* :doc:`oneway <fix_oneway>` - constrain particles on move in one direction
|
||||||
* :doc:`orient/bcc <fix_orient>` - add grain boundary migration force for BCC
|
* :doc:`orient/bcc <fix_orient>` - add grain boundary migration force for BCC
|
||||||
* :doc:`orient/fcc <fix_orient>` - add grain boundary migration force for FCC
|
* :doc:`orient/fcc <fix_orient>` - add grain boundary migration force for FCC
|
||||||
|
* :doc:`orient/eco <fix_orient_eco>` - add generalized grain boundary migration force
|
||||||
* :doc:`phonon <fix_phonon>` - calculate dynamical matrix from MD simulations
|
* :doc:`phonon <fix_phonon>` - calculate dynamical matrix from MD simulations
|
||||||
* :doc:`pimd <fix_pimd>` - Feynman path integral molecular dynamics
|
* :doc:`pimd <fix_pimd>` - Feynman path integral molecular dynamics
|
||||||
* :doc:`planeforce <fix_planeforce>` - constrain atoms to move in a plane
|
* :doc:`planeforce <fix_planeforce>` - constrain atoms to move in a plane
|
||||||
|
|||||||
44
doc/src/fix_bond_react.rst
Executable file → Normal file
44
doc/src/fix_bond_react.rst
Executable file → Normal file
@ -300,7 +300,8 @@ either 'none' or 'charges.' Further details are provided in the
|
|||||||
discussion of the 'update_edges' keyword. The fifth optional section
|
discussion of the 'update_edges' keyword. The fifth optional section
|
||||||
begins with the keyword 'Constraints' and lists additional criteria
|
begins with the keyword 'Constraints' and lists additional criteria
|
||||||
that must be satisfied in order for the reaction to occur. Currently,
|
that must be satisfied in order for the reaction to occur. Currently,
|
||||||
there are four types of constraints available, as discussed below.
|
there are four types of constraints available, as discussed below:
|
||||||
|
'distance', 'angle', 'dihedral', and 'arrhenius'.
|
||||||
|
|
||||||
A sample map file is given below:
|
A sample map file is given below:
|
||||||
|
|
||||||
@ -353,8 +354,9 @@ has syntax as follows:
|
|||||||
distance *ID1* *ID2* *rmin* *rmax*
|
distance *ID1* *ID2* *rmin* *rmax*
|
||||||
|
|
||||||
where 'distance' is the required keyword, *ID1* and *ID2* are
|
where 'distance' is the required keyword, *ID1* and *ID2* are
|
||||||
pre-reaction atom IDs, and these two atoms must be separated by a
|
pre-reaction atom IDs (or molecule-fragment IDs, see below), and these
|
||||||
distance between *rmin* and *rmax* for the reaction to occur.
|
two atoms must be separated by a distance between *rmin* and *rmax*
|
||||||
|
for the reaction to occur.
|
||||||
|
|
||||||
The constraint of type 'angle' has the following syntax:
|
The constraint of type 'angle' has the following syntax:
|
||||||
|
|
||||||
@ -363,11 +365,11 @@ The constraint of type 'angle' has the following syntax:
|
|||||||
angle *ID1* *ID2* *ID3* *amin* *amax*
|
angle *ID1* *ID2* *ID3* *amin* *amax*
|
||||||
|
|
||||||
where 'angle' is the required keyword, *ID1*\ , *ID2* and *ID3* are
|
where 'angle' is the required keyword, *ID1*\ , *ID2* and *ID3* are
|
||||||
pre-reaction atom IDs, and these three atoms must form an angle
|
pre-reaction atom IDs (or molecule-fragment IDs, see below), and these
|
||||||
between *amin* and *amax* for the reaction to occur (where *ID2* is
|
three atoms must form an angle between *amin* and *amax* for the
|
||||||
the central atom). Angles must be specified in degrees. This
|
reaction to occur (where *ID2* is the central atom). Angles must be
|
||||||
constraint can be used to enforce a certain orientation between
|
specified in degrees. This constraint can be used to enforce a certain
|
||||||
reacting molecules.
|
orientation between reacting molecules.
|
||||||
|
|
||||||
The constraint of type 'dihedral' has the following syntax:
|
The constraint of type 'dihedral' has the following syntax:
|
||||||
|
|
||||||
@ -376,15 +378,23 @@ The constraint of type 'dihedral' has the following syntax:
|
|||||||
dihedral *ID1* *ID2* *ID3* *ID4* *amin* *amax* *amin2* *amax2*
|
dihedral *ID1* *ID2* *ID3* *ID4* *amin* *amax* *amin2* *amax2*
|
||||||
|
|
||||||
where 'dihedral' is the required keyword, and *ID1*\ , *ID2*\ , *ID3*
|
where 'dihedral' is the required keyword, and *ID1*\ , *ID2*\ , *ID3*
|
||||||
and *ID4* are pre-reaction atom IDs. Dihedral angles are calculated in
|
and *ID4* are pre-reaction atom IDs (or molecule-fragment IDs, see
|
||||||
the interval (-180,180]. Refer to the :doc:`dihedral style <dihedral_style>`
|
below). Dihedral angles are calculated in the interval (-180,180].
|
||||||
documentation for further details on convention. If *amin* is less
|
Refer to the :doc:`dihedral style <dihedral_style>` documentation for
|
||||||
than *amax*, these four atoms must form a dihedral angle greater than
|
further details on convention. If *amin* is less than *amax*, these
|
||||||
*amin* **and** less than *amax* for the reaction to occur. If *amin*
|
four atoms must form a dihedral angle greater than *amin* **and** less
|
||||||
is greater than *amax*, these four atoms must form a dihedral angle
|
than *amax* for the reaction to occur. If *amin* is greater than
|
||||||
greater than *amin* **or** less than *amax* for the reaction to occur.
|
*amax*, these four atoms must form a dihedral angle greater than
|
||||||
Angles must be specified in degrees. Optionally, a second range of
|
*amin* **or** less than *amax* for the reaction to occur. Angles must
|
||||||
permissible angles *amin2*-*amax2* can be specified.
|
be specified in degrees. Optionally, a second range of permissible
|
||||||
|
angles *amin2*-*amax2* can be specified.
|
||||||
|
|
||||||
|
For the 'distance', 'angle', and 'dihedral' constraints (explained
|
||||||
|
above), atom IDs can be replaced by pre-reaction molecule-fragment
|
||||||
|
IDs. The molecule-fragment ID must begin with a letter. The location
|
||||||
|
of the ID is the geometric center of all atom positions in the
|
||||||
|
fragment. The molecule fragment must have been defined in the
|
||||||
|
:doc:`molecule <molecule>` command for the pre-reaction template.
|
||||||
|
|
||||||
The constraint of type 'arrhenius' imposes an additional reaction
|
The constraint of type 'arrhenius' imposes an additional reaction
|
||||||
probability according to the temperature-dependent Arrhenius equation:
|
probability according to the temperature-dependent Arrhenius equation:
|
||||||
|
|||||||
@ -154,8 +154,8 @@ specified in units of distance/time. This is effectively a "constant
|
|||||||
engineering strain rate", where rate = V/L0 and L0 is the initial box
|
engineering strain rate", where rate = V/L0 and L0 is the initial box
|
||||||
length. The distance can be in lattice or box distance units. See
|
length. The distance can be in lattice or box distance units. See
|
||||||
the discussion of the units keyword below. For example, if the
|
the discussion of the units keyword below. For example, if the
|
||||||
initial box length is 100 Angstroms, and V is 10 Angstroms/psec, then
|
initial box length is 100 Angstroms, and V is 10 Angstroms/ps, then
|
||||||
after 10 psec, the box length will have doubled. After 20 psec, it
|
after 10 ps, the box length will have doubled. After 20 ps, it
|
||||||
will have tripled.
|
will have tripled.
|
||||||
|
|
||||||
The *erate* style changes a dimension of the box at a "constant
|
The *erate* style changes a dimension of the box at a "constant
|
||||||
@ -174,7 +174,7 @@ function of time will change as
|
|||||||
where dt is the elapsed time (in time units). Thus if *erate* R is
|
where dt is the elapsed time (in time units). Thus if *erate* R is
|
||||||
specified as 0.1 and time units are picoseconds, this means the box
|
specified as 0.1 and time units are picoseconds, this means the box
|
||||||
length will increase by 10% of its original length every picosecond.
|
length will increase by 10% of its original length every picosecond.
|
||||||
I.e. strain after 1 psec = 0.1, strain after 2 psec = 0.2, etc. R =
|
I.e. strain after 1 ps = 0.1, strain after 2 ps = 0.2, etc. R =
|
||||||
-0.01 means the box length will shrink by 1% of its original length
|
-0.01 means the box length will shrink by 1% of its original length
|
||||||
every picosecond. Note that for an "engineering" rate the change is
|
every picosecond. Note that for an "engineering" rate the change is
|
||||||
based on the original box length, so running with R = 1 for 10
|
based on the original box length, so running with R = 1 for 10
|
||||||
@ -201,7 +201,7 @@ The box length L as a function of time will change as
|
|||||||
where dt is the elapsed time (in time units). Thus if *trate* R is
|
where dt is the elapsed time (in time units). Thus if *trate* R is
|
||||||
specified as ln(1.1) and time units are picoseconds, this means the
|
specified as ln(1.1) and time units are picoseconds, this means the
|
||||||
box length will increase by 10% of its current (not original) length
|
box length will increase by 10% of its current (not original) length
|
||||||
every picosecond. I.e. strain after 1 psec = 0.1, strain after 2 psec
|
every picosecond. I.e. strain after 1 ps = 0.1, strain after 2 ps
|
||||||
= 0.21, etc. R = ln(2) or ln(3) means the box length will double or
|
= 0.21, etc. R = ln(2) or ln(3) means the box length will double or
|
||||||
triple every picosecond. R = ln(0.99) means the box length will
|
triple every picosecond. R = ln(0.99) means the box length will
|
||||||
shrink by 1% of its current length every picosecond. Note that for a
|
shrink by 1% of its current length every picosecond. Note that for a
|
||||||
@ -317,8 +317,8 @@ specified in units of distance/time. This is effectively an
|
|||||||
initial box length perpendicular to the direction of shear. The
|
initial box length perpendicular to the direction of shear. The
|
||||||
distance can be in lattice or box distance units. See the discussion
|
distance can be in lattice or box distance units. See the discussion
|
||||||
of the units keyword below. For example, if the initial tilt factor
|
of the units keyword below. For example, if the initial tilt factor
|
||||||
is 5 Angstroms, and the V is 10 Angstroms/psec, then after 1 psec, the
|
is 5 Angstroms, and the V is 10 Angstroms/ps, then after 1 ps, the
|
||||||
tilt factor will be 15 Angstroms. After 2 psec, it will be 25
|
tilt factor will be 15 Angstroms. After 2 ps, it will be 25
|
||||||
Angstroms.
|
Angstroms.
|
||||||
|
|
||||||
The *erate* style changes a tilt factor at a "constant engineering
|
The *erate* style changes a tilt factor at a "constant engineering
|
||||||
@ -342,9 +342,9 @@ box perpendicular to the shear direction (e.g. y box length for xy
|
|||||||
deformation), and dt is the elapsed time (in time units). Thus if
|
deformation), and dt is the elapsed time (in time units). Thus if
|
||||||
*erate* R is specified as 0.1 and time units are picoseconds, this
|
*erate* R is specified as 0.1 and time units are picoseconds, this
|
||||||
means the shear strain will increase by 0.1 every picosecond. I.e. if
|
means the shear strain will increase by 0.1 every picosecond. I.e. if
|
||||||
the xy shear strain was initially 0.0, then strain after 1 psec = 0.1,
|
the xy shear strain was initially 0.0, then strain after 1 ps = 0.1,
|
||||||
strain after 2 psec = 0.2, etc. Thus the tilt factor would be 0.0 at
|
strain after 2 ps = 0.2, etc. Thus the tilt factor would be 0.0 at
|
||||||
time 0, 0.1\*ybox at 1 psec, 0.2\*ybox at 2 psec, etc, where ybox is the
|
time 0, 0.1\*ybox at 1 ps, 0.2\*ybox at 2 ps, etc, where ybox is the
|
||||||
original y box length. R = 1 or 2 means the tilt factor will increase
|
original y box length. R = 1 or 2 means the tilt factor will increase
|
||||||
by 1 or 2 every picosecond. R = -0.01 means a decrease in shear
|
by 1 or 2 every picosecond. R = -0.01 means a decrease in shear
|
||||||
strain by 0.01 every picosecond.
|
strain by 0.01 every picosecond.
|
||||||
@ -373,7 +373,7 @@ where T0 is the initial tilt factor and dt is the elapsed time (in
|
|||||||
time units). Thus if *trate* R is specified as ln(1.1) and time units
|
time units). Thus if *trate* R is specified as ln(1.1) and time units
|
||||||
are picoseconds, this means the shear strain or tilt factor will
|
are picoseconds, this means the shear strain or tilt factor will
|
||||||
increase by 10% every picosecond. I.e. if the xy shear strain was
|
increase by 10% every picosecond. I.e. if the xy shear strain was
|
||||||
initially 0.1, then strain after 1 psec = 0.11, strain after 2 psec =
|
initially 0.1, then strain after 1 ps = 0.11, strain after 2 ps =
|
||||||
0.121, etc. R = ln(2) or ln(3) means the tilt factor will double or
|
0.121, etc. R = ln(2) or ln(3) means the tilt factor will double or
|
||||||
triple every picosecond. R = ln(0.99) means the tilt factor will
|
triple every picosecond. R = ln(0.99) means the tilt factor will
|
||||||
shrink by 1% every picosecond. Note that the change is continuous, so
|
shrink by 1% every picosecond. Note that the change is continuous, so
|
||||||
|
|||||||
@ -57,7 +57,7 @@ its current value(s) used to determine the flux.
|
|||||||
|
|
||||||
If *eflux* is a numeric constant or equal-style variable which evaluates
|
If *eflux* is a numeric constant or equal-style variable which evaluates
|
||||||
to a scalar value, then *eflux* determines the change in aggregate energy
|
to a scalar value, then *eflux* determines the change in aggregate energy
|
||||||
of the entire group of atoms per unit time, e.g. in eV/psec for
|
of the entire group of atoms per unit time, e.g. in eV/ps for
|
||||||
:doc:`metal units <units>`. In this case it is an "extensive" quantity,
|
:doc:`metal units <units>`. In this case it is an "extensive" quantity,
|
||||||
meaning its magnitude should be scaled with the number of atoms in the
|
meaning its magnitude should be scaled with the number of atoms in the
|
||||||
group. Note that since *eflux* also has per-time units (i.e. it is a
|
group. Note that since *eflux* also has per-time units (i.e. it is a
|
||||||
|
|||||||
@ -188,7 +188,7 @@ particles.
|
|||||||
*damp_com* is the characteristic time for reaching thermal equilibrium
|
*damp_com* is the characteristic time for reaching thermal equilibrium
|
||||||
of the centers of mass. For example, a value of 100.0 means to relax
|
of the centers of mass. For example, a value of 100.0 means to relax
|
||||||
the temperature of the centers of mass in a timespan of (roughly) 100
|
the temperature of the centers of mass in a timespan of (roughly) 100
|
||||||
time units (tau or fmsec or psec - see the :doc:`units <units>`
|
time units (tau or fs or ps - see the :doc:`units <units>`
|
||||||
command). *damp_drude* is the characteristic time for reaching
|
command). *damp_drude* is the characteristic time for reaching
|
||||||
thermal equilibrium of the dipoles. It is typically a few timesteps.
|
thermal equilibrium of the dipoles. It is typically a few timesteps.
|
||||||
|
|
||||||
|
|||||||
@ -196,7 +196,7 @@ The *units* keyword determines the meaning of the distance units used
|
|||||||
to define the *linear* velocity and *wiggle* amplitude and *rotate*
|
to define the *linear* velocity and *wiggle* amplitude and *rotate*
|
||||||
origin. This setting is ignored for the *variable* style. A *box*
|
origin. This setting is ignored for the *variable* style. A *box*
|
||||||
value selects standard units as defined by the :doc:`units <units>`
|
value selects standard units as defined by the :doc:`units <units>`
|
||||||
command, e.g. velocity in Angstroms/fmsec and amplitude and position
|
command, e.g. velocity in Angstroms/fs and amplitude and position
|
||||||
in Angstroms for units = real. A *lattice* value means the velocity
|
in Angstroms for units = real. A *lattice* value means the velocity
|
||||||
units are in lattice spacings per time and the amplitude and position
|
units are in lattice spacings per time and the amplitude and position
|
||||||
are in lattice spacings. The :doc:`lattice <lattice>` command must have
|
are in lattice spacings. The :doc:`lattice <lattice>` command must have
|
||||||
|
|||||||
@ -193,7 +193,7 @@ The *units* keyword determines the meaning of the distance units used
|
|||||||
to define the *linear* velocity and *wiggle* amplitude and *rotate*
|
to define the *linear* velocity and *wiggle* amplitude and *rotate*
|
||||||
origin. This setting is ignored for the *variable* style. A *box*
|
origin. This setting is ignored for the *variable* style. A *box*
|
||||||
value selects standard units as defined by the :doc:`units <units>`
|
value selects standard units as defined by the :doc:`units <units>`
|
||||||
command, e.g. velocity in Angstroms/fmsec and amplitude and position
|
command, e.g. velocity in Angstroms/fs and amplitude and position
|
||||||
in Angstroms for units = real. A *lattice* value means the velocity
|
in Angstroms for units = real. A *lattice* value means the velocity
|
||||||
units are in lattice spacings per time and the amplitude and position
|
units are in lattice spacings per time and the amplitude and position
|
||||||
are in lattice spacings. The :doc:`lattice <lattice>` command must have
|
are in lattice spacings. The :doc:`lattice <lattice>` command must have
|
||||||
|
|||||||
34
doc/src/fix_nh.rst
Normal file → Executable file
34
doc/src/fix_nh.rst
Normal file → Executable file
@ -46,7 +46,7 @@ Syntax
|
|||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
keyword = *temp* or *iso* or *aniso* or *tri* or *x* or *y* or *z* or *xy* or *yz* or *xz* or *couple* or *tchain* or *pchain* or *mtk* or *tloop* or *ploop* or *nreset* or *drag* or *dilate* or *scalexy* or *scaleyz* or *scalexz* or *flip* or *fixedpoint* or *update*
|
keyword = *temp* or *iso* or *aniso* or *tri* or *x* or *y* or *z* or *xy* or *yz* or *xz* or *couple* or *tchain* or *pchain* or *mtk* or *tloop* or *ploop* or *nreset* or *drag* or *ptemp* or *dilate* or *scalexy* or *scaleyz* or *scalexz* or *flip* or *fixedpoint* or *update*
|
||||||
*temp* values = Tstart Tstop Tdamp
|
*temp* values = Tstart Tstop Tdamp
|
||||||
Tstart,Tstop = external temperature at start/end of run
|
Tstart,Tstop = external temperature at start/end of run
|
||||||
Tdamp = temperature damping parameter (time units)
|
Tdamp = temperature damping parameter (time units)
|
||||||
@ -69,6 +69,8 @@ Syntax
|
|||||||
*nreset* value = reset reference cell every this many timesteps
|
*nreset* value = reset reference cell every this many timesteps
|
||||||
*drag* value = Df
|
*drag* value = Df
|
||||||
Df = drag factor added to barostat/thermostat (0.0 = no drag)
|
Df = drag factor added to barostat/thermostat (0.0 = no drag)
|
||||||
|
*ptemp* value = Ttarget
|
||||||
|
Ttarget = target temperature for barostat
|
||||||
*dilate* value = dilate-group-ID
|
*dilate* value = dilate-group-ID
|
||||||
dilate-group-ID = only dilate atoms in this group due to barostat volume changes
|
dilate-group-ID = only dilate atoms in this group due to barostat volume changes
|
||||||
*scalexy* value = *yes* or *no* = scale xy with ly
|
*scalexy* value = *yes* or *no* = scale xy with ly
|
||||||
@ -137,8 +139,8 @@ description below. The desired temperature at each timestep is a
|
|||||||
ramped value during the run from *Tstart* to *Tstop*\ . The *Tdamp*
|
ramped value during the run from *Tstart* to *Tstop*\ . The *Tdamp*
|
||||||
parameter is specified in time units and determines how rapidly the
|
parameter is specified in time units and determines how rapidly the
|
||||||
temperature is relaxed. For example, a value of 10.0 means to relax
|
temperature is relaxed. For example, a value of 10.0 means to relax
|
||||||
the temperature in a timespan of (roughly) 10 time units (e.g. tau or
|
the temperature in a timespan of (roughly) 10 time units (e.g. :math:`\tau`
|
||||||
fmsec or psec - see the :doc:`units <units>` command). The atoms in the
|
or fs or ps - see the :doc:`units <units>` command). The atoms in the
|
||||||
fix group are the only ones whose velocities and positions are updated
|
fix group are the only ones whose velocities and positions are updated
|
||||||
by the velocity/position update portion of the integration.
|
by the velocity/position update portion of the integration.
|
||||||
|
|
||||||
@ -195,8 +197,8 @@ simulation box must be triclinic, even if its initial tilt factors are
|
|||||||
For all barostat keywords, the *Pdamp* parameter operates like the
|
For all barostat keywords, the *Pdamp* parameter operates like the
|
||||||
*Tdamp* parameter, determining the time scale on which pressure is
|
*Tdamp* parameter, determining the time scale on which pressure is
|
||||||
relaxed. For example, a value of 10.0 means to relax the pressure in
|
relaxed. For example, a value of 10.0 means to relax the pressure in
|
||||||
a timespan of (roughly) 10 time units (e.g. tau or fmsec or psec - see
|
a timespan of (roughly) 10 time units (e.g. :math:`\tau` or fs or ps
|
||||||
the :doc:`units <units>` command).
|
- see the :doc:`units <units>` command).
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@ -208,6 +210,28 @@ the :doc:`units <units>` command).
|
|||||||
time units, and that timesteps are NOT the same as time units for most
|
time units, and that timesteps are NOT the same as time units for most
|
||||||
:doc:`units <units>` settings.
|
:doc:`units <units>` settings.
|
||||||
|
|
||||||
|
The relaxation rate of the barostat is set by its inertia :math:`W`:
|
||||||
|
|
||||||
|
.. math::
|
||||||
|
|
||||||
|
W = (N + 1) k T_{\rm target} P_{\rm damp}^2
|
||||||
|
|
||||||
|
where :math:`N` is the number of atoms, :math:`k` is the Boltzmann constant,
|
||||||
|
and :math:`T_{\rm target}` is the target temperature of the barostat :ref:`(Martyna) <nh-Martyna>`.
|
||||||
|
If a thermostat is defined, :math:`T_{\rm target}` is the target temperature
|
||||||
|
of the thermostat. If a thermostat is not defined, :math:`T_{\rm target}`
|
||||||
|
is set to the current temperature of the system when the barostat is initialized.
|
||||||
|
If this temperature is too low the simulation will quit with an error.
|
||||||
|
Note: in previous versions of LAMMPS, :math:`T_{\rm target}` would default to
|
||||||
|
a value of 1.0 for *lj* units and 300.0 otherwise if the system had a temperature
|
||||||
|
of exactly zero.
|
||||||
|
|
||||||
|
If a thermostat is not specified by this fix, :math:`T_{\rm target}` can be
|
||||||
|
manually specified using the *Ptemp* parameter. This may be useful if the
|
||||||
|
barostat is initialized when the current temperature does not reflect the
|
||||||
|
steady state temperature of the system. This keyword may also be useful in
|
||||||
|
athermal simulations where the temperature is not well defined.
|
||||||
|
|
||||||
Regardless of what atoms are in the fix group (the only atoms which
|
Regardless of what atoms are in the fix group (the only atoms which
|
||||||
are time integrated), a global pressure or stress tensor is computed
|
are time integrated), a global pressure or stress tensor is computed
|
||||||
for all atoms. Similarly, when the size of the simulation box is
|
for all atoms. Similarly, when the size of the simulation box is
|
||||||
|
|||||||
@ -103,8 +103,8 @@ description below. The desired temperature at each timestep is a
|
|||||||
ramped value during the run from *Tstart* to *Tstop*\ . The *Tdamp*
|
ramped value during the run from *Tstart* to *Tstop*\ . The *Tdamp*
|
||||||
parameter is specified in time units and determines how rapidly the
|
parameter is specified in time units and determines how rapidly the
|
||||||
temperature is relaxed. For example, a value of 10.0 means to relax
|
temperature is relaxed. For example, a value of 10.0 means to relax
|
||||||
the temperature in a timespan of (roughly) 10 time units (e.g. tau or
|
the temperature in a timespan of (roughly) 10 time units (e.g. :math:`\tau`
|
||||||
fmsec or psec - see the :doc:`units <units>` command). The atoms in the
|
or fs or ps - see the :doc:`units <units>` command). The atoms in the
|
||||||
fix group are the only ones whose velocities and positions are updated
|
fix group are the only ones whose velocities and positions are updated
|
||||||
by the velocity/position update portion of the integration.
|
by the velocity/position update portion of the integration.
|
||||||
|
|
||||||
@ -154,8 +154,8 @@ simulation box must be triclinic, even if its initial tilt factors are
|
|||||||
For all barostat keywords, the *Pdamp* parameter operates like the
|
For all barostat keywords, the *Pdamp* parameter operates like the
|
||||||
*Tdamp* parameter, determining the time scale on which pressure is
|
*Tdamp* parameter, determining the time scale on which pressure is
|
||||||
relaxed. For example, a value of 10.0 means to relax the pressure in
|
relaxed. For example, a value of 10.0 means to relax the pressure in
|
||||||
a timespan of (roughly) 10 time units (e.g. tau or fmsec or psec - see
|
a timespan of (roughly) 10 time units (e.g. :math:`\tau` or fs or ps
|
||||||
the :doc:`units <units>` command).
|
- see the :doc:`units <units>` command).
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
|
|||||||
@ -94,7 +94,7 @@ corresponds to T = 300 K.
|
|||||||
The *damp* parameter is specified in time units and determines how
|
The *damp* parameter is specified in time units and determines how
|
||||||
rapidly the temperature is relaxed. For example, a value of 0.03
|
rapidly the temperature is relaxed. For example, a value of 0.03
|
||||||
means to relax the temperature in a timespan of (roughly) 0.03 time
|
means to relax the temperature in a timespan of (roughly) 0.03 time
|
||||||
units tau (see the :doc:`units <units>` command).
|
units :math:`\tau` (see the :doc:`units <units>` command).
|
||||||
The damp factor can be thought of as inversely related to the
|
The damp factor can be thought of as inversely related to the
|
||||||
viscosity of the solvent, i.e. a small relaxation time implies a
|
viscosity of the solvent, i.e. a small relaxation time implies a
|
||||||
high-viscosity solvent and vice versa. See the discussion about gamma
|
high-viscosity solvent and vice versa. See the discussion about gamma
|
||||||
|
|||||||
@ -6,6 +6,9 @@ fix orient/fcc command
|
|||||||
fix orient/bcc command
|
fix orient/bcc command
|
||||||
======================
|
======================
|
||||||
|
|
||||||
|
Syntax
|
||||||
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
fix ID group-ID orient/fcc nstats dir alat dE cutlo cuthi file0 file1
|
fix ID group-ID orient/fcc nstats dir alat dE cutlo cuthi file0 file1
|
||||||
|
|||||||
154
doc/src/fix_orient_eco.rst
Normal file
154
doc/src/fix_orient_eco.rst
Normal file
@ -0,0 +1,154 @@
|
|||||||
|
.. index:: fix orient/eco
|
||||||
|
|
||||||
|
fix orient/eco command
|
||||||
|
======================
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
fix ID group-ID orient/eco u0 eta cutoff orientationsFile
|
||||||
|
|
||||||
|
|
||||||
|
* ID, group-ID are documented in fix command
|
||||||
|
* u0 = energy added to each atom (energy units)
|
||||||
|
* eta = cutoff value (usually 0.25)
|
||||||
|
* cutoff = cutoff radius for orientation parameter calculation
|
||||||
|
* orientationsFile = file that specifies orientation of each grain
|
||||||
|
|
||||||
|
Examples
|
||||||
|
""""""""
|
||||||
|
|
||||||
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
|
fix gb all orient/eco 0.08 0.25 3.524 sigma5.ori
|
||||||
|
|
||||||
|
|
||||||
|
Description
|
||||||
|
"""""""""""
|
||||||
|
|
||||||
|
The fix applies a synthetic driving force to a grain boundary which can
|
||||||
|
be used for the investigation of grain boundary motion. The affiliation
|
||||||
|
of atoms to either of the two grains forming the grain boundary is
|
||||||
|
determined from an orientation-dependent order parameter as described
|
||||||
|
in :ref:`(Ulomek) <Ulomek>`. The potential energy of atoms is either increased by an amount
|
||||||
|
of 0.5*\ *u0* or -0.5*\ *u0* according to the orientation of the surrounding
|
||||||
|
crystal. This creates a potential energy gradient which pushes atoms near
|
||||||
|
the grain boundary to orient according to the energetically favorable
|
||||||
|
grain orientation. This fix is designed for applications in bicrystal system
|
||||||
|
with one grain boundary and open ends, or two opposite grain boundaries in
|
||||||
|
a periodic system. In either case, the entire system can experience a
|
||||||
|
displacement during the simulation which needs to be accounted for in the
|
||||||
|
evaluation of the grain boundary velocity. While the basic method is
|
||||||
|
described in :ref:`(Ulomek) <Ulomek>`, the implementation follows the efficient
|
||||||
|
implementation from :ref:`(Schratt & Mohles) <Schratt>`. The synthetic potential energy added to an
|
||||||
|
atom j is given by the following formulas
|
||||||
|
|
||||||
|
.. math::
|
||||||
|
|
||||||
|
w(|\vec{r}_{jk}|) = w_{jk} & = \left\{\begin{array}{lc} \frac{|\vec{r}_{jk}|^{4}}{r_{\mathrm{cut}}^{4}}
|
||||||
|
-2\frac{|\vec{r}_{jk}|^{2}}{r_{\mathrm{cut}}^{2}}+1, & |\vec{r}_{jk}|<r_{\mathrm{cut}} \\
|
||||||
|
0, & |\vec{r}_{jk}|\ge r_{\mathrm{cut}}
|
||||||
|
\end{array}\right. \\
|
||||||
|
\chi_{j} & = \frac{1}{N}\sum_{l=1}^{3}\left\lbrack\left\vert\psi_{l}^{\mathrm{I}}(\vec{r}_{j})\right\vert^{2}-\left\vert\psi_{l}^{\mathrm{II}}(\vec{r}_{j})\right\vert^{2}\right\rbrack \\
|
||||||
|
\psi_{l}^{\mathrm{X}}(\vec{r}_{j}) & = \sum_{k\in\mathit{\Gamma}_{j}}w_{jk}\exp\left(\mathrm{i}\vec{r}_{jk}\cdot\vec{q}_{l}^{\mathrm{X}}\right) \\
|
||||||
|
u(\chi_{j}) & = \frac{u_{0}}{2}\left\{\begin{array}{lc}
|
||||||
|
1, & \chi_{j}\ge\eta\\
|
||||||
|
\sin\left(\frac{\pi\chi_{j}}{2\eta}\right), & -\eta<\chi_{j}<\eta\\
|
||||||
|
-1, & \chi_{j}\le-\eta
|
||||||
|
\end{array}\right.
|
||||||
|
|
||||||
|
which are fully explained in :ref:`(Ulomek) <Ulomek>`
|
||||||
|
and :ref:`(Schratt & Mohles) <Schratt>`.
|
||||||
|
|
||||||
|
The force on each atom is the negative gradient of the synthetic potential energy. It
|
||||||
|
depends on the surrounding of this atom. An atom far from the grain boundary does not
|
||||||
|
experience a synthetic force as its surrounding is that of an oriented single crystal
|
||||||
|
and thermal fluctuations are masked by the parameter *eta*\ . Near the grain boundary
|
||||||
|
however, the gradient is nonzero and synthetic force terms are computed.
|
||||||
|
The orientationsFile specifies the perfect oriented crystal basis vectors for the
|
||||||
|
two adjoining crystals. The first three lines (line=row vector) for the energetically penalized and the
|
||||||
|
last three lines for the energetically favored grain assuming *u0* is positive. For
|
||||||
|
negative *u0*, this is reversed. With the *cutoff* parameter, the size of the region around
|
||||||
|
each atom which is used in the order parameter computation is defined. The cutoff must be
|
||||||
|
smaller than the interaction range of the MD potential. It should at
|
||||||
|
least include the nearest neighbor shell. For high temperatures or low angle
|
||||||
|
grain boundaries, it might be beneficial to increase the cutoff in order to get a more
|
||||||
|
precise identification of the atoms surrounding. However, computation time will
|
||||||
|
increase as more atoms are considered in the order parameter and force computation.
|
||||||
|
It is also worth noting that the cutoff radius must not exceed the communication
|
||||||
|
distance for ghost atoms in LAMMPS. With orientationsFile, the
|
||||||
|
6 oriented crystal basis vectors is specified. Each line of the input file
|
||||||
|
contains the three components of a primitive lattice vector oriented according to
|
||||||
|
the grain orientation in the simulation box. The first (last) three lines correspond
|
||||||
|
to the primitive lattice vectors of the first (second) grain. An example for
|
||||||
|
a :math:`\Sigma\langle001\rangle` mis-orientation is given at the end.
|
||||||
|
|
||||||
|
If no synthetic energy difference between the grains is created, :math:`u0=0`, the
|
||||||
|
force computation is omitted. In this case, still, the order parameter of the
|
||||||
|
driving force is computed and can be used to track the grain boundary motion throughout the
|
||||||
|
simulation.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**Restart, fix_modify, output, run start/stop, minimize info:**
|
||||||
|
|
||||||
|
No information about this fix is written to :doc: `binary restart files <restart>`.
|
||||||
|
|
||||||
|
The :doc:`fix_modify <fix_modify>` *energy* option is supported by this fix to
|
||||||
|
add the potential energy of atom interactions with the grain boundary
|
||||||
|
driving force to the system's potential energy as part of thermodynamic output.
|
||||||
|
The total sum of added synthetic potential energy is computed and can be accessed
|
||||||
|
by various output options. The order parameter as well as the thermally masked
|
||||||
|
output parameter are stored in per-atom arrays and can also be accessed by various
|
||||||
|
:doc:`output commands <Howto_output>`.
|
||||||
|
|
||||||
|
No parameter of this fix can be used with the start/stop keywords of the run command. This fix is
|
||||||
|
not invoked during energy minimization.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Restrictions
|
||||||
|
""""""""""""
|
||||||
|
|
||||||
|
This fix is part of the USER-MISC package. It is only enabled if LAMMPS was
|
||||||
|
built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Related commands
|
||||||
|
""""""""""""""""
|
||||||
|
|
||||||
|
:doc:`fix_modify <fix_modify>`
|
||||||
|
|
||||||
|
:doc:`fix_orient <fix_orient>`
|
||||||
|
|
||||||
|
**Default:** none
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
.. _Ulomek:
|
||||||
|
|
||||||
|
**(Ulomek)** Ulomek, Brien, Foiles, Mohles, Modelling Simul. Mater. Sci. Eng. 23 (2015) 025007
|
||||||
|
|
||||||
|
.. _Schratt:
|
||||||
|
|
||||||
|
**(Schratt & Mohles)** Schratt, Mohles. Comp. Mat. Sci. 182 (2020) 109774
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
For illustration purposes, here is an example file that specifies a
|
||||||
|
:math:`\Sigma=5 \langle 001 \rangle` tilt grain boundary. This is for a lattice constant of 3.52 Angstrom:
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
sigma5.ori:
|
||||||
|
|
||||||
|
1.671685 0.557228 1.76212
|
||||||
|
0.557228 -1.671685 1.76212
|
||||||
|
2.228913 -1.114456 0.00000
|
||||||
|
0.557228 1.671685 1.76212
|
||||||
|
1.671685 -0.557228 1.76212
|
||||||
|
2.228913 1.114456 0.00000
|
||||||
|
|
||||||
|
|
||||||
@ -3,7 +3,8 @@
|
|||||||
fix poems command
|
fix poems command
|
||||||
=================
|
=================
|
||||||
|
|
||||||
Syntax:
|
Syntax
|
||||||
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
|
|||||||
@ -90,7 +90,7 @@ although you have the option to change that dimension via the :doc:`fix deform <
|
|||||||
For all barostat keywords, the *Pdamp* parameter determines the time
|
For all barostat keywords, the *Pdamp* parameter determines the time
|
||||||
scale on which pressure is relaxed. For example, a value of 10.0
|
scale on which pressure is relaxed. For example, a value of 10.0
|
||||||
means to relax the pressure in a timespan of (roughly) 10 time units
|
means to relax the pressure in a timespan of (roughly) 10 time units
|
||||||
(tau or fmsec or psec - see the :doc:`units <units>` command).
|
(tau or fs or ps - see the :doc:`units <units>` command).
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
|
|||||||
@ -3,6 +3,9 @@
|
|||||||
fix rhok command
|
fix rhok command
|
||||||
================
|
================
|
||||||
|
|
||||||
|
Syntax
|
||||||
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
fix ID group-ID rhok nx ny nz K a
|
fix ID group-ID rhok nx ny nz K a
|
||||||
|
|||||||
@ -429,8 +429,8 @@ that dimension via the :doc:`fix deform <fix_deform>` command.
|
|||||||
For all barostat keywords, the *Pdamp* parameter operates like the
|
For all barostat keywords, the *Pdamp* parameter operates like the
|
||||||
*Tdamp* parameter, determining the time scale on which pressure is
|
*Tdamp* parameter, determining the time scale on which pressure is
|
||||||
relaxed. For example, a value of 10.0 means to relax the pressure in
|
relaxed. For example, a value of 10.0 means to relax the pressure in
|
||||||
a timespan of (roughly) 10 time units (e.g. tau or fmsec or psec - see
|
a timespan of (roughly) 10 time units (e.g. :math:`\tau` or fs or ps
|
||||||
the :doc:`units <units>` command).
|
- see the :doc:`units <units>` command).
|
||||||
|
|
||||||
Regardless of what atoms are in the fix group (the only atoms which
|
Regardless of what atoms are in the fix group (the only atoms which
|
||||||
are time integrated), a global pressure or stress tensor is computed
|
are time integrated), a global pressure or stress tensor is computed
|
||||||
@ -514,7 +514,7 @@ desired temperature at each timestep is a ramped value during the run
|
|||||||
from *Tstart* to *Tstop*\ . The *Tdamp* parameter is specified in time
|
from *Tstart* to *Tstop*\ . The *Tdamp* parameter is specified in time
|
||||||
units and determines how rapidly the temperature is relaxed. For
|
units and determines how rapidly the temperature is relaxed. For
|
||||||
example, a value of 100.0 means to relax the temperature in a timespan
|
example, a value of 100.0 means to relax the temperature in a timespan
|
||||||
of (roughly) 100 time units (tau or fmsec or psec - see the
|
of (roughly) 100 time units (:math:`\tau` or fs or ps - see the
|
||||||
:doc:`units <units>` command). The random # *seed* must be a positive
|
:doc:`units <units>` command). The random # *seed* must be a positive
|
||||||
integer.
|
integer.
|
||||||
|
|
||||||
@ -539,7 +539,7 @@ timestep is a ramped value during the run from *Tstart* to *Tstop*\ .
|
|||||||
The *Tdamp* parameter is specified in time units and determines how
|
The *Tdamp* parameter is specified in time units and determines how
|
||||||
rapidly the temperature is relaxed. For example, a value of 100.0
|
rapidly the temperature is relaxed. For example, a value of 100.0
|
||||||
means to relax the temperature in a timespan of (roughly) 100 time
|
means to relax the temperature in a timespan of (roughly) 100 time
|
||||||
units (tau or fmsec or psec - see the :doc:`units <units>` command).
|
units (tau or fs or ps - see the :doc:`units <units>` command).
|
||||||
|
|
||||||
Nose/Hoover chains are used in conjunction with this thermostat. The
|
Nose/Hoover chains are used in conjunction with this thermostat. The
|
||||||
*tparam* keyword can optionally be used to change the chain settings
|
*tparam* keyword can optionally be used to change the chain settings
|
||||||
|
|||||||
@ -45,7 +45,7 @@ The desired temperature at each timestep is a ramped value during the
|
|||||||
run from *Tstart* to *Tstop*\ . The *Tdamp* parameter is specified in
|
run from *Tstart* to *Tstop*\ . The *Tdamp* parameter is specified in
|
||||||
time units and determines how rapidly the temperature is relaxed. For
|
time units and determines how rapidly the temperature is relaxed. For
|
||||||
example, a value of 100.0 means to relax the temperature in a timespan
|
example, a value of 100.0 means to relax the temperature in a timespan
|
||||||
of (roughly) 100 time units (tau or fmsec or psec - see the
|
of (roughly) 100 time units (tau or fs or ps - see the
|
||||||
:doc:`units <units>` command).
|
:doc:`units <units>` command).
|
||||||
|
|
||||||
*Tstart* can be specified as an equal-style :doc:`variable <variable>`.
|
*Tstart* can be specified as an equal-style :doc:`variable <variable>`.
|
||||||
|
|||||||
@ -59,7 +59,7 @@ The desired temperature at each timestep is a ramped value during the
|
|||||||
run from *Tstart* to *Tstop*\ . The *Tdamp* parameter is specified in
|
run from *Tstart* to *Tstop*\ . The *Tdamp* parameter is specified in
|
||||||
time units and determines how rapidly the temperature is relaxed. For
|
time units and determines how rapidly the temperature is relaxed. For
|
||||||
example, a value of 100.0 means to relax the temperature in a timespan
|
example, a value of 100.0 means to relax the temperature in a timespan
|
||||||
of (roughly) 100 time units (tau or fmsec or psec - see the
|
of (roughly) 100 time units (tau or fs or ps - see the
|
||||||
:doc:`units <units>` command).
|
:doc:`units <units>` command).
|
||||||
|
|
||||||
*Tstart* can be specified as an equal-style :doc:`variable <variable>`.
|
*Tstart* can be specified as an equal-style :doc:`variable <variable>`.
|
||||||
|
|||||||
@ -88,7 +88,7 @@ time:
|
|||||||
|
|
||||||
\lambda(\tau) = \tau
|
\lambda(\tau) = \tau
|
||||||
|
|
||||||
where tau is the scaled time variable *t/t_s*. The option *2* performs
|
where :math:`\tau` is the scaled time variable *t/t_s*. The option *2* performs
|
||||||
the lambda switching at a rate defined by the following switching
|
the lambda switching at a rate defined by the following switching
|
||||||
function
|
function
|
||||||
|
|
||||||
|
|||||||
@ -45,7 +45,7 @@ Syntax
|
|||||||
radius = cylinder radius (distance units)
|
radius = cylinder radius (distance units)
|
||||||
|
|
||||||
* zero or more keyword/value pairs may be appended to args
|
* zero or more keyword/value pairs may be appended to args
|
||||||
* keyword = *wiggle* or *shear*
|
* keyword = *wiggle* or *shear* or *contacts*
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
@ -56,6 +56,9 @@ Syntax
|
|||||||
*shear* values = dim vshear
|
*shear* values = dim vshear
|
||||||
dim = *x* or *y* or *z*
|
dim = *x* or *y* or *z*
|
||||||
vshear = magnitude of shear velocity (velocity units)
|
vshear = magnitude of shear velocity (velocity units)
|
||||||
|
*contacts* value = none
|
||||||
|
generate contact information for each particle
|
||||||
|
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
""""""""
|
""""""""
|
||||||
@ -68,6 +71,7 @@ Examples
|
|||||||
fix 3 all wall/gran/region granular hooke 1000.0 50.0 tangential linear_nohistory 1.0 0.4 damping velocity region myBox
|
fix 3 all wall/gran/region granular hooke 1000.0 50.0 tangential linear_nohistory 1.0 0.4 damping velocity region myBox
|
||||||
fix 4 all wall/gran/region granular jkr 1e5 1500.0 0.3 10.0 tangential mindlin NULL 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall region myCone
|
fix 4 all wall/gran/region granular jkr 1e5 1500.0 0.3 10.0 tangential mindlin NULL 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall region myCone
|
||||||
fix 5 all wall/gran/region granular dmt 1e5 0.2 0.3 10.0 tangential mindlin NULL 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall damping tsuji region myCone
|
fix 5 all wall/gran/region granular dmt 1e5 0.2 0.3 10.0 tangential mindlin NULL 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall damping tsuji region myCone
|
||||||
|
fix 6 all wall/gran hooke 200000.0 NULL 50.0 NULL 0.5 0 xplane -10.0 10.0 contacts
|
||||||
|
|
||||||
Description
|
Description
|
||||||
"""""""""""
|
"""""""""""
|
||||||
@ -171,6 +175,7 @@ the clockwise direction for *vshear* > 0 or counter-clockwise for
|
|||||||
*vshear* < 0. In this case, *vshear* is the tangential velocity of
|
*vshear* < 0. In this case, *vshear* is the tangential velocity of
|
||||||
the wall at whatever *radius* has been defined.
|
the wall at whatever *radius* has been defined.
|
||||||
|
|
||||||
|
|
||||||
**Restart, fix_modify, output, run start/stop, minimize info:**
|
**Restart, fix_modify, output, run start/stop, minimize info:**
|
||||||
|
|
||||||
This fix writes the shear friction state of atoms interacting with the
|
This fix writes the shear friction state of atoms interacting with the
|
||||||
@ -181,11 +186,37 @@ info on how to re-specify a fix in an input script that reads a
|
|||||||
restart file, so that the operation of the fix continues in an
|
restart file, so that the operation of the fix continues in an
|
||||||
uninterrupted fashion.
|
uninterrupted fashion.
|
||||||
|
|
||||||
None of the :doc:`fix_modify <fix_modify>` options are relevant to this
|
If the :code:`contacts` option is used, this fix generates a per-atom array
|
||||||
fix. No global or per-atom quantities are stored by this fix for
|
with 8 columns as output, containing the contact information for owned
|
||||||
access by various :doc:`output commands <Howto_output>`. No parameter
|
particles (nlocal on each processor). All columns in this per-atom array will
|
||||||
of this fix can be used with the *start/stop* keywords of the
|
be zero if no contact has occurred. The values of these columns are listed in
|
||||||
:doc:`run <run>` command. This fix is not invoked during :doc:`energy minimization <minimize>`.
|
the following table:
|
||||||
|
|
||||||
|
+-------+----------------------------------------------------+----------------+
|
||||||
|
| Index | Value | Units |
|
||||||
|
+=======+====================================================+================+
|
||||||
|
| 1 | 1.0 if particle is in contact with wall, | |
|
||||||
|
| | 0.0 otherwise | |
|
||||||
|
+-------+----------------------------------------------------+----------------+
|
||||||
|
| 2 | Force :math:`f_x` exerted on the wall | force units |
|
||||||
|
+-------+----------------------------------------------------+----------------+
|
||||||
|
| 3 | Force :math:`f_y` exerted on the wall | force units |
|
||||||
|
+-------+----------------------------------------------------+----------------+
|
||||||
|
| 4 | Force :math:`f_z` exerted on the wall | force units |
|
||||||
|
+-------+----------------------------------------------------+----------------+
|
||||||
|
| 5 | :math:`\Delta x` between wall surface and particle | distance units |
|
||||||
|
+-------+----------------------------------------------------+----------------+
|
||||||
|
| 6 | :math:`\Delta y` between wall surface and particle | distance units |
|
||||||
|
+-------+----------------------------------------------------+----------------+
|
||||||
|
| 7 | :math:`\Delta z` between wall surface and particle | distance units |
|
||||||
|
+-------+----------------------------------------------------+----------------+
|
||||||
|
| 8 | Radius :math:`r` of atom | distance units |
|
||||||
|
+-------+----------------------------------------------------+----------------+
|
||||||
|
|
||||||
|
None of the :doc:`fix_modify <fix_modify>` options are relevant to this fix.
|
||||||
|
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>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|||||||
@ -8,7 +8,7 @@ Syntax
|
|||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
fix ID group-ID wall/gran/region fstyle fstyle_params wallstyle regionID
|
fix ID group-ID wall/gran/region fstyle fstyle_params wallstyle regionID keyword values ...
|
||||||
|
|
||||||
* ID, group-ID are documented in :doc:`fix <fix>` command
|
* ID, group-ID are documented in :doc:`fix <fix>` command
|
||||||
* wall/region = style name of this fix command
|
* wall/region = style name of this fix command
|
||||||
@ -36,6 +36,12 @@ Syntax
|
|||||||
|
|
||||||
* wallstyle = region (see :doc:`fix wall/gran <fix_wall_gran>` for options for other kinds of walls)
|
* wallstyle = region (see :doc:`fix wall/gran <fix_wall_gran>` for options for other kinds of walls)
|
||||||
* region-ID = region whose boundary will act as wall
|
* region-ID = region whose boundary will act as wall
|
||||||
|
* keyword = *contacts*
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
*contacts* value = none
|
||||||
|
generate contact information for each particle
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
""""""""
|
""""""""
|
||||||
@ -46,6 +52,7 @@ Examples
|
|||||||
fix 3 all wall/gran/region granular hooke 1000.0 50.0 tangential linear_nohistory 1.0 0.4 damping velocity region myBox
|
fix 3 all wall/gran/region granular hooke 1000.0 50.0 tangential linear_nohistory 1.0 0.4 damping velocity region myBox
|
||||||
fix 4 all wall/gran/region granular jkr 1e5 1500.0 0.3 10.0 tangential mindlin NULL 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall region myCone
|
fix 4 all wall/gran/region granular jkr 1e5 1500.0 0.3 10.0 tangential mindlin NULL 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall region myCone
|
||||||
fix 5 all wall/gran/region granular dmt 1e5 0.2 0.3 10.0 tangential mindlin NULL 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall damping tsuji region myCone
|
fix 5 all wall/gran/region granular dmt 1e5 0.2 0.3 10.0 tangential mindlin NULL 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall damping tsuji region myCone
|
||||||
|
fix wall all wall/gran/region hooke/history 1000.0 200.0 200.0 100.0 0.5 1 region myCone contacts
|
||||||
|
|
||||||
Description
|
Description
|
||||||
"""""""""""
|
"""""""""""
|
||||||
@ -215,11 +222,37 @@ uninterrupted fashion.
|
|||||||
use the same fix ID for fix wall/gran/region, but assign it a region
|
use the same fix ID for fix wall/gran/region, but assign it a region
|
||||||
with a different region ID.
|
with a different region ID.
|
||||||
|
|
||||||
None of the :doc:`fix_modify <fix_modify>` options are relevant to this
|
If the :code:`contacts` option is used, this fix generates a per-atom array
|
||||||
fix. No global or per-atom quantities are stored by this fix for
|
with 8 columns as output, containing the contact information for owned
|
||||||
access by various :doc:`output commands <Howto_output>`. No parameter
|
particles (nlocal on each processor). All columns in this per-atom array will
|
||||||
of this fix can be used with the *start/stop* keywords of the
|
be zero if no contact has occurred. The values of these columns are listed in
|
||||||
:doc:`run <run>` command. This fix is not invoked during :doc:`energy minimization <minimize>`.
|
the following table:
|
||||||
|
|
||||||
|
+-------+----------------------------------------------------+----------------+
|
||||||
|
| Index | Value | Units |
|
||||||
|
+=======+====================================================+================+
|
||||||
|
| 1 | 1.0 if particle is in contact with wall, | |
|
||||||
|
| | 0.0 otherwise | |
|
||||||
|
+-------+----------------------------------------------------+----------------+
|
||||||
|
| 2 | Force :math:`f_x` exerted on the wall | force units |
|
||||||
|
+-------+----------------------------------------------------+----------------+
|
||||||
|
| 3 | Force :math:`f_y` exerted on the wall | force units |
|
||||||
|
+-------+----------------------------------------------------+----------------+
|
||||||
|
| 4 | Force :math:`f_z` exerted on the wall | force units |
|
||||||
|
+-------+----------------------------------------------------+----------------+
|
||||||
|
| 5 | :math:`\Delta x` between wall surface and particle | distance units |
|
||||||
|
+-------+----------------------------------------------------+----------------+
|
||||||
|
| 6 | :math:`\Delta y` between wall surface and particle | distance units |
|
||||||
|
+-------+----------------------------------------------------+----------------+
|
||||||
|
| 7 | :math:`\Delta z` between wall surface and particle | distance units |
|
||||||
|
+-------+----------------------------------------------------+----------------+
|
||||||
|
| 8 | Radius :math:`r` of atom | distance units |
|
||||||
|
+-------+----------------------------------------------------+----------------+
|
||||||
|
|
||||||
|
None of the :doc:`fix_modify <fix_modify>` options are relevant to this fix.
|
||||||
|
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>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|||||||
@ -145,16 +145,16 @@ parameters, see the :doc:`How-To <Howto_dispersion>` discussion.
|
|||||||
|
|
||||||
The *fftbench* keyword applies only to PPPM. It is off by default. If
|
The *fftbench* keyword applies only to PPPM. It is off by default. If
|
||||||
this option is turned on, LAMMPS will perform a short FFT benchmark
|
this option is turned on, LAMMPS will perform a short FFT benchmark
|
||||||
computation and report its timings, and will thus finish a some seconds
|
computation and report its timings, and will thus finish some seconds
|
||||||
later than it would if this option were off.
|
later than it would if this option were off.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
The *force/disp/real* and *force/disp/kspace* keywords set the force
|
The *force/disp/real* and *force/disp/kspace* keywords set the force
|
||||||
accuracy for the real and space computations for the dispersion part
|
accuracy for the real and reciprocal space computations for the dispersion
|
||||||
of pppm/disp. As shown in :ref:`(Isele-Holder) <Isele-Holder1>`, optimal
|
part of pppm/disp. As shown in :ref:`(Isele-Holder) <Isele-Holder1>`,
|
||||||
performance and accuracy in the results is obtained when these values
|
optimal performance and accuracy in the results is obtained when these
|
||||||
are different.
|
values are different.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
@ -413,10 +413,10 @@ slab correction has also been extended to point dipole interactions
|
|||||||
----------
|
----------
|
||||||
|
|
||||||
The *force/disp/real* and *force/disp/kspace* keywords set the force
|
The *force/disp/real* and *force/disp/kspace* keywords set the force
|
||||||
accuracy for the real and space computations for the dispersion part
|
accuracy for the real and reciprocal space computations for the dispersion
|
||||||
of pppm/disp. As shown in :ref:`(Isele-Holder) <Isele-Holder1>`, optimal
|
part of pppm/disp. As shown in :ref:`(Isele-Holder) <Isele-Holder1>`,
|
||||||
performance and accuracy in the results is obtained when these values
|
optimal performance and accuracy in the results is obtained when these
|
||||||
are different.
|
values are different.
|
||||||
|
|
||||||
The *disp/auto* option controls whether the pppm/disp is allowed to
|
The *disp/auto* option controls whether the pppm/disp is allowed to
|
||||||
generate PPPM parameters automatically. If set to *no*\ , parameters
|
generate PPPM parameters automatically. If set to *no*\ , parameters
|
||||||
|
|||||||
@ -39,15 +39,9 @@ pair_style eam/alloy/opt command
|
|||||||
pair_style eam/cd command
|
pair_style eam/cd command
|
||||||
=========================
|
=========================
|
||||||
|
|
||||||
pair_style eam/cd/omp command
|
|
||||||
=============================
|
|
||||||
|
|
||||||
pair_style eam/cd/old command
|
pair_style eam/cd/old command
|
||||||
=============================
|
=============================
|
||||||
|
|
||||||
pair_style eam/cd/old/omp command
|
|
||||||
=================================
|
|
||||||
|
|
||||||
pair_style eam/fs command
|
pair_style eam/fs command
|
||||||
=========================
|
=========================
|
||||||
|
|
||||||
|
|||||||
@ -28,7 +28,9 @@ Syntax
|
|||||||
* flagHI (optional) = 0/1 to exclude/include 1/r hydrodynamic interactions
|
* flagHI (optional) = 0/1 to exclude/include 1/r hydrodynamic interactions
|
||||||
* flagVF (optional) = 0/1 to exclude/include volume fraction corrections in the long-range isotropic terms
|
* flagVF (optional) = 0/1 to exclude/include volume fraction corrections in the long-range isotropic terms
|
||||||
|
|
||||||
**Examples:** (all assume radius = 1)
|
Examples
|
||||||
|
""""""""
|
||||||
|
(all assume radius = 1)
|
||||||
|
|
||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
|
|||||||
@ -22,7 +22,9 @@ Syntax
|
|||||||
* flagHI (optional) = 0/1 to exclude/include 1/r hydrodynamic interactions
|
* flagHI (optional) = 0/1 to exclude/include 1/r hydrodynamic interactions
|
||||||
* flagVF (optional) = 0/1 to exclude/include volume fraction corrections in the long-range isotropic terms
|
* flagVF (optional) = 0/1 to exclude/include volume fraction corrections in the long-range isotropic terms
|
||||||
|
|
||||||
**Examples:** (all assume radius = 1)
|
Examples
|
||||||
|
""""""""
|
||||||
|
(all assume radius = 1)
|
||||||
|
|
||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
|
|||||||
@ -8,7 +8,14 @@ Syntax
|
|||||||
|
|
||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
reset_ids
|
reset_ids keyword values ...
|
||||||
|
|
||||||
|
* zero or more keyword/value pairs may be appended
|
||||||
|
* keyword = *sort*
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
*sort* value = *yes* or *no*
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
""""""""
|
""""""""
|
||||||
@ -16,6 +23,7 @@ Examples
|
|||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
reset_ids
|
reset_ids
|
||||||
|
reset_ids sort yes
|
||||||
|
|
||||||
Description
|
Description
|
||||||
"""""""""""
|
"""""""""""
|
||||||
@ -33,11 +41,32 @@ e.g. due to atoms moving outside a simulation box with fixed
|
|||||||
boundaries (see the "boundary command"), or due to evaporation (see
|
boundaries (see the "boundary command"), or due to evaporation (see
|
||||||
the "fix evaporate" command).
|
the "fix evaporate" command).
|
||||||
|
|
||||||
Note that the resetting of IDs is not really a compression, where gaps
|
If the *sort* keyword is used with a setting of *yes*, then the
|
||||||
in atom IDs are removed by decrementing atom IDs that are larger.
|
assignment of new atom IDs will be the same no matter how many
|
||||||
Instead the IDs for all atoms are erased, and new IDs are assigned so
|
processors LAMMPS is running on. This is done by first doing a
|
||||||
that the atoms owned by an individual processor have consecutive IDs,
|
spatial sort of all the atoms into bins and sorting them within each
|
||||||
as the :doc:`create_atoms <create_atoms>` command explains.
|
bin. Because the set of bins is independent of the number of
|
||||||
|
processors, this enables a consistent assignment of new IDs to each
|
||||||
|
atom.
|
||||||
|
|
||||||
|
This can be useful to do after using the "create_atoms" command and/or
|
||||||
|
"replicate" command. In general those commands do not guarantee
|
||||||
|
assignment of the same atom ID to the same physical atom when LAMMPS
|
||||||
|
is run on different numbers of processors. Enforcing consistent IDs
|
||||||
|
can be useful for debugging or comparing output from two different
|
||||||
|
runs.
|
||||||
|
|
||||||
|
Note that the spatial sort requires communication of atom IDs and
|
||||||
|
coordinates between processors in an all-to-all manner. This is done
|
||||||
|
efficiently in LAMMPS, but it is more expensive than how atom IDs are
|
||||||
|
reset without sorting.
|
||||||
|
|
||||||
|
Note that whether sorting or not, the resetting of IDs is not a
|
||||||
|
compression, where gaps in atom IDs are removed by decrementing atom
|
||||||
|
IDs that are larger. Instead the IDs for all atoms are erased, and
|
||||||
|
new IDs are assigned so that the atoms owned by an individual
|
||||||
|
processor have consecutive IDs, as the :doc:`create_atoms
|
||||||
|
<create_atoms>` command explains.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@ -59,4 +88,7 @@ Related commands
|
|||||||
|
|
||||||
:doc:`delete_atoms <delete_atoms>`
|
:doc:`delete_atoms <delete_atoms>`
|
||||||
|
|
||||||
**Default:** none
|
Default
|
||||||
|
"""""""
|
||||||
|
|
||||||
|
By default, *sort* is no.
|
||||||
|
|||||||
@ -150,8 +150,8 @@ timestep, angle interactions computed 4x, pair interactions computed
|
|||||||
|
|
||||||
The :doc:`timestep <timestep>` command sets the large timestep for the
|
The :doc:`timestep <timestep>` command sets the large timestep for the
|
||||||
outermost rRESPA level. Thus if the 3 loop factors are "2 2 2" for
|
outermost rRESPA level. Thus if the 3 loop factors are "2 2 2" for
|
||||||
4-level rRESPA, and the outer timestep is set to 4.0 fmsec, then the
|
4-level rRESPA, and the outer timestep is set to 4.0 fs, then the
|
||||||
inner timestep would be 8x smaller or 0.5 fmsec. All other LAMMPS
|
inner timestep would be 8x smaller or 0.5 fs. All other LAMMPS
|
||||||
commands that specify number of timesteps (e.g. :doc:`thermo <thermo>`
|
commands that specify number of timesteps (e.g. :doc:`thermo <thermo>`
|
||||||
for thermo output every N steps, :doc:`neigh_modify delay/every <neigh_modify>` parameters, :doc:`dump <dump>` every N
|
for thermo output every N steps, :doc:`neigh_modify delay/every <neigh_modify>` parameters, :doc:`dump <dump>` every N
|
||||||
steps, etc) refer to the outermost timesteps.
|
steps, etc) refer to the outermost timesteps.
|
||||||
@ -213,10 +213,10 @@ With that caveat, a few rules-of-thumb may be useful in selecting
|
|||||||
simulations using the CHARMM or a similar all-atom force field, but
|
simulations using the CHARMM or a similar all-atom force field, but
|
||||||
the concepts are adaptable to other problems. Without SHAKE, bonds
|
the concepts are adaptable to other problems. Without SHAKE, bonds
|
||||||
involving hydrogen atoms exhibit high-frequency vibrations and require
|
involving hydrogen atoms exhibit high-frequency vibrations and require
|
||||||
a timestep on the order of 0.5 fmsec in order to conserve energy. The
|
a timestep on the order of 0.5 fs in order to conserve energy. The
|
||||||
relatively inexpensive force computations for the bonds, angles,
|
relatively inexpensive force computations for the bonds, angles,
|
||||||
impropers, and dihedrals can be computed on this innermost 0.5 fmsec
|
impropers, and dihedrals can be computed on this innermost 0.5 fs
|
||||||
step. The outermost timestep cannot be greater than 4.0 fmsec without
|
step. The outermost timestep cannot be greater than 4.0 fs without
|
||||||
risking energy drift. Smooth switching of forces between the levels
|
risking energy drift. Smooth switching of forces between the levels
|
||||||
of the rRESPA hierarchy is also necessary to avoid drift, and a 1-2
|
of the rRESPA hierarchy is also necessary to avoid drift, and a 1-2
|
||||||
angstrom "healing distance" (the distance between the outer and inner
|
angstrom "healing distance" (the distance between the outer and inner
|
||||||
@ -230,14 +230,14 @@ simulations:
|
|||||||
run_style respa 4 2 2 2 inner 2 4.5 6.0 middle 3 8.0 10.0 outer 4
|
run_style respa 4 2 2 2 inner 2 4.5 6.0 middle 3 8.0 10.0 outer 4
|
||||||
|
|
||||||
With these settings, users can expect good energy conservation and
|
With these settings, users can expect good energy conservation and
|
||||||
roughly a 2.5 fold speedup over the *verlet* style with a 0.5 fmsec
|
roughly a 2.5 fold speedup over the *verlet* style with a 0.5 fs
|
||||||
timestep.
|
timestep.
|
||||||
|
|
||||||
If SHAKE is used with the *respa* style, time reversibility is lost,
|
If SHAKE is used with the *respa* style, time reversibility is lost,
|
||||||
but substantially longer time steps can be achieved. For biomolecular
|
but substantially longer time steps can be achieved. For biomolecular
|
||||||
simulations using the CHARMM or similar all-atom force field, bonds
|
simulations using the CHARMM or similar all-atom force field, bonds
|
||||||
involving hydrogen atoms exhibit high frequency vibrations and require
|
involving hydrogen atoms exhibit high frequency vibrations and require
|
||||||
a time step on the order of 0.5 fmsec in order to conserve energy.
|
a time step on the order of 0.5 fs in order to conserve energy.
|
||||||
These high frequency modes also limit the outer time step sizes since
|
These high frequency modes also limit the outer time step sizes since
|
||||||
the modes are coupled. It is therefore desirable to use SHAKE with
|
the modes are coupled. It is therefore desirable to use SHAKE with
|
||||||
respa in order to freeze out these high frequency motions and increase
|
respa in order to freeze out these high frequency motions and increase
|
||||||
@ -253,7 +253,7 @@ rRESPA:
|
|||||||
|
|
||||||
With these settings, users can expect good energy conservation and
|
With these settings, users can expect good energy conservation and
|
||||||
roughly a 1.5 fold speedup over the *verlet* style with SHAKE and a
|
roughly a 1.5 fold speedup over the *verlet* style with SHAKE and a
|
||||||
2.0 fmsec timestep.
|
2.0 fs timestep.
|
||||||
|
|
||||||
For non-biomolecular simulations, the *respa* style can be
|
For non-biomolecular simulations, the *respa* style can be
|
||||||
advantageous if there is a clear separation of time scales - fast and
|
advantageous if there is a clear separation of time scales - fast and
|
||||||
|
|||||||
@ -28,7 +28,8 @@ Syntax
|
|||||||
*angle* value = *yes* or *no*
|
*angle* value = *yes* or *no*
|
||||||
*dihedral* value = *yes* or *no*
|
*dihedral* value = *yes* or *no*
|
||||||
|
|
||||||
Examples:
|
Examples
|
||||||
|
""""""""
|
||||||
|
|
||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
|
|||||||
@ -46,22 +46,22 @@ Related commands
|
|||||||
Default
|
Default
|
||||||
"""""""
|
"""""""
|
||||||
|
|
||||||
+--------------------------------+------------+-----------------------+
|
+--------------------------------+---------------+-----------------------+
|
||||||
| choice of :doc:`units <units>` | time units | default timestep size |
|
| choice of :doc:`units <units>` | time units | default timestep size |
|
||||||
+--------------------------------+------------+-----------------------+
|
+--------------------------------+---------------+-----------------------+
|
||||||
| lj | tau | 0.005 tau |
|
| lj | :math:`\tau` | 0.005 :math:`\tau` |
|
||||||
+--------------------------------+------------+-----------------------+
|
+--------------------------------+---------------+-----------------------+
|
||||||
| real | fmsec | 1.0 fmsec |
|
| real | fs | 1.0 fs |
|
||||||
+--------------------------------+------------+-----------------------+
|
+--------------------------------+---------------+-----------------------+
|
||||||
| metal | psec | 0.001 psec |
|
| metal | ps | 0.001 ps |
|
||||||
+--------------------------------+------------+-----------------------+
|
+--------------------------------+---------------+-----------------------+
|
||||||
| si | sec | 1.0e-8 sec (10 nsec) |
|
| si | s | 1.0e-8 s (10 ns) |
|
||||||
+--------------------------------+------------+-----------------------+
|
+--------------------------------+---------------+-----------------------+
|
||||||
| cgs | sec | 1.0e-8 sec (10 nsec) |
|
| cgs | s | 1.0e-8 s (10 ns) |
|
||||||
+--------------------------------+------------+-----------------------+
|
+--------------------------------+---------------+-----------------------+
|
||||||
| electron | fmsec | 0.001 fmsec |
|
| electron | fs | 0.001 fs |
|
||||||
+--------------------------------+------------+-----------------------+
|
+--------------------------------+---------------+-----------------------+
|
||||||
| micro | usec | 2.0 usec |
|
| micro | :math:`\mu`\ s| 2.0 :math:`\mu`\ s |
|
||||||
+--------------------------------+------------+-----------------------+
|
+--------------------------------+---------------+-----------------------+
|
||||||
| nano | nsec | 0.00045 nsec |
|
| nano | ns | 0.00045 ns |
|
||||||
+--------------------------------+------------+-----------------------+
|
+--------------------------------+---------------+-----------------------+
|
||||||
|
|||||||
@ -203,7 +203,7 @@ For style *nano*\ , these are the units:
|
|||||||
The units command also sets the timestep size and neighbor skin
|
The units command also sets the timestep size and neighbor skin
|
||||||
distance to default values for each style:
|
distance to default values for each style:
|
||||||
|
|
||||||
* For style *lj* these are dt = 0.005 tau and skin = 0.3 sigma.
|
* For style *lj* these are dt = 0.005 :math:`\tau` and skin = 0.3 :math:`\sigma`.
|
||||||
* For style *real* these are dt = 1.0 femtoseconds and skin = 2.0 Angstroms.
|
* For style *real* these are dt = 1.0 femtoseconds and skin = 2.0 Angstroms.
|
||||||
* For style *metal* these are dt = 0.001 picoseconds and skin = 2.0 Angstroms.
|
* For style *metal* these are dt = 0.001 picoseconds and skin = 2.0 Angstroms.
|
||||||
* For style *si* these are dt = 1.0e-8 seconds and skin = 0.001 meters.
|
* For style *si* these are dt = 1.0e-8 seconds and skin = 0.001 meters.
|
||||||
|
|||||||
@ -225,8 +225,8 @@ body defined by the fix, as described above.
|
|||||||
The *units* keyword is used by *set* and *ramp*\ . If units = box,
|
The *units* keyword is used by *set* and *ramp*\ . If units = box,
|
||||||
the velocities and coordinates specified in the velocity command are
|
the velocities and coordinates specified in the velocity command are
|
||||||
in the standard units described by the :doc:`units <units>` command
|
in the standard units described by the :doc:`units <units>` command
|
||||||
(e.g. Angstroms/fmsec for real units). If units = lattice, velocities
|
(e.g. Angstroms/fs for real units). If units = lattice, velocities
|
||||||
are in units of lattice spacings per time (e.g. spacings/fmsec) and
|
are in units of lattice spacings per time (e.g. spacings/fs) and
|
||||||
coordinates are in lattice spacings. The :doc:`lattice <lattice>`
|
coordinates are in lattice spacings. The :doc:`lattice <lattice>`
|
||||||
command must have been previously used to define the lattice spacing.
|
command must have been previously used to define the lattice spacing.
|
||||||
|
|
||||||
|
|||||||
@ -136,6 +136,7 @@ atan
|
|||||||
atc
|
atc
|
||||||
AtC
|
AtC
|
||||||
ATC
|
ATC
|
||||||
|
athermal
|
||||||
athomps
|
athomps
|
||||||
atm
|
atm
|
||||||
atomeye
|
atomeye
|
||||||
@ -226,6 +227,7 @@ Bfrac
|
|||||||
bgq
|
bgq
|
||||||
Bh
|
Bh
|
||||||
Bialke
|
Bialke
|
||||||
|
bicrystal
|
||||||
Biersack
|
Biersack
|
||||||
bigbig
|
bigbig
|
||||||
bigint
|
bigint
|
||||||
@ -287,6 +289,7 @@ br
|
|||||||
Branduardi
|
Branduardi
|
||||||
Branicio
|
Branicio
|
||||||
brennan
|
brennan
|
||||||
|
Brien
|
||||||
Brilliantov
|
Brilliantov
|
||||||
Broadwell
|
Broadwell
|
||||||
Broglie
|
Broglie
|
||||||
@ -633,7 +636,6 @@ dipolar
|
|||||||
dir
|
dir
|
||||||
Direc
|
Direc
|
||||||
dirname
|
dirname
|
||||||
disarmmd
|
|
||||||
discoverable
|
discoverable
|
||||||
discretization
|
discretization
|
||||||
discretized
|
discretized
|
||||||
@ -726,6 +728,7 @@ ebook
|
|||||||
ebt
|
ebt
|
||||||
ec
|
ec
|
||||||
Ec
|
Ec
|
||||||
|
eco
|
||||||
ecoul
|
ecoul
|
||||||
ecp
|
ecp
|
||||||
Ecut
|
Ecut
|
||||||
@ -950,7 +953,6 @@ fmackay
|
|||||||
fmag
|
fmag
|
||||||
fmass
|
fmass
|
||||||
fmm
|
fmm
|
||||||
fmsec
|
|
||||||
fmx
|
fmx
|
||||||
fmy
|
fmy
|
||||||
fmz
|
fmz
|
||||||
@ -1834,6 +1836,7 @@ Modine
|
|||||||
mofff
|
mofff
|
||||||
MOFFF
|
MOFFF
|
||||||
Mohd
|
Mohd
|
||||||
|
Mohles
|
||||||
mol
|
mol
|
||||||
Mol
|
Mol
|
||||||
molfile
|
molfile
|
||||||
@ -1999,6 +2002,7 @@ Neumann
|
|||||||
Nevent
|
Nevent
|
||||||
nevery
|
nevery
|
||||||
Nevery
|
Nevery
|
||||||
|
newfile
|
||||||
Newns
|
Newns
|
||||||
newtype
|
newtype
|
||||||
Neyts
|
Neyts
|
||||||
@ -2091,9 +2095,9 @@ Nroff
|
|||||||
nrun
|
nrun
|
||||||
Ns
|
Ns
|
||||||
Nsample
|
Nsample
|
||||||
nsec
|
|
||||||
Nskip
|
Nskip
|
||||||
Nspecies
|
Nspecies
|
||||||
|
ns
|
||||||
nsq
|
nsq
|
||||||
Nstart
|
Nstart
|
||||||
nstats
|
nstats
|
||||||
@ -2177,6 +2181,7 @@ optimizations
|
|||||||
orangered
|
orangered
|
||||||
organometallic
|
organometallic
|
||||||
orientational
|
orientational
|
||||||
|
orientationsFile
|
||||||
orientorder
|
orientorder
|
||||||
Orlikowski
|
Orlikowski
|
||||||
ornl
|
ornl
|
||||||
@ -2366,7 +2371,6 @@ ps
|
|||||||
Ps
|
Ps
|
||||||
pscreen
|
pscreen
|
||||||
pscrozi
|
pscrozi
|
||||||
psec
|
|
||||||
pseudodynamics
|
pseudodynamics
|
||||||
pseudopotential
|
pseudopotential
|
||||||
Pstart
|
Pstart
|
||||||
@ -2471,6 +2475,7 @@ rdc
|
|||||||
rdf
|
rdf
|
||||||
RDideal
|
RDideal
|
||||||
rdx
|
rdx
|
||||||
|
reacter
|
||||||
README
|
README
|
||||||
realtime
|
realtime
|
||||||
reamin
|
reamin
|
||||||
@ -2642,6 +2647,7 @@ Schimansky
|
|||||||
Schiotz
|
Schiotz
|
||||||
Schlitter
|
Schlitter
|
||||||
Schmid
|
Schmid
|
||||||
|
Schratt
|
||||||
Schoen
|
Schoen
|
||||||
Schotte
|
Schotte
|
||||||
Schulten
|
Schulten
|
||||||
@ -3060,6 +3066,7 @@ ul
|
|||||||
ulb
|
ulb
|
||||||
Uleft
|
Uleft
|
||||||
uloop
|
uloop
|
||||||
|
Ulomek
|
||||||
ulsph
|
ulsph
|
||||||
uMech
|
uMech
|
||||||
umin
|
umin
|
||||||
|
|||||||
1
examples/USER/misc/orient_eco/Ni_u3.eam
Symbolic link
1
examples/USER/misc/orient_eco/Ni_u3.eam
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../../potentials/Ni_u3.eam
|
||||||
25615
examples/USER/misc/orient_eco/data.sigma5
Normal file
25615
examples/USER/misc/orient_eco/data.sigma5
Normal file
File diff suppressed because it is too large
Load Diff
20
examples/USER/misc/orient_eco/in.orient_eco
Normal file
20
examples/USER/misc/orient_eco/in.orient_eco
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
|
||||||
|
units metal
|
||||||
|
atom_style atomic
|
||||||
|
read_data data.sigma5
|
||||||
|
|
||||||
|
pair_style eam
|
||||||
|
pair_coeff * * Ni_u3.eam
|
||||||
|
timestep 0.001
|
||||||
|
|
||||||
|
fix integrator all npt temp 750 750 0.1 iso 0 0 0.1
|
||||||
|
fix eco all orient/eco 0.08 0.25 3.6 sigma5.ori
|
||||||
|
|
||||||
|
thermo 100
|
||||||
|
thermo_style custom step temp etotal press vol f_eco
|
||||||
|
velocity all create 750 18527782
|
||||||
|
|
||||||
|
#dump save all custom 100 orient_eco.dump xs ys zs f_eco[1] f_eco[2]
|
||||||
|
#dump_modify save sort id
|
||||||
|
|
||||||
|
run 1000
|
||||||
91
examples/USER/misc/orient_eco/log.2Jun2020.orent_eco.g++.1
Normal file
91
examples/USER/misc/orient_eco/log.2Jun2020.orent_eco.g++.1
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
LAMMPS (2 Jun 2020)
|
||||||
|
using 1 OpenMP thread(s) per MPI task
|
||||||
|
|
||||||
|
units metal
|
||||||
|
atom_style atomic
|
||||||
|
read_data data.sigma5
|
||||||
|
orthogonal box = (-90.27200752837744 -4.427188724235731e-07 0.0) to (90.27200752837744 88.54377448471462 17.5)
|
||||||
|
1 by 1 by 1 MPI processor grid
|
||||||
|
reading atoms ...
|
||||||
|
25600 atoms
|
||||||
|
read_data CPU = 0.020 secs
|
||||||
|
|
||||||
|
pair_style eam
|
||||||
|
pair_coeff * * Ni_u3.eam
|
||||||
|
Reading potential file Ni_u3.eam with DATE: 2007-06-11
|
||||||
|
timestep 0.001
|
||||||
|
|
||||||
|
fix integrator all npt temp 750 750 0.1 iso 0 0 0.1
|
||||||
|
fix eco all orient/eco 0.08 0.25 3.6 sigma5.ori
|
||||||
|
|
||||||
|
thermo 100
|
||||||
|
thermo_style custom step temp etotal press vol f_eco
|
||||||
|
velocity all create 750 18527782
|
||||||
|
|
||||||
|
#dump save all custom 100 orient_eco.dump xs ys zs f_eco[1] f_eco[2]
|
||||||
|
#dump_modify save sort id
|
||||||
|
|
||||||
|
run 1000
|
||||||
|
fix orient/eco: cutoff=3.6 norm_fac=30.012843706295556 neighbors=18
|
||||||
|
Neighbor list info ...
|
||||||
|
update every 1 steps, delay 10 steps, check yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 6.8
|
||||||
|
ghost atom cutoff = 6.8
|
||||||
|
binsize = 3.4, bins = 54 27 6
|
||||||
|
2 neighbor lists, perpetual/occasional/extra = 2 0 0
|
||||||
|
(1) pair eam, perpetual, half/full from (2)
|
||||||
|
attributes: half, newton on
|
||||||
|
pair build: halffull/newton
|
||||||
|
stencil: none
|
||||||
|
bin: none
|
||||||
|
(2) fix orient/eco, perpetual
|
||||||
|
attributes: full, newton on
|
||||||
|
pair build: full/bin/atomonly
|
||||||
|
stencil: full/bin/3d
|
||||||
|
bin: standard
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 42.15 | 42.15 | 42.15 Mbytes
|
||||||
|
Step Temp TotEng Press Volume f_eco
|
||||||
|
0 750 -111027.95 15148.458 279755.85 8.7507522e-10
|
||||||
|
100 422.2475 -110928.85 214.27204 285332.91 -1.0089186
|
||||||
|
200 388.79514 -110721.02 -481.9574 286443.13 -0.78446905
|
||||||
|
300 441.87285 -110478.56 -174.88288 286640.75 -1.1348357
|
||||||
|
400 486.71094 -110211.6 65.075638 287023.56 -1.495318
|
||||||
|
500 531.12815 -109923.33 97.309245 287552.73 -2.9498072
|
||||||
|
600 569.82126 -109622.61 -85.73157 288229.35 -4.2855812
|
||||||
|
700 615.84724 -109317.16 -52.508824 288799.86 -6.5214427
|
||||||
|
800 666.09015 -109018.62 38.120383 289305.37 -8.4745641
|
||||||
|
900 705.03939 -108738.66 263.39673 289867.87 -12.4514
|
||||||
|
1000 735.59866 -108500.52 242.46405 290353.65 -15.427653
|
||||||
|
Loop time of 109.966 on 1 procs for 1000 steps with 25600 atoms
|
||||||
|
|
||||||
|
Performance: 0.786 ns/day, 30.546 hours/ns, 9.094 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 | 27.002 | 27.002 | 27.002 | 0.0 | 24.55
|
||||||
|
Neigh | 0.83228 | 0.83228 | 0.83228 | 0.0 | 0.76
|
||||||
|
Comm | 0.12623 | 0.12623 | 0.12623 | 0.0 | 0.11
|
||||||
|
Output | 0.00080323 | 0.00080323 | 0.00080323 | 0.0 | 0.00
|
||||||
|
Modify | 81.917 | 81.917 | 81.917 | 0.0 | 74.49
|
||||||
|
Other | | 0.08839 | | | 0.08
|
||||||
|
|
||||||
|
Nlocal: 25600 ave 25600 max 25600 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Nghost: 28259 ave 28259 max 28259 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Neighs: 1.59326e+06 ave 1.59326e+06 max 1.59326e+06 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
FullNghs: 3.18651e+06 ave 3.18651e+06 max 3.18651e+06 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
|
||||||
|
Total # of neighbors = 3186510
|
||||||
|
Ave neighs/atom = 124.473
|
||||||
|
Neighbor list builds = 10
|
||||||
|
Dangerous builds = 0
|
||||||
|
|
||||||
|
Please see the log.cite file for references relevant to this simulation
|
||||||
|
|
||||||
|
Total wall time: 0:01:50
|
||||||
91
examples/USER/misc/orient_eco/log.2Jun2020.orent_eco.g++.4
Normal file
91
examples/USER/misc/orient_eco/log.2Jun2020.orent_eco.g++.4
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
LAMMPS (2 Jun 2020)
|
||||||
|
using 1 OpenMP thread(s) per MPI task
|
||||||
|
|
||||||
|
units metal
|
||||||
|
atom_style atomic
|
||||||
|
read_data data.sigma5
|
||||||
|
orthogonal box = (-90.27200752837744 -4.427188724235731e-07 0.0) to (90.27200752837744 88.54377448471462 17.5)
|
||||||
|
4 by 1 by 1 MPI processor grid
|
||||||
|
reading atoms ...
|
||||||
|
25600 atoms
|
||||||
|
read_data CPU = 0.025 secs
|
||||||
|
|
||||||
|
pair_style eam
|
||||||
|
pair_coeff * * Ni_u3.eam
|
||||||
|
Reading potential file Ni_u3.eam with DATE: 2007-06-11
|
||||||
|
timestep 0.001
|
||||||
|
|
||||||
|
fix integrator all npt temp 750 750 0.1 iso 0 0 0.1
|
||||||
|
fix eco all orient/eco 0.08 0.25 3.6 sigma5.ori
|
||||||
|
|
||||||
|
thermo 100
|
||||||
|
thermo_style custom step temp etotal press vol f_eco
|
||||||
|
velocity all create 750 18527782
|
||||||
|
|
||||||
|
#dump save all custom 100 orient_eco.dump xs ys zs f_eco[1] f_eco[2]
|
||||||
|
#dump_modify save sort id
|
||||||
|
|
||||||
|
run 1000
|
||||||
|
fix orient/eco: cutoff=3.6 norm_fac=30.012843706295556 neighbors=18
|
||||||
|
Neighbor list info ...
|
||||||
|
update every 1 steps, delay 10 steps, check yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 6.8
|
||||||
|
ghost atom cutoff = 6.8
|
||||||
|
binsize = 3.4, bins = 54 27 6
|
||||||
|
2 neighbor lists, perpetual/occasional/extra = 2 0 0
|
||||||
|
(1) pair eam, perpetual, half/full from (2)
|
||||||
|
attributes: half, newton on
|
||||||
|
pair build: halffull/newton
|
||||||
|
stencil: none
|
||||||
|
bin: none
|
||||||
|
(2) fix orient/eco, perpetual
|
||||||
|
attributes: full, newton on
|
||||||
|
pair build: full/bin/atomonly
|
||||||
|
stencil: full/bin/3d
|
||||||
|
bin: standard
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 11.69 | 11.7 | 11.72 Mbytes
|
||||||
|
Step Temp TotEng Press Volume f_eco
|
||||||
|
0 750 -111027.95 15148.458 279755.85 8.749339e-10
|
||||||
|
100 422.2475 -110928.85 214.27204 285332.91 -1.0089186
|
||||||
|
200 388.79514 -110721.02 -481.9574 286443.13 -0.78446905
|
||||||
|
300 441.87285 -110478.56 -174.88288 286640.75 -1.1348357
|
||||||
|
400 486.71094 -110211.6 65.075638 287023.56 -1.495318
|
||||||
|
500 531.12815 -109923.33 97.309245 287552.73 -2.9498072
|
||||||
|
600 569.82126 -109622.61 -85.73157 288229.35 -4.2855812
|
||||||
|
700 615.84724 -109317.16 -52.508824 288799.86 -6.5214427
|
||||||
|
800 666.09015 -109018.62 38.120383 289305.37 -8.4745641
|
||||||
|
900 705.03939 -108738.66 263.39673 289867.87 -12.4514
|
||||||
|
1000 735.59866 -108500.52 242.46405 290353.65 -15.427653
|
||||||
|
Loop time of 29.6634 on 4 procs for 1000 steps with 25600 atoms
|
||||||
|
|
||||||
|
Performance: 2.913 ns/day, 8.240 hours/ns, 33.712 timesteps/s
|
||||||
|
98.6% 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.0794 | 7.1053 | 7.1325 | 0.7 | 23.95
|
||||||
|
Neigh | 0.20947 | 0.21088 | 0.21231 | 0.2 | 0.71
|
||||||
|
Comm | 0.15708 | 0.18471 | 0.22338 | 6.7 | 0.62
|
||||||
|
Output | 0.00032616 | 0.00064683 | 0.0015936 | 0.0 | 0.00
|
||||||
|
Modify | 22.105 | 22.118 | 22.139 | 0.3 | 74.56
|
||||||
|
Other | | 0.0437 | | | 0.15
|
||||||
|
|
||||||
|
Nlocal: 6400 ave 6421 max 6384 min
|
||||||
|
Histogram: 1 1 0 0 0 1 0 0 0 1
|
||||||
|
Nghost: 9872.5 ave 9892 max 9855 min
|
||||||
|
Histogram: 1 0 0 1 0 1 0 0 0 1
|
||||||
|
Neighs: 398314 ave 400737 max 395743 min
|
||||||
|
Histogram: 1 0 0 1 0 0 0 1 0 1
|
||||||
|
FullNghs: 796628 ave 801194 max 792566 min
|
||||||
|
Histogram: 1 0 1 0 0 0 1 0 0 1
|
||||||
|
|
||||||
|
Total # of neighbors = 3186510
|
||||||
|
Ave neighs/atom = 124.473
|
||||||
|
Neighbor list builds = 10
|
||||||
|
Dangerous builds = 0
|
||||||
|
|
||||||
|
Please see the log.cite file for references relevant to this simulation
|
||||||
|
|
||||||
|
Total wall time: 0:00:29
|
||||||
6
examples/USER/misc/orient_eco/sigma5.ori
Normal file
6
examples/USER/misc/orient_eco/sigma5.ori
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
1.671685 0.557228 1.76212
|
||||||
|
0.557228 -1.671685 1.76212
|
||||||
|
2.228913 -1.114456 0.000000
|
||||||
|
0.557228 1.671685 1.76212
|
||||||
|
1.671685 -0.557228 1.76212
|
||||||
|
2.228913 1.114456 0.000000
|
||||||
1251
examples/hyper/log.2Jun2020.hyper.global.g++.4
Normal file
1251
examples/hyper/log.2Jun2020.hyper.global.g++.4
Normal file
File diff suppressed because it is too large
Load Diff
647
examples/hyper/log.2Jun2020.hyper.local.g++.4
Normal file
647
examples/hyper/log.2Jun2020.hyper.local.g++.4
Normal file
@ -0,0 +1,647 @@
|
|||||||
|
LAMMPS (2 Jun 2020)
|
||||||
|
using 1 OpenMP thread(s) per MPI task
|
||||||
|
# 3d EAM surface for local HD
|
||||||
|
|
||||||
|
# nearest neighbor distance = a * sqrt(2)/2 = 2.77 Angs for Pt with a = 3.92
|
||||||
|
# hop event on (100) surface is same distance
|
||||||
|
# exchange event is 2 atoms moving same distance
|
||||||
|
|
||||||
|
variable Tequil index 400.0
|
||||||
|
variable Vmax index 0.4
|
||||||
|
variable qfactor index 0.3
|
||||||
|
variable cutbond index 3.2
|
||||||
|
variable Dcut index 10.0
|
||||||
|
variable cutevent index 1.1
|
||||||
|
variable alpha index 200.0
|
||||||
|
variable boost index 4000.0
|
||||||
|
variable ghostcut index 12.0
|
||||||
|
variable steps index 2000
|
||||||
|
variable nevent index 100
|
||||||
|
variable nx index 2
|
||||||
|
variable ny index 2
|
||||||
|
variable zoom index 1.8
|
||||||
|
variable seed index 3875984
|
||||||
|
variable tol index 1.0e-15
|
||||||
|
variable add index 50
|
||||||
|
|
||||||
|
units metal
|
||||||
|
atom_style atomic
|
||||||
|
atom_modify map array
|
||||||
|
boundary p p p
|
||||||
|
comm_modify cutoff ${ghostcut}
|
||||||
|
comm_modify cutoff 12.0
|
||||||
|
|
||||||
|
lattice fcc 3.92
|
||||||
|
Lattice spacing in x,y,z = 3.92 3.92 3.92
|
||||||
|
region box block 0 6 0 6 0 4
|
||||||
|
create_box 2 box
|
||||||
|
Created orthogonal box = (0.0 0.0 0.0) to (23.52 23.52 15.68)
|
||||||
|
2 by 2 by 1 MPI processor grid
|
||||||
|
create_atoms 1 box
|
||||||
|
Created 576 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
|
||||||
|
mass * 1.0
|
||||||
|
|
||||||
|
change_box all z final -0.1 5.0 boundary p p f
|
||||||
|
orthogonal box = (0.0 0.0 -0.392) to (23.52 23.52 19.6)
|
||||||
|
WARNING: Reset image flags for non-periodic boundary (src/domain.cpp:1909)
|
||||||
|
|
||||||
|
# replicate in xy
|
||||||
|
|
||||||
|
replicate ${nx} ${ny} 1
|
||||||
|
replicate 2 ${ny} 1
|
||||||
|
replicate 2 2 1
|
||||||
|
orthogonal box = (0.0 0.0 -0.392) to (47.04 47.04 19.6)
|
||||||
|
2 by 2 by 1 MPI processor grid
|
||||||
|
2304 atoms
|
||||||
|
replicate CPU = 0.000324488 secs
|
||||||
|
|
||||||
|
# add adatoms
|
||||||
|
|
||||||
|
include adatoms.list.${add}
|
||||||
|
include adatoms.list.50
|
||||||
|
create_atoms 1 single 5 9 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 4.5 7.5 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 6 6 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 5 6 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 4.5 1.5 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 6.5 7.5 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 10.5 5.5 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 2.5 1.5 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 3.5 4.5 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 0 10 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 11 10 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 6.5 10.5 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 3.5 5.5 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 7.5 10.5 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 1.5 1.5 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 1.5 6.5 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 7 2 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 4 0 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 9 0 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 4 9 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 10 7 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 4 4 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 9.5 2.5 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 1 5 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 7 10 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 0 4 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 1 10 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 7.5 6.5 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 4 10 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 6.5 3.5 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 3 6 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 8.5 4.5 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 6.5 0.5 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 1 4 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 8.5 11.5 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 3 9 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 2 3 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 6.5 8.5 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 1 0 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 0.5 10.5 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 4 11 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 3 5 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 0 1 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 2 11 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 2 0 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 7.5 11.5 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 1 7 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 3.5 10.5 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 0 2 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
create_atoms 1 single 8 4 4
|
||||||
|
Created 1 atoms
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
|
||||||
|
# define frozen substrate and mobile atoms
|
||||||
|
|
||||||
|
region base block INF INF INF INF 0 1.8
|
||||||
|
set region base type 2
|
||||||
|
1152 settings made for typegroup base type 2
|
||||||
|
1152 atoms in group base
|
||||||
|
group mobile type 1
|
||||||
|
1202 atoms in group mobile
|
||||||
|
|
||||||
|
# pair style
|
||||||
|
|
||||||
|
pair_style eam/alloy
|
||||||
|
pair_coeff * * ptvoterlammps.eam Pt Pt
|
||||||
|
|
||||||
|
neighbor 0.5 bin
|
||||||
|
neigh_modify every 1 delay 5 check yes
|
||||||
|
|
||||||
|
fix 1 mobile nve
|
||||||
|
fix 2 mobile langevin ${Tequil} ${Tequil} 1.0 ${seed} zero yes
|
||||||
|
fix 2 mobile langevin 400.0 ${Tequil} 1.0 ${seed} zero yes
|
||||||
|
fix 2 mobile langevin 400.0 400.0 1.0 ${seed} zero yes
|
||||||
|
fix 2 mobile langevin 400.0 400.0 1.0 3875984 zero yes
|
||||||
|
|
||||||
|
timestep 0.005
|
||||||
|
|
||||||
|
compute tmobile mobile temp
|
||||||
|
|
||||||
|
thermo 100
|
||||||
|
thermo_modify temp tmobile
|
||||||
|
WARNING: Temperature for thermo pressure is not for group all (src/thermo.cpp:486)
|
||||||
|
|
||||||
|
# thermal equilibration
|
||||||
|
|
||||||
|
run 1000
|
||||||
|
Neighbor list info ...
|
||||||
|
update every 1 steps, delay 5 steps, check yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 6.07583
|
||||||
|
ghost atom cutoff = 12
|
||||||
|
binsize = 3.03792, bins = 16 16 7
|
||||||
|
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||||
|
(1) pair eam/alloy, perpetual
|
||||||
|
attributes: half, newton on
|
||||||
|
pair build: half/bin/atomonly/newton
|
||||||
|
stencil: half/bin/3d/newton
|
||||||
|
bin: standard
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 3.443 | 3.443 | 3.443 Mbytes
|
||||||
|
Step Temp E_pair E_mol TotEng Press
|
||||||
|
0 0 -13067.188 0 -13067.188 -53763.139
|
||||||
|
100 216.49187 -13065.694 0 -13032.085 -24077.115
|
||||||
|
200 285.11905 -13057.047 0 -13012.785 -38815.844
|
||||||
|
300 321.67264 -13048.005 0 -12998.068 -29296.124
|
||||||
|
400 352.90893 -13045.707 0 -12990.92 -34630.884
|
||||||
|
500 371.9393 -13041.234 0 -12983.494 -28913.827
|
||||||
|
600 379.08135 -13040.06 0 -12981.211 -33399.8
|
||||||
|
700 388.73836 -13039.691 0 -12979.343 -29446.954
|
||||||
|
800 402.13628 -13040.606 0 -12978.178 -33026.861
|
||||||
|
900 389.43806 -13036.884 0 -12976.427 -30328.658
|
||||||
|
1000 388.66198 -13037.479 0 -12977.142 -30859.145
|
||||||
|
Loop time of 0.572404 on 4 procs for 1000 steps with 2354 atoms
|
||||||
|
|
||||||
|
Performance: 754.712 ns/day, 0.032 hours/ns, 1747.018 timesteps/s
|
||||||
|
96.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 | 0.45189 | 0.4594 | 0.46833 | 0.9 | 80.26
|
||||||
|
Neigh | 0.039092 | 0.039772 | 0.040386 | 0.3 | 6.95
|
||||||
|
Comm | 0.040249 | 0.051709 | 0.060548 | 3.4 | 9.03
|
||||||
|
Output | 0.00014281 | 0.0002625 | 0.00061965 | 0.0 | 0.05
|
||||||
|
Modify | 0.017148 | 0.017244 | 0.017364 | 0.1 | 3.01
|
||||||
|
Other | | 0.004017 | | | 0.70
|
||||||
|
|
||||||
|
Nlocal: 588.5 ave 592 max 581 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 1 0 2
|
||||||
|
Nghost: 1964 ave 1973 max 1959 min
|
||||||
|
Histogram: 2 0 0 1 0 0 0 0 0 1
|
||||||
|
Neighs: 14148.8 ave 14283 max 13931 min
|
||||||
|
Histogram: 1 0 0 0 0 0 1 1 0 1
|
||||||
|
|
||||||
|
Total # of neighbors = 56595
|
||||||
|
Ave neighs/atom = 24.0421
|
||||||
|
Neighbor list builds = 91
|
||||||
|
Dangerous builds = 0
|
||||||
|
reset_timestep 0
|
||||||
|
|
||||||
|
# pin base so will not move during quenches
|
||||||
|
|
||||||
|
fix freeze base setforce 0.0 0.0 0.0
|
||||||
|
|
||||||
|
# event detection
|
||||||
|
|
||||||
|
compute event all event/displace ${cutevent}
|
||||||
|
compute event all event/displace 1.1
|
||||||
|
|
||||||
|
# hyper/local
|
||||||
|
|
||||||
|
fix HL mobile hyper/local ${cutbond} ${qfactor} ${Vmax} ${Tequil} ${Dcut} ${alpha} ${boost}
|
||||||
|
fix HL mobile hyper/local 3.2 ${qfactor} ${Vmax} ${Tequil} ${Dcut} ${alpha} ${boost}
|
||||||
|
fix HL mobile hyper/local 3.2 0.3 ${Vmax} ${Tequil} ${Dcut} ${alpha} ${boost}
|
||||||
|
fix HL mobile hyper/local 3.2 0.3 0.4 ${Tequil} ${Dcut} ${alpha} ${boost}
|
||||||
|
fix HL mobile hyper/local 3.2 0.3 0.4 400.0 ${Dcut} ${alpha} ${boost}
|
||||||
|
fix HL mobile hyper/local 3.2 0.3 0.4 400.0 10.0 ${alpha} ${boost}
|
||||||
|
fix HL mobile hyper/local 3.2 0.3 0.4 400.0 10.0 200.0 ${boost}
|
||||||
|
fix HL mobile hyper/local 3.2 0.3 0.4 400.0 10.0 200.0 4000.0
|
||||||
|
|
||||||
|
# thermo output
|
||||||
|
|
||||||
|
thermo_style custom step temp pe f_HL f_HL[*]
|
||||||
|
WARNING: New thermo_style command, previous thermo_modify settings will be lost (src/output.cpp:709)
|
||||||
|
|
||||||
|
thermo_modify lost ignore
|
||||||
|
thermo_modify temp tmobile
|
||||||
|
WARNING: Temperature for thermo pressure is not for group all (src/thermo.cpp:486)
|
||||||
|
|
||||||
|
thermo ${nevent}
|
||||||
|
thermo 100
|
||||||
|
|
||||||
|
# dump
|
||||||
|
|
||||||
|
region substrate block INF INF INF INF 1.8 3.8
|
||||||
|
region adatoms block INF INF INF INF 3.8 INF
|
||||||
|
variable acolor atom rmask(base)+2*rmask(substrate)+3*rmask(adatoms)
|
||||||
|
|
||||||
|
dump 1 all image 10000000 local.*.jpg v_acolor type size 1024 1024 zoom ${zoom} adiam 2.5 view 0.0 0.0 up 0 1 0 axes yes 0.9 0.01
|
||||||
|
dump 1 all image 10000000 local.*.jpg v_acolor type size 1024 1024 zoom 1.8 adiam 2.5 view 0.0 0.0 up 0 1 0 axes yes 0.9 0.01
|
||||||
|
dump_modify 1 pad 6 amap 1 3 sa 1 3 blue red green
|
||||||
|
|
||||||
|
# run
|
||||||
|
|
||||||
|
hyper ${steps} ${nevent} HL event min ${tol} ${tol} 1000 1000 dump 1
|
||||||
|
hyper 2000 ${nevent} HL event min ${tol} ${tol} 1000 1000 dump 1
|
||||||
|
hyper 2000 100 HL event min ${tol} ${tol} 1000 1000 dump 1
|
||||||
|
hyper 2000 100 HL event min 1.0e-15 ${tol} 1000 1000 dump 1
|
||||||
|
hyper 2000 100 HL event min 1.0e-15 1.0e-15 1000 1000 dump 1
|
||||||
|
WARNING: Resetting reneighboring criteria during hyper (src/REPLICA/hyper.cpp:131)
|
||||||
|
Neighbor list info ...
|
||||||
|
update every 1 steps, delay 0 steps, check yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 6.07583
|
||||||
|
ghost atom cutoff = 12
|
||||||
|
binsize = 3.03792, bins = 16 16 7
|
||||||
|
3 neighbor lists, perpetual/occasional/extra = 1 2 0
|
||||||
|
(1) pair eam/alloy, perpetual
|
||||||
|
attributes: half, newton on
|
||||||
|
pair build: half/bin/atomonly/newton
|
||||||
|
stencil: half/bin/3d/newton
|
||||||
|
bin: standard
|
||||||
|
(2) fix hyper/local, occasional
|
||||||
|
attributes: full, newton on, cut 10
|
||||||
|
pair build: full/bin/atomonly
|
||||||
|
stencil: full/bin/3d
|
||||||
|
bin: standard
|
||||||
|
(3) fix hyper/local, occasional, copy from (1)
|
||||||
|
attributes: half, newton on
|
||||||
|
pair build: copy
|
||||||
|
stencil: none
|
||||||
|
bin: none
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 6.786 | 6.786 | 6.786 Mbytes
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
0 388.66198 -13037.479 0 1 0 0 0.4 1 0 0 0 0 0 0 0 0 0 0 1e+20 0 0 0 0 0 0 0 0 0 0 1 0
|
||||||
|
68 388.66198 -13101.057 0 1 0 0 0.4 1 0 0 0 0 0 0 0 0 0 0 1e+20 0 0 0 0 0 0 1360 0 0 0 1 0
|
||||||
|
Loop time of 0.078882 on 4 procs for 68 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
0 388.66198 -13037.479 2.1560986 0 7 0.19075505 0.4 0 0 0 5.9276206 1380.4406 0 0 0 0 3.2725891 0 1e+20 0 0 0 0 0 0 0 0 0 0 10345.213 0
|
||||||
|
100 388.08547 -13035.803 1.9458797 5579.52 7 0.22444002 0.4 0.99435481 0.98307948 1.0037683 5.9276206 1380.4406 7612.921 5.23 0 0 3.4801431 0.99683836 0.98307948 1.0037683 0 0 0 0 0 2000 0 0 0 4811.1645 0
|
||||||
|
Loop time of 0.0768972 on 4 procs for 100 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
100 388.08547 -13035.803 1.9458797 5579.52 7 0.22444002 0.4 0.99435481 0.98307948 1.0037683 5.9276206 1380.4406 7612.921 5.23 0 0 3.4801431 0.99683836 0.98307948 1.0037683 0 0 0 0 0 2000 0 0 0 4811.1645 0
|
||||||
|
171 388.08547 -13101.057 1.9458797 5579.52 7 0.22444002 0.4 0.99435481 0.98307948 1.0037683 5.9276206 1380.4406 7612.921 3.0584795 0 0 3.4801431 0.99683836 0.98307948 1.0037683 0 0 0 0 0 3420 0 0 0 4811.1645 0
|
||||||
|
Loop time of 0.0822812 on 4 procs for 71 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
100 388.08547 -13035.803 1.9458309 5579.52 7 0.22444002 0.4 0.99435481 0.98307948 1.0037683 5.9276206 1380.4406 7612.921 5.23 0 0 3.4801431 0.99683836 0.98307948 1.0037683 0 0 0 0 0 2000 0 0 0 4806.677 0
|
||||||
|
200 401.00579 -13036.475 1.7413518 5055.0046 7 0.31164106 0.4 0.99292126 0.97454567 1.0099107 5.9276206 1380.4406 6265.1974 5.8 0.026724138 0 3.7115994 0.99518634 0.97454567 1.0099107 0 0 0 0 0 4000 0 0 0 5975.1486 1
|
||||||
|
Loop time of 0.0801389 on 4 procs for 100 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
200 401.00579 -13036.475 1.7413518 5055.0046 7 0.31164106 0.4 0.99292126 0.97454567 1.0099107 5.9276206 1380.4406 6265.1974 5.8 0.026724138 0 3.7115994 0.99518634 0.97454567 1.0099107 0 0 0 0 0 4000 0 0 0 5975.1486 1
|
||||||
|
270 401.00579 -13101.057 1.7413518 5055.0046 7 0.31164106 0.4 0.99292126 0.97454567 1.0099107 5.9276206 1380.4406 6265.1974 4.2962963 0.026724138 0 3.7115994 0.99518634 0.97454567 1.0099107 0 0 0 0 0 5400 0 0 0 5975.1486 1
|
||||||
|
Loop time of 0.0823423 on 4 procs for 70 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
200 401.00579 -13036.475 1.7412451 5055.0046 7 0.31164106 0.4 0.99292126 0.97454567 1.0099107 5.9276206 1380.4406 6265.1974 5.8 0.026724138 0 3.7115994 0.99518634 0.97454567 1.0099107 0 0 0 0 0 4000 0 0 0 5960.9703 1
|
||||||
|
300 393.06665 -13036.447 1.2104123 4309.6701 6 0.25677049 0.4 0.99077715 0.96163085 1.0121227 5.9276206 1380.4406 5967.5417 5.82 0.03722795 0.0011454754 3.7958861 0.99407566 0.96163085 1.0121227 0 0 0 0 0 6000 0 0 0 2438.7867 0
|
||||||
|
Loop time of 0.07828 on 4 procs for 100 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
300 393.06665 -13036.447 1.2104123 4309.6701 6 0.25677049 0.4 0.99077715 0.96163085 1.0121227 5.9276206 1380.4406 5967.5417 5.82 0.03722795 0.0011454754 3.7958861 0.99407566 0.96163085 1.0121227 0 0 0 0 0 6000 0 0 0 2438.7867 0
|
||||||
|
371 393.06665 -13101.057 1.2104123 4309.6701 6 0.25677049 0.4 0.99077715 0.96163085 1.0121227 5.9276206 1380.4406 5967.5417 4.7061995 0.03722795 0.0011454754 3.7958861 0.99407566 0.96163085 1.0121227 0 0 0 0 0 7420 0 0 0 2438.7867 0
|
||||||
|
Loop time of 0.0849175 on 4 procs for 71 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
300 393.06665 -13036.447 1.210401 4309.6701 6 0.25677049 0.4 0.99077715 0.96163085 1.0121227 5.9276206 1380.4406 5967.5417 5.82 0.03722795 0.0011454754 3.7958861 0.99407566 0.96163085 1.0121227 0 0 0 0 0 6000 0 0 0 2432.9129 0
|
||||||
|
400 395.31214 -13036.548 0.97543536 3697.18 5 0.29627573 0.4 0.99121527 0.95719757 1.0171656 5.9276206 1380.4406 5405.5572 5.8525 0.064502349 0.00085433575 3.8763827 0.99330778 0.95719757 1.0171656 0 0 0 0 0 8000 0 0 0 1494.721 0
|
||||||
|
Loop time of 0.0789399 on 4 procs for 100 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
400 395.31214 -13036.548 0.97543536 3697.18 5 0.29627573 0.4 0.99121527 0.95719757 1.0171656 5.9276206 1380.4406 5405.5572 5.8525 0.064502349 0.00085433575 3.8763827 0.99330778 0.95719757 1.0171656 0 0 0 0 0 8000 0 0 0 1494.721 0
|
||||||
|
472 395.31214 -13101.057 0.97543536 3697.18 5 0.29627573 0.4 0.99121527 0.95719757 1.0171656 5.9276206 1380.4406 5405.5572 4.9597458 0.064502349 0.00085433575 3.8763827 0.99330778 0.95719757 1.0171656 0 0 0 0 0 9440 0 0 0 1494.721 0
|
||||||
|
Loop time of 0.0826263 on 4 procs for 72 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
400 395.31214 -13036.548 0.97546459 3697.18 5 0.29627573 0.4 0.99121527 0.95719757 1.0171656 5.9276206 1380.4406 5405.5572 5.8525 0.064502349 0.00085433575 3.8763827 0.99330778 0.95719757 1.0171656 0 0 0 0 0 8000 0 0 0 1495.2683 0
|
||||||
|
500 407.51943 -13034.684 1.5129292 3762.6056 7 0.32103986 0.4 0.99260954 0.95025478 1.023175 5.9276206 1380.4406 4945.9788 5.798 0.092100724 0.00068989307 3.8763827 0.99301979 0.95024238 1.023175 0 0 0 0 0 10000 0 0 0 2846.6451 1
|
||||||
|
Loop time of 0.0785343 on 4 procs for 100 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
500 407.51943 -13034.684 1.5129292 3762.6056 7 0.32103986 0.4 0.99260954 0.95025478 1.023175 5.9276206 1380.4406 4945.9788 5.798 0.092100724 0.00068989307 3.8763827 0.99301979 0.95024238 1.023175 0 0 0 0 0 10000 0 0 0 2846.6451 1
|
||||||
|
570 407.51943 -13101.057 1.5129292 3762.6056 7 0.32103986 0.4 0.99260954 0.95025478 1.023175 5.9276206 1380.4406 4945.9788 5.0859649 0.092100724 0.00068989307 3.8763827 0.99301979 0.95024238 1.023175 0 0 0 0 0 11400 0 0 0 2846.6451 1
|
||||||
|
Loop time of 0.0831875 on 4 procs for 70 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
500 407.51943 -13034.684 1.5129263 3762.6056 7 0.32103986 0.4 0.99260954 0.95025478 1.023175 5.9276206 1380.4406 4945.9788 5.798 0.092100724 0.00068989307 3.8763827 0.99301979 0.95024238 1.023175 0 0 0 0 0 10000 0 0 0 2845.3486 1
|
||||||
|
600 403.68879 -13034.437 1.6119602 3538.1789 8 0.37263827 0.4 0.99175914 0.94814388 1.0294169 5.9276206 1380.4406 4879.0252 5.805 0.091587712 0.0054550675 3.8763827 0.99287249 0.94770585 1.0294169 0 0 0 0 0 12000 0 0 0 4550.0103 1
|
||||||
|
Loop time of 0.0778956 on 4 procs for 100 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
600 403.68879 -13034.437 1.6119602 3538.1789 8 0.37263827 0.4 0.99175914 0.94814388 1.0294169 5.9276206 1380.4406 4879.0252 5.805 0.091587712 0.0054550675 3.8763827 0.99287249 0.94770585 1.0294169 0 0 0 0 0 12000 0 0 0 4550.0103 1
|
||||||
|
673 403.68879 -13101.057 1.6119602 3538.1789 8 0.37263827 0.4 0.99175914 0.94814388 1.0294169 5.9276206 1380.4406 4879.0252 5.1753343 0.091587712 0.0054550675 3.8763827 0.99287249 0.94770585 1.0294169 0 0 0 0 0 13460 0 0 0 4550.0103 1
|
||||||
|
Loop time of 0.0866084 on 4 procs for 73 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
600 403.68879 -13034.437 1.6118577 3538.1789 8 0.37263827 0.4 0.99175914 0.94814388 1.0294169 5.9276206 1380.4406 4879.0252 5.805 0.091587712 0.0054550675 3.8763827 0.99287249 0.94770585 1.0294169 0 0 0 0 0 12000 0 0 0 4540.524 1
|
||||||
|
700 402.40951 -13034.611 0.81457022 3996.0376 5 0.31795282 0.4 0.99307568 0.9469785 1.0356629 5.9276206 1380.4406 4633.0803 5.7657143 0.10332012 0.0047076313 3.8763827 0.9927955 0.94558506 1.0356629 0 0 0 0 0 14000 0 0 0 2433.3681 2
|
||||||
|
Loop time of 0.0783963 on 4 procs for 100 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
700 402.40951 -13034.611 0.81457022 3996.0376 5 0.31795282 0.4 0.99307568 0.9469785 1.0356629 5.9276206 1380.4406 4633.0803 5.7657143 0.10332012 0.0047076313 3.8763827 0.9927955 0.94558506 1.0356629 0 0 0 0 0 14000 0 0 0 2433.3681 2
|
||||||
|
773 402.40951 -13101.057 0.81457022 3996.0376 5 0.31795282 0.4 0.99307568 0.9469785 1.0356629 5.9276206 1380.4406 4633.0803 5.221216 0.10332012 0.0047076313 3.8763827 0.9927955 0.94558506 1.0356629 0 0 0 0 0 15460 0 0 0 2433.3681 2
|
||||||
|
Loop time of 0.0879632 on 4 procs for 73 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
700 402.40951 -13034.611 0.8145522 3996.0376 5 0.31795282 0.4 0.99307568 0.9469785 1.0356629 5.9276206 1380.4406 4633.0803 5.7657143 0.10332012 0.0047076313 3.8763827 0.9927955 0.94558506 1.0356629 0 0 0 0 0 14000 0 0 0 2429.4864 2
|
||||||
|
800 404.0219 -13035.35 2.0280594 2522.768 9 0.29614163 0.4 0.99235515 0.94241897 1.041911 5.9276206 1380.4406 4611.5881 5.75 0.1123913 0.0041304348 3.8763827 0.99277876 0.94229366 1.041911 0 0 0 0 0 16000 0 0 0 3341.5414 0
|
||||||
|
Loop time of 0.0830372 on 4 procs for 100 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
800 404.0219 -13035.35 2.0280594 2522.768 9 0.29614163 0.4 0.99235515 0.94241897 1.041911 5.9276206 1380.4406 4611.5881 5.75 0.1123913 0.0041304348 3.8763827 0.99277876 0.94229366 1.041911 0 0 0 0 0 16000 0 0 0 3341.5414 0
|
||||||
|
875 404.0219 -13101.057 2.0280594 2522.768 9 0.29614163 0.4 0.99235515 0.94241897 1.041911 5.9276206 1380.4406 4611.5881 5.2571429 0.1123913 0.0041304348 3.8763827 0.99277876 0.94229366 1.041911 0 0 0 0 0 17500 0 0 0 3341.5414 0
|
||||||
|
Loop time of 0.106053 on 4 procs for 75 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
800 404.0219 -13035.35 2.0280349 2522.768 9 0.29614163 0.4 0.99235515 0.94241897 1.041911 5.9276206 1380.4406 4611.5881 5.75 0.1123913 0.0041304348 3.8763827 0.99277876 0.94229366 1.041911 0 0 0 0 0 16000 0 0 0 3339.579 0
|
||||||
|
900 399.91074 -13034.973 0.95275442 3161.8387 5 0.36638548 0.4 0.99295506 0.93909912 1.0481595 5.9276206 1380.4406 4500.9735 5.7177778 0.12436844 0.0038865138 3.8763827 0.99275079 0.93842885 1.0481595 0 0 0 0 0 18000 0 0 0 1628.7316 2
|
||||||
|
Loop time of 0.0954949 on 4 procs for 100 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
900 399.91074 -13034.973 0.95275442 3161.8387 5 0.36638548 0.4 0.99295506 0.93909912 1.0481595 5.9276206 1380.4406 4500.9735 5.7177778 0.12436844 0.0038865138 3.8763827 0.99275079 0.93842885 1.0481595 0 0 0 0 0 18000 0 0 0 1628.7316 2
|
||||||
|
976 399.91074 -13102.244 0.95275442 3161.8387 5 0.36638548 0.4 0.99295506 0.93909912 1.0481595 5.9276206 1380.4406 4500.9735 5.272541 0.12436844 0.0038865138 3.8763827 0.99275079 0.93842885 1.0481595 0 0 0 0 0 19520 0 0 0 1628.7316 2
|
||||||
|
Loop time of 0.0902783 on 4 procs for 76 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
900 399.91074 -13034.973 0.95307991 3160.9514 5 0.42271366 0.4 0.99267641 0.93909912 1.0481595 5.9292845 1379.4982 4500.9735 5.7177778 0.12436844 0.0038865138 3.8763827 0.99275079 0.93842885 1.0481595 2.7471779 0 0 0 0 18000 1 1 4 1627.8857 2
|
||||||
|
1000 417.82316 -13039.554 1.4089391 6086.7002 6 0.2668611 0.4 0.99526586 0.94236305 1.0494983 5.9292845 1379.4982 4302.6407 5.774 0.12573606 0.0034638033 3.8763827 0.99291291 0.93842885 1.0529963 2.7471779 0 0 0 0 20000 1 1 4 10750.027 0
|
||||||
|
Loop time of 0.0780252 on 4 procs for 100 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
1000 417.82316 -13039.554 1.4089391 6086.7002 6 0.2668611 0.4 0.99526586 0.94236305 1.0494983 5.9292845 1379.4982 4302.6407 5.774 0.12573606 0.0034638033 3.8763827 0.99291291 0.93842885 1.0529963 2.7471779 0 0 0 0 20000 1 1 4 10750.027 0
|
||||||
|
1069 417.82316 -13102.244 1.4089391 6086.7002 6 0.2668611 0.4 0.99526586 0.94236305 1.0494983 5.9292845 1379.4982 4302.6407 5.4013096 0.12573606 0.0034638033 3.8763827 0.99291291 0.93842885 1.0529963 2.7471779 0 0 0 0 21380 1 1 4 10750.027 0
|
||||||
|
Loop time of 0.0806106 on 4 procs for 69 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
1000 417.82316 -13039.554 1.4087876 6086.7002 6 0.2668611 0.4 0.99526586 0.94236305 1.0494983 5.9292845 1379.4982 4302.6407 5.774 0.12573606 0.0034638033 3.8763827 0.99291291 0.93842885 1.0529963 2.7471779 0 0 0 0 20000 1 1 4 10700.259 0
|
||||||
|
1100 388.96194 -13034.299 1.2536756 3347.844 7 0.31351452 0.4 0.99338469 0.94091364 1.0522698 5.9292845 1379.4982 4384.5779 5.7981818 0.11774851 0.0039197241 3.8763827 0.99302197 0.93842885 1.0529963 2.7471779 0 0 0 0 22000 1 1 4 3842.8412 1
|
||||||
|
Loop time of 0.078698 on 4 procs for 100 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
1100 388.96194 -13034.299 1.2536756 3347.844 7 0.31351452 0.4 0.99338469 0.94091364 1.0522698 5.9292845 1379.4982 4384.5779 5.7981818 0.11774851 0.0039197241 3.8763827 0.99302197 0.93842885 1.0529963 2.7471779 0 0 0 0 22000 1 1 4 3842.8412 1
|
||||||
|
1169 388.96194 -13102.244 1.2536756 3347.844 7 0.31351452 0.4 0.99338469 0.94091364 1.0522698 5.9292845 1379.4982 4384.5779 5.4559453 0.11774851 0.0039197241 3.8763827 0.99302197 0.93842885 1.0529963 2.7471779 0 0 0 0 23380 1 1 4 3842.8412 1
|
||||||
|
Loop time of 0.0793428 on 4 procs for 69 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
1100 388.96194 -13034.299 1.2536216 3347.844 7 0.31351452 0.4 0.99338469 0.94091364 1.0522698 5.9292845 1379.4982 4384.5779 5.7981818 0.11774851 0.0039197241 3.8763827 0.99302197 0.93842885 1.0529963 2.7471779 0 0 0 0 22000 1 1 4 3837.378 1
|
||||||
|
1200 416.13133 -13039.115 1.136132 3568.4524 6 0.35533996 0.4 0.99425562 0.9364246 1.0585182 5.9292845 1379.4982 4306.0803 5.8033333 0.12464101 0.0035898909 4.0254085 0.99310701 0.9364246 1.0585182 2.7471779 0 0 0 0 24000 1 1 4 2979.741 3
|
||||||
|
Loop time of 0.0783656 on 4 procs for 100 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
1200 416.13133 -13039.115 1.136132 3568.4524 6 0.35533996 0.4 0.99425562 0.9364246 1.0585182 5.9292845 1379.4982 4306.0803 5.8033333 0.12464101 0.0035898909 4.0254085 0.99310701 0.9364246 1.0585182 2.7471779 0 0 0 0 24000 1 1 4 2979.741 3
|
||||||
|
1273 416.13133 -13102.244 1.136132 3568.4524 6 0.35533996 0.4 0.99425562 0.9364246 1.0585182 5.9292845 1379.4982 4306.0803 5.470542 0.12464101 0.0035898909 4.0254085 0.99310701 0.9364246 1.0585182 2.7471779 0 0 0 0 25460 1 1 4 2979.741 3
|
||||||
|
Loop time of 0.0876518 on 4 procs for 73 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
1200 416.13133 -13039.115 1.1361057 3568.4524 6 0.35533996 0.4 0.99425562 0.9364246 1.0585182 5.9292845 1379.4982 4306.0803 5.8033333 0.12464101 0.0035898909 4.0254085 0.99310701 0.9364246 1.0585182 2.7471779 0 0 0 0 24000 1 1 4 2976.9031 3
|
||||||
|
1300 410.00168 -13035.264 0.69108116 2815.6646 5 0.33760803 0.4 0.99554496 0.93639346 1.064754 5.9292845 1379.4982 4219.0606 5.7769231 0.12822903 0.0045272969 4.0475228 0.99322786 0.93631673 1.064754 2.7471779 0 0 0 0 26000 1 1 4 3571.3217 2
|
||||||
|
Loop time of 0.0806069 on 4 procs for 100 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
1300 410.00168 -13035.264 0.69108116 2815.6646 5 0.33760803 0.4 0.99554496 0.93639346 1.064754 5.9292845 1379.4982 4219.0606 5.7769231 0.12822903 0.0045272969 4.0475228 0.99322786 0.93631673 1.064754 2.7471779 0 0 0 0 26000 1 1 4 3571.3217 2
|
||||||
|
1372 410.00168 -13102.244 0.69108116 2815.6646 5 0.33760803 0.4 0.99554496 0.93639346 1.064754 5.9292845 1379.4982 4219.0606 5.4737609 0.12822903 0.0045272969 4.0475228 0.99322786 0.93631673 1.064754 2.7471779 0 0 0 0 27440 1 1 4 3571.3217 2
|
||||||
|
Loop time of 0.101343 on 4 procs for 72 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
1300 410.00168 -13035.264 0.69104928 2815.6646 5 0.33760803 0.4 0.99554496 0.93639346 1.064754 5.9292845 1379.4982 4219.0606 5.7769231 0.12822903 0.0045272969 4.0475228 0.99322786 0.93631673 1.064754 2.7471779 0 0 0 0 26000 1 1 4 3567.5136 2
|
||||||
|
1400 423.4606 -13036.225 1.703102 2579.4314 7 0.24557477 0.4 0.99782055 0.93345496 1.0682561 5.9292845 1379.4982 4099.3865 5.7721429 0.12609826 0.0042074001 4.0475228 0.99346354 0.93345496 1.0682561 2.7471779 0 0 0 0 28000 1 1 4 2627.7529 0
|
||||||
|
Loop time of 0.0779268 on 4 procs for 100 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
1400 423.4606 -13036.225 1.703102 2579.4314 7 0.24557477 0.4 0.99782055 0.93345496 1.0682561 5.9292845 1379.4982 4099.3865 5.7721429 0.12609826 0.0042074001 4.0475228 0.99346354 0.93345496 1.0682561 2.7471779 0 0 0 0 28000 1 1 4 2627.7529 0
|
||||||
|
1472 423.4606 -13102.244 1.703102 2579.4314 7 0.24557477 0.4 0.99782055 0.93345496 1.0682561 5.9292845 1379.4982 4099.3865 5.4898098 0.12609826 0.0042074001 4.0475228 0.99346354 0.93345496 1.0682561 2.7471779 0 0 0 0 29440 1 1 4 2627.7529 0
|
||||||
|
Loop time of 0.0863118 on 4 procs for 72 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
1400 423.4606 -13036.225 1.7031193 2579.4314 7 0.24557477 0.4 0.99782055 0.93345496 1.0682561 5.9292845 1379.4982 4099.3865 5.7721429 0.12609826 0.0042074001 4.0475228 0.99346354 0.93345496 1.0682561 2.7471779 0 0 0 0 28000 1 1 4 2626.4636 0
|
||||||
|
1500 417.42191 -13035.425 0.63879915 3265.9276 5 0.29228757 0.4 1.0007582 0.93528148 1.0742773 5.9292845 1379.4982 3967.4215 5.808 0.12396694 0.003902663 4.0475228 0.99383929 0.9320167 1.0742773 2.7471779 0 0 0 0 30000 1 1 4 1469.864 0
|
||||||
|
Loop time of 0.078608 on 4 procs for 100 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
1500 417.42191 -13035.425 0.63879915 3265.9276 5 0.29228757 0.4 1.0007582 0.93528148 1.0742773 5.9292845 1379.4982 3967.4215 5.808 0.12396694 0.003902663 4.0475228 0.99383929 0.9320167 1.0742773 2.7471779 0 0 0 0 30000 1 1 4 1469.864 0
|
||||||
|
1575 417.42191 -13102.244 0.63879915 3265.9276 5 0.29228757 0.4 1.0007582 0.93528148 1.0742773 5.9292845 1379.4982 3967.4215 5.5314286 0.12396694 0.003902663 4.0475228 0.99383929 0.9320167 1.0742773 2.7471779 0 0 0 0 31500 1 1 4 1469.864 0
|
||||||
|
Loop time of 0.0875254 on 4 procs for 75 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
1500 417.42191 -13035.425 0.63881053 3265.9276 5 0.29228757 0.4 1.0007582 0.93528148 1.0742773 5.9292845 1379.4982 3967.4215 5.808 0.12396694 0.003902663 4.0475228 0.99383929 0.9320167 1.0742773 2.7471779 0 0 0 0 30000 1 1 4 1469.1489 0
|
||||||
|
1600 401.08407 -13036.858 2.3070534 2462.029 9 0.26709092 0.4 1.0019205 0.93145421 1.0802698 5.9292845 1379.4982 3922.9667 5.83625 0.12368816 0.0036410366 4.0475228 0.9942857 0.93077554 1.0802698 2.7471779 0 0 0 0 32000 1 1 4 5228.0098 0
|
||||||
|
Loop time of 0.0780517 on 4 procs for 100 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
1600 401.08407 -13036.858 2.3070534 2462.029 9 0.26709092 0.4 1.0019205 0.93145421 1.0802698 5.9292845 1379.4982 3922.9667 5.83625 0.12368816 0.0036410366 4.0475228 0.9942857 0.93077554 1.0802698 2.7471779 0 0 0 0 32000 1 1 4 5228.0098 0
|
||||||
|
1667 401.08407 -13102.244 2.3070534 2462.029 9 0.26709092 0.4 1.0019205 0.93145421 1.0802698 5.9292845 1379.4982 3922.9667 5.6016797 0.12368816 0.0036410366 4.0475228 0.9942857 0.93077554 1.0802698 2.7471779 0 0 0 0 33340 1 1 4 5228.0098 0
|
||||||
|
Loop time of 0.0795826 on 4 procs for 67 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
1600 401.08407 -13036.858 2.3069745 2462.029 9 0.26709092 0.4 1.0019205 0.93145421 1.0802698 5.9292845 1379.4982 3922.9667 5.83625 0.12368816 0.0036410366 4.0475228 0.9942857 0.93077554 1.0802698 2.7471779 0 0 0 0 32000 1 1 4 5216.9826 0
|
||||||
|
1700 390.57304 -13035.592 0.75779993 1179.4046 6 0.28725951 0.4 1.0026134 0.9311732 1.0858013 5.9292845 1379.4982 3901.4109 5.8264706 0.12155477 0.003634528 4.0475228 0.99473366 0.93050239 1.0858013 2.7471779 0 0 0 0 34000 1 1 4 400.12853 0
|
||||||
|
Loop time of 0.0782826 on 4 procs for 100 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
1700 390.57304 -13035.592 0.75779993 1179.4046 6 0.28725951 0.4 1.0026134 0.9311732 1.0858013 5.9292845 1379.4982 3901.4109 5.8264706 0.12155477 0.003634528 4.0475228 0.99473366 0.93050239 1.0858013 2.7471779 0 0 0 0 34000 1 1 4 400.12853 0
|
||||||
|
1769 390.57304 -13102.244 0.75779993 1179.4046 6 0.28725951 0.4 1.0026134 0.9311732 1.0858013 5.9292845 1379.4982 3901.4109 5.5992086 0.12155477 0.003634528 4.0475228 0.99473366 0.93050239 1.0858013 2.7471779 0 0 0 0 35380 1 1 4 400.12853 0
|
||||||
|
Loop time of 0.0823042 on 4 procs for 69 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
1700 390.57304 -13035.592 0.75783515 1179.4046 6 0.28725951 0.4 1.0026134 0.9311732 1.0858013 5.9292845 1379.4982 3901.4109 5.8264706 0.12155477 0.003634528 4.0475228 0.99473366 0.93050239 1.0858013 2.7471779 0 0 0 0 34000 1 1 4 400.32271 0
|
||||||
|
1800 398.05229 -13039.968 1.4993394 4237.7772 6 0.25966095 0.4 1.0035311 0.929455 1.0894688 5.9292845 1379.4982 3874.257 5.8227778 0.11487453 0.0034347868 4.0475228 0.99520141 0.929455 1.0894875 2.7471779 0 0 0 0 36000 1 1 4 5377.4056 0
|
||||||
|
Loop time of 0.07784 on 4 procs for 100 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
1800 398.05229 -13039.968 1.4993394 4237.7772 6 0.25966095 0.4 1.0035311 0.929455 1.0894688 5.9292845 1379.4982 3874.257 5.8227778 0.11487453 0.0034347868 4.0475228 0.99520141 0.929455 1.0894875 2.7471779 0 0 0 0 36000 1 1 4 5377.4056 0
|
||||||
|
1870 398.05229 -13102.244 1.4993394 4237.7772 6 0.25966095 0.4 1.0035311 0.929455 1.0894688 5.9292845 1379.4982 3874.257 5.6048128 0.11487453 0.0034347868 4.0475228 0.99520141 0.929455 1.0894875 2.7471779 0 0 0 0 37400 1 1 4 5377.4056 0
|
||||||
|
Loop time of 0.0836493 on 4 procs for 70 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
1800 398.05229 -13039.968 1.4993215 4237.7772 6 0.25966095 0.4 1.0035311 0.929455 1.0894688 5.9292845 1379.4982 3874.257 5.8227778 0.11487453 0.0034347868 4.0475228 0.99520141 0.929455 1.0894875 2.7471779 0 0 0 0 36000 1 1 4 5369.6279 0
|
||||||
|
1900 413.06274 -13039.873 1.3826465 7339.1562 5 0.22717549 0.4 0.999658 0.92261066 1.0792934 5.9292845 1379.4982 4011.3391 5.8310526 0.11065981 0.0032493907 4.0475228 0.99552368 0.92261066 1.0894875 2.7471779 0 0 0 0 38000 1 1 4 10818.73 0
|
||||||
|
Loop time of 0.0805019 on 4 procs for 100 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
1900 413.06274 -13039.873 1.3826465 7339.1562 5 0.22717549 0.4 0.999658 0.92261066 1.0792934 5.9292845 1379.4982 4011.3391 5.8310526 0.11065981 0.0032493907 4.0475228 0.99552368 0.92261066 1.0894875 2.7471779 0 0 0 0 38000 1 1 4 10818.73 0
|
||||||
|
1969 413.06274 -13102.244 1.3826465 7339.1562 5 0.22717549 0.4 0.999658 0.92261066 1.0792934 5.9292845 1379.4982 4011.3391 5.6267141 0.11065981 0.0032493907 4.0475228 0.99552368 0.92261066 1.0894875 2.7471779 0 0 0 0 39380 1 1 4 10818.73 0
|
||||||
|
Loop time of 0.0814294 on 4 procs for 69 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
1900 413.06274 -13039.873 1.3825572 7339.1562 5 0.22717549 0.4 0.999658 0.92261066 1.0792934 5.9292845 1379.4982 4011.3391 5.8310526 0.11065981 0.0032493907 4.0475228 0.99552368 0.92261066 1.0894875 2.7471779 0 0 0 0 38000 1 1 4 10781.258 0
|
||||||
|
2000 399.72382 -13038.217 1.1754671 2735.2303 6 0.31028081 0.4 0.99858834 0.92453074 1.0748234 5.9292845 1379.4982 4045.0012 5.811 0.10841507 0.0030975736 4.0475228 0.99572029 0.922532 1.0894875 2.7471779 0 0 0 0 40000 1 1 4 2622.0819 1
|
||||||
|
Loop time of 0.0794099 on 4 procs for 100 steps with 2354 atoms
|
||||||
|
|
||||||
|
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
||||||
|
2000 399.72382 -13038.217 1.1754671 2735.2303 6 0.31028081 0.4 0.99858834 0.92453074 1.0748234 5.9292845 1379.4982 4045.0012 5.811 0.10841507 0.0030975736 4.0475228 0.99572029 0.922532 1.0894875 2.7471779 0 0 0 0 40000 1 1 4 2622.0819 1
|
||||||
|
2071 399.72382 -13102.244 1.1754671 2735.2303 6 0.31028081 0.4 0.99858834 0.92453074 1.0748234 5.9292845 1379.4982 4045.0012 5.6117817 0.10841507 0.0030975736 4.0475228 0.99572029 0.922532 1.0894875 2.7471779 0 0 0 0 41420 1 1 4 2622.0819 1
|
||||||
|
Loop time of 0.0837786 on 4 procs for 71 steps with 2354 atoms
|
||||||
|
|
||||||
|
Final hyper stats ...
|
||||||
|
|
||||||
|
Cummulative quantities for fix hyper:
|
||||||
|
hyper time = 40000
|
||||||
|
time boost factor = 4000
|
||||||
|
event timesteps = 1
|
||||||
|
# of atoms in events = 1
|
||||||
|
Quantities for this hyper run:
|
||||||
|
event timesteps = 1
|
||||||
|
# of atoms in events = 1
|
||||||
|
max length of any bond = 4.04752
|
||||||
|
max drift distance of any atom = 2.74718
|
||||||
|
fraction of biased bonds with zero bias = 0.108415
|
||||||
|
fraction of biased bonds with negative strain = 0.00309757
|
||||||
|
Current quantities:
|
||||||
|
ave bonds/atom = 5.92928
|
||||||
|
Cummulative quantities specific to fix hyper/local:
|
||||||
|
# of new bonds formed = 4
|
||||||
|
max bonds/atom = 12
|
||||||
|
Quantities for this hyper run specific to fix hyper/local:
|
||||||
|
ave boost for all bonds/step = 4045
|
||||||
|
ave biased bonds/step = 5.811
|
||||||
|
ave bias coeff of all bonds = 0.99572
|
||||||
|
min bias coeff of any bond = 0.922532
|
||||||
|
max bias coeff of any bond = 1.08949
|
||||||
|
max dist from my subbox of any non-maxstrain bond ghost atom = 0
|
||||||
|
max dist from my box of any bond ghost atom = 0
|
||||||
|
count of bond ghost neighbors not found on reneighbor steps = 0
|
||||||
|
bias overlaps = 0
|
||||||
|
CPU time for bond builds = 0.00247526
|
||||||
|
Current quantities specific to fix hyper/local:
|
||||||
|
neighbor bonds/bond = 1379.5
|
||||||
|
ave boost coeff for all bonds = 0.998588
|
||||||
|
|
||||||
|
Loop time of 3.52992 on 4 procs for 2000 steps with 2354 atoms
|
||||||
|
|
||||||
|
Performance: 244.765 ns/day, 0.098 hours/ns, 566.585 timesteps/s
|
||||||
|
114.7% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
|
Hyper stats:
|
||||||
|
Dynamics time (%) = 1.59393 (45.1549)
|
||||||
|
Quench time (%) = 1.71979 (48.7203)
|
||||||
|
Other time (%) = 0.219256 (6.21136)
|
||||||
|
|
||||||
|
MPI task timing breakdown:
|
||||||
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Pair | 2.4735 | 2.4914 | 2.5135 | 1.0 | 70.58
|
||||||
|
Neigh | 0.11535 | 0.11805 | 0.12056 | 0.7 | 3.34
|
||||||
|
Comm | 0.20734 | 0.21636 | 0.22119 | 1.1 | 6.13
|
||||||
|
Output | 0.00089145 | 0.0014108 | 0.0029645 | 2.4 | 0.04
|
||||||
|
Modify | 0.47314 | 0.48343 | 0.49869 | 1.4 | 13.70
|
||||||
|
Other | | 0.2193 | | | 6.21
|
||||||
|
|
||||||
|
Nlocal: 588.5 ave 607 max 577 min
|
||||||
|
Histogram: 1 0 2 0 0 0 0 0 0 1
|
||||||
|
Nghost: 1965.75 ave 1977 max 1947 min
|
||||||
|
Histogram: 1 0 0 0 0 0 1 0 1 1
|
||||||
|
Neighs: 13775.8 ave 14221 max 13511 min
|
||||||
|
Histogram: 1 1 0 1 0 0 0 0 0 1
|
||||||
|
FullNghs: 136920 ave 139934 max 133922 min
|
||||||
|
Histogram: 1 0 0 1 0 0 1 0 0 1
|
||||||
|
|
||||||
|
Total # of neighbors = 547678
|
||||||
|
Ave neighs/atom = 232.658
|
||||||
|
Neighbor list builds = 193
|
||||||
|
Dangerous builds = 0
|
||||||
|
Total wall time: 0:00:04
|
||||||
File diff suppressed because it is too large
Load Diff
@ -1,646 +0,0 @@
|
|||||||
LAMMPS (09 Jan 2020)
|
|
||||||
# 3d EAM surface for local HD
|
|
||||||
|
|
||||||
# nearest neighbor distance = a * sqrt(2)/2 = 2.77 Angs for Pt with a = 3.92
|
|
||||||
# hop event on (100) surface is same distance
|
|
||||||
# exchange event is 2 atoms moving same distance
|
|
||||||
|
|
||||||
variable Tequil index 400.0
|
|
||||||
variable Vmax index 0.4
|
|
||||||
variable qfactor index 0.3
|
|
||||||
variable cutbond index 3.2
|
|
||||||
variable Dcut index 10.0
|
|
||||||
variable cutevent index 1.1
|
|
||||||
variable alpha index 200.0
|
|
||||||
variable boost index 4000.0
|
|
||||||
variable ghostcut index 12.0
|
|
||||||
variable steps index 2000
|
|
||||||
variable nevent index 100
|
|
||||||
variable nx index 2
|
|
||||||
variable ny index 2
|
|
||||||
variable zoom index 1.8
|
|
||||||
variable seed index 3875984
|
|
||||||
variable tol index 1.0e-15
|
|
||||||
variable add index 50
|
|
||||||
|
|
||||||
units metal
|
|
||||||
atom_style atomic
|
|
||||||
atom_modify map array
|
|
||||||
boundary p p p
|
|
||||||
comm_modify cutoff ${ghostcut}
|
|
||||||
comm_modify cutoff 12.0
|
|
||||||
|
|
||||||
lattice fcc 3.92
|
|
||||||
Lattice spacing in x,y,z = 3.92 3.92 3.92
|
|
||||||
region box block 0 6 0 6 0 4
|
|
||||||
create_box 2 box
|
|
||||||
Created orthogonal box = (0 0 0) to (23.52 23.52 15.68)
|
|
||||||
2 by 2 by 1 MPI processor grid
|
|
||||||
create_atoms 1 box
|
|
||||||
Created 576 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
|
|
||||||
mass * 1.0
|
|
||||||
|
|
||||||
change_box all z final -0.1 5.0 boundary p p f
|
|
||||||
orthogonal box = (0 0 -0.392) to (23.52 23.52 19.6)
|
|
||||||
|
|
||||||
# replicate in xy
|
|
||||||
|
|
||||||
replicate ${nx} ${ny} 1
|
|
||||||
replicate 2 ${ny} 1
|
|
||||||
replicate 2 2 1
|
|
||||||
orthogonal box = (0 0 -0.392) to (47.04 47.04 19.6)
|
|
||||||
2 by 2 by 1 MPI processor grid
|
|
||||||
2304 atoms
|
|
||||||
replicate CPU = 0.00200009 secs
|
|
||||||
|
|
||||||
# add adatoms
|
|
||||||
|
|
||||||
include adatoms.list.${add}
|
|
||||||
include adatoms.list.50
|
|
||||||
create_atoms 1 single 5 9 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 4.5 7.5 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 6 6 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 5 6 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 4.5 1.5 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 6.5 7.5 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 10.5 5.5 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 2.5 1.5 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 3.5 4.5 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 0 10 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 11 10 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 6.5 10.5 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 3.5 5.5 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 7.5 10.5 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 1.5 1.5 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 1.5 6.5 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 7 2 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 4 0 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 9 0 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 4 9 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 10 7 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 4 4 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 9.5 2.5 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 1 5 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 7 10 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 0 4 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 1 10 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 7.5 6.5 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 4 10 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 6.5 3.5 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 3 6 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 8.5 4.5 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 6.5 0.5 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 1 4 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 8.5 11.5 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 3 9 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 2 3 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 6.5 8.5 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 1 0 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 0.5 10.5 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 4 11 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 3 5 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 0 1 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 2 11 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 2 0 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 7.5 11.5 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 1 7 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 3.5 10.5 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 0 2 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
create_atoms 1 single 8 4 4
|
|
||||||
Created 1 atoms
|
|
||||||
create_atoms CPU = 0 secs
|
|
||||||
|
|
||||||
# define frozen substrate and mobile atoms
|
|
||||||
|
|
||||||
region base block INF INF INF INF 0 1.8
|
|
||||||
set region base type 2
|
|
||||||
1152 settings made for type
|
|
||||||
group base type 2
|
|
||||||
1152 atoms in group base
|
|
||||||
group mobile type 1
|
|
||||||
1202 atoms in group mobile
|
|
||||||
|
|
||||||
# pair style
|
|
||||||
|
|
||||||
pair_style eam/alloy
|
|
||||||
pair_coeff * * ptvoterlammps.eam Pt Pt
|
|
||||||
|
|
||||||
neighbor 0.5 bin
|
|
||||||
neigh_modify every 1 delay 5 check yes
|
|
||||||
|
|
||||||
fix 1 mobile nve
|
|
||||||
fix 2 mobile langevin ${Tequil} ${Tequil} 1.0 ${seed} zero yes
|
|
||||||
fix 2 mobile langevin 400.0 ${Tequil} 1.0 ${seed} zero yes
|
|
||||||
fix 2 mobile langevin 400.0 400.0 1.0 ${seed} zero yes
|
|
||||||
fix 2 mobile langevin 400.0 400.0 1.0 3875984 zero yes
|
|
||||||
|
|
||||||
timestep 0.005
|
|
||||||
|
|
||||||
compute tmobile mobile temp
|
|
||||||
|
|
||||||
thermo 100
|
|
||||||
thermo_modify temp tmobile
|
|
||||||
WARNING: Temperature for thermo pressure is not for group all (../thermo.cpp:485)
|
|
||||||
|
|
||||||
# thermal equilibration
|
|
||||||
|
|
||||||
run 1000
|
|
||||||
Neighbor list info ...
|
|
||||||
update every 1 steps, delay 5 steps, check yes
|
|
||||||
max neighbors/atom: 2000, page size: 100000
|
|
||||||
master list distance cutoff = 6.07583
|
|
||||||
ghost atom cutoff = 12
|
|
||||||
binsize = 3.03792, bins = 16 16 7
|
|
||||||
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
|
||||||
(1) pair eam/alloy, perpetual
|
|
||||||
attributes: half, newton on
|
|
||||||
pair build: half/bin/atomonly/newton
|
|
||||||
stencil: half/bin/3d/newton
|
|
||||||
bin: standard
|
|
||||||
Per MPI rank memory allocation (min/avg/max) = 3.082 | 3.082 | 3.082 Mbytes
|
|
||||||
Step Temp E_pair E_mol TotEng Press
|
|
||||||
0 0 -13067.188 0 -13067.188 -53763.139
|
|
||||||
100 216.49187 -13065.694 0 -13032.085 -24077.115
|
|
||||||
200 285.11905 -13057.047 0 -13012.785 -38815.844
|
|
||||||
300 321.67264 -13048.005 0 -12998.068 -29296.124
|
|
||||||
400 352.90893 -13045.707 0 -12990.92 -34630.884
|
|
||||||
500 371.9393 -13041.234 0 -12983.494 -28913.827
|
|
||||||
600 379.08135 -13040.06 0 -12981.211 -33399.8
|
|
||||||
700 388.73836 -13039.691 0 -12979.343 -29446.954
|
|
||||||
800 402.13628 -13040.606 0 -12978.178 -33026.861
|
|
||||||
900 389.43806 -13036.884 0 -12976.427 -30328.658
|
|
||||||
1000 388.66198 -13037.479 0 -12977.142 -30859.145
|
|
||||||
Loop time of 1.28003 on 4 procs for 1000 steps with 2354 atoms
|
|
||||||
|
|
||||||
Performance: 337.492 ns/day, 0.071 hours/ns, 781.232 timesteps/s
|
|
||||||
100.0% CPU use with 4 MPI tasks x no OpenMP threads
|
|
||||||
|
|
||||||
MPI task timing breakdown:
|
|
||||||
Section | min time | avg time | max time |%varavg| %total
|
|
||||||
---------------------------------------------------------------
|
|
||||||
Pair | 1.054 | 1.077 | 1.094 | 1.6 | 84.14
|
|
||||||
Neigh | 0.054002 | 0.056502 | 0.060002 | 1.0 | 4.41
|
|
||||||
Comm | 0.087002 | 0.11025 | 0.133 | 5.6 | 8.61
|
|
||||||
Output | 0 | 0 | 0 | 0.0 | 0.00
|
|
||||||
Modify | 0.031003 | 0.031502 | 0.032002 | 0.3 | 2.46
|
|
||||||
Other | | 0.00475 | | | 0.37
|
|
||||||
|
|
||||||
Nlocal: 588.5 ave 592 max 581 min
|
|
||||||
Histogram: 1 0 0 0 0 0 0 1 0 2
|
|
||||||
Nghost: 1964 ave 1973 max 1959 min
|
|
||||||
Histogram: 2 0 0 1 0 0 0 0 0 1
|
|
||||||
Neighs: 14148.8 ave 14283 max 13931 min
|
|
||||||
Histogram: 1 0 0 0 0 0 1 1 0 1
|
|
||||||
|
|
||||||
Total # of neighbors = 56595
|
|
||||||
Ave neighs/atom = 24.0421
|
|
||||||
Neighbor list builds = 91
|
|
||||||
Dangerous builds = 0
|
|
||||||
reset_timestep 0
|
|
||||||
|
|
||||||
# pin base so will not move during quenches
|
|
||||||
|
|
||||||
fix freeze base setforce 0.0 0.0 0.0
|
|
||||||
|
|
||||||
# event detection
|
|
||||||
|
|
||||||
compute event all event/displace ${cutevent}
|
|
||||||
compute event all event/displace 1.1
|
|
||||||
|
|
||||||
# hyper/local
|
|
||||||
|
|
||||||
fix HL mobile hyper/local ${cutbond} ${qfactor} ${Vmax} ${Tequil} ${Dcut} ${alpha} ${boost}
|
|
||||||
fix HL mobile hyper/local 3.2 ${qfactor} ${Vmax} ${Tequil} ${Dcut} ${alpha} ${boost}
|
|
||||||
fix HL mobile hyper/local 3.2 0.3 ${Vmax} ${Tequil} ${Dcut} ${alpha} ${boost}
|
|
||||||
fix HL mobile hyper/local 3.2 0.3 0.4 ${Tequil} ${Dcut} ${alpha} ${boost}
|
|
||||||
fix HL mobile hyper/local 3.2 0.3 0.4 400.0 ${Dcut} ${alpha} ${boost}
|
|
||||||
fix HL mobile hyper/local 3.2 0.3 0.4 400.0 10.0 ${alpha} ${boost}
|
|
||||||
fix HL mobile hyper/local 3.2 0.3 0.4 400.0 10.0 200.0 ${boost}
|
|
||||||
fix HL mobile hyper/local 3.2 0.3 0.4 400.0 10.0 200.0 4000.0
|
|
||||||
|
|
||||||
# thermo output
|
|
||||||
|
|
||||||
thermo_style custom step temp pe f_HL f_HL[*]
|
|
||||||
WARNING: New thermo_style command, previous thermo_modify settings will be lost (../output.cpp:708)
|
|
||||||
|
|
||||||
thermo_modify lost ignore
|
|
||||||
thermo_modify temp tmobile
|
|
||||||
WARNING: Temperature for thermo pressure is not for group all (../thermo.cpp:485)
|
|
||||||
|
|
||||||
thermo ${nevent}
|
|
||||||
thermo 100
|
|
||||||
|
|
||||||
# dump
|
|
||||||
|
|
||||||
region substrate block INF INF INF INF 1.8 3.8
|
|
||||||
region adatoms block INF INF INF INF 3.8 INF
|
|
||||||
variable acolor atom rmask(base)+2*rmask(substrate)+3*rmask(adatoms)
|
|
||||||
|
|
||||||
dump 1 all image 10000000 local.*.jpg v_acolor type size 1024 1024 zoom ${zoom} adiam 2.5 view 0.0 0.0 up 0 1 0 axes yes 0.9 0.01
|
|
||||||
dump 1 all image 10000000 local.*.jpg v_acolor type size 1024 1024 zoom 1.8 adiam 2.5 view 0.0 0.0 up 0 1 0 axes yes 0.9 0.01
|
|
||||||
dump_modify 1 pad 6 amap 1 3 sa 1 3 blue red green
|
|
||||||
|
|
||||||
# run
|
|
||||||
|
|
||||||
hyper ${steps} ${nevent} HL event min ${tol} ${tol} 1000 1000 dump 1
|
|
||||||
hyper 2000 ${nevent} HL event min ${tol} ${tol} 1000 1000 dump 1
|
|
||||||
hyper 2000 100 HL event min ${tol} ${tol} 1000 1000 dump 1
|
|
||||||
hyper 2000 100 HL event min 1.0e-15 ${tol} 1000 1000 dump 1
|
|
||||||
hyper 2000 100 HL event min 1.0e-15 1.0e-15 1000 1000 dump 1
|
|
||||||
WARNING: Resetting reneighboring criteria during hyper (../hyper.cpp:131)
|
|
||||||
Neighbor list info ...
|
|
||||||
update every 1 steps, delay 0 steps, check yes
|
|
||||||
max neighbors/atom: 2000, page size: 100000
|
|
||||||
master list distance cutoff = 6.07583
|
|
||||||
ghost atom cutoff = 12
|
|
||||||
binsize = 3.03792, bins = 16 16 7
|
|
||||||
3 neighbor lists, perpetual/occasional/extra = 1 2 0
|
|
||||||
(1) pair eam/alloy, perpetual
|
|
||||||
attributes: half, newton on
|
|
||||||
pair build: half/bin/atomonly/newton
|
|
||||||
stencil: half/bin/3d/newton
|
|
||||||
bin: standard
|
|
||||||
(2) fix hyper/local, occasional
|
|
||||||
attributes: full, newton on, cut 10
|
|
||||||
pair build: full/bin/atomonly
|
|
||||||
stencil: full/bin/3d
|
|
||||||
bin: standard
|
|
||||||
(3) fix hyper/local, occasional, copy from (1)
|
|
||||||
attributes: half, newton on
|
|
||||||
pair build: copy
|
|
||||||
stencil: none
|
|
||||||
bin: none
|
|
||||||
Per MPI rank memory allocation (min/avg/max) = 6.666 | 6.666 | 6.666 Mbytes
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
0 388.66198 -13037.479 0 1 0 0 0.4 1 0 0 0 0 0 0 0 0 0 0 1e+20 0 0 0 0 0 0 0 0 0 0 1 0
|
|
||||||
77 388.66198 -13101.057 0 1 0 0 0.4 1 0 0 0 0 0 0 0 0 0 0 1e+20 0 0 0 0 0 0 1540 0 0 0 1 0
|
|
||||||
Loop time of 0.179004 on 4 procs for 77 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
0 388.66198 -13037.479 2.1560984 0 7 0.19075508 0.4 0 0 0 5.9276206 1380.4406 0 0 0 0 3.2725891 0 1e+20 0 0 0 0 0 0 0 0 0 0 10345.205 0
|
|
||||||
100 398.83324 -13036.879 2.1057282 8397.3244 7 0.17605069 0.4 0.99370412 0.98222607 1.0036767 5.9276206 1380.4406 8029.3662 4.83 0 0 3.3896963 0.9967648 0.98222607 1.0036767 0 0 0 0 0 2000 0 0 0 8152.8259 0
|
|
||||||
Loop time of 0.127003 on 4 procs for 100 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
100 398.83324 -13036.879 2.1057282 8397.3244 7 0.17605069 0.4 0.99370412 0.98222607 1.0036767 5.9276206 1380.4406 8029.3662 4.83 0 0 3.3896963 0.9967648 0.98222607 1.0036767 0 0 0 0 0 2000 0 0 0 8152.8259 0
|
|
||||||
167 398.83324 -13101.057 2.1057282 8397.3244 7 0.17605069 0.4 0.99370412 0.98222607 1.0036767 5.9276206 1380.4406 8029.3662 2.8922156 0 0 3.3896963 0.9967648 0.98222607 1.0036767 0 0 0 0 0 3340 0 0 0 8152.8259 0
|
|
||||||
Loop time of 0.127003 on 4 procs for 67 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
100 398.83324 -13036.879 2.1055533 8397.3244 7 0.17605069 0.4 0.99370412 0.98222607 1.0036767 5.9276206 1380.4406 8029.3662 4.83 0 0 3.3896963 0.9967648 0.98222607 1.0036767 0 0 0 0 0 2000 0 0 0 8129.9856 0
|
|
||||||
200 389.68041 -13036.5 1.3143359 4136.9005 6 0.31228203 0.4 0.99085481 0.96933773 1.0092702 5.9276206 1380.4406 6926.4597 5.43 0.035911602 0.00092081031 3.7338089 0.99450416 0.96933773 1.0092702 0 0 0 0 0 4000 0 0 0 3361.4715 1
|
|
||||||
Loop time of 0.127003 on 4 procs for 100 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
200 389.68041 -13036.5 1.3143359 4136.9005 6 0.31228203 0.4 0.99085481 0.96933773 1.0092702 5.9276206 1380.4406 6926.4597 5.43 0.035911602 0.00092081031 3.7338089 0.99450416 0.96933773 1.0092702 0 0 0 0 0 4000 0 0 0 3361.4715 1
|
|
||||||
270 389.68041 -13101.057 1.3143359 4136.9005 6 0.31228203 0.4 0.99085481 0.96933773 1.0092702 5.9276206 1380.4406 6926.4597 4.0222222 0.035911602 0.00092081031 3.7338089 0.99450416 0.96933773 1.0092702 0 0 0 0 0 5400 0 0 0 3361.4715 1
|
|
||||||
Loop time of 0.134003 on 4 procs for 70 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
200 389.68041 -13036.5 1.3143057 4136.9005 6 0.31228203 0.4 0.99085481 0.96933773 1.0092702 5.9276206 1380.4406 6926.4597 5.43 0.035911602 0.00092081031 3.7338089 0.99450416 0.96933773 1.0092702 0 0 0 0 0 4000 0 0 0 3356.2384 1
|
|
||||||
300 410.34512 -13036.301 1.3677603 4656.4226 6 0.33838934 0.4 0.99110308 0.96057751 1.0154382 5.9276206 1380.4406 5898.0094 5.44 0.036764706 0.0006127451 3.7338089 0.9934181 0.96057751 1.0154382 0 0 0 0 0 6000 0 0 0 4213.1218 1
|
|
||||||
Loop time of 0.129003 on 4 procs for 100 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
300 410.34512 -13036.301 1.3677603 4656.4226 6 0.33838934 0.4 0.99110308 0.96057751 1.0154382 5.9276206 1380.4406 5898.0094 5.44 0.036764706 0.0006127451 3.7338089 0.9934181 0.96057751 1.0154382 0 0 0 0 0 6000 0 0 0 4213.1218 1
|
|
||||||
375 410.34512 -13101.057 1.3677603 4656.4226 6 0.33838934 0.4 0.99110308 0.96057751 1.0154382 5.9276206 1380.4406 5898.0094 4.352 0.036764706 0.0006127451 3.7338089 0.9934181 0.96057751 1.0154382 0 0 0 0 0 7500 0 0 0 4213.1218 1
|
|
||||||
Loop time of 0.143004 on 4 procs for 75 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
300 410.34512 -13036.301 1.3677058 4656.4226 6 0.33838934 0.4 0.99110308 0.96057751 1.0154382 5.9276206 1380.4406 5898.0094 5.44 0.036764706 0.0006127451 3.7338089 0.9934181 0.96057751 1.0154382 0 0 0 0 0 6000 0 0 0 4207.0688 1
|
|
||||||
400 408.54896 -13036.835 1.090295 4172.0981 6 0.46750515 0.4 0.99130905 0.95644819 1.0207114 5.9276206 1380.4406 5390.5516 5.365 0.095060578 0.00046598322 3.9885296 0.9928942 0.95644819 1.0207114 0 0 0 0 0 8000 0 0 0 3865.6547 3
|
|
||||||
Loop time of 0.126003 on 4 procs for 100 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
400 408.54896 -13036.835 1.090295 4172.0981 6 0.46750515 0.4 0.99130905 0.95644819 1.0207114 5.9276206 1380.4406 5390.5516 5.365 0.095060578 0.00046598322 3.9885296 0.9928942 0.95644819 1.0207114 0 0 0 0 0 8000 0 0 0 3865.6547 3
|
|
||||||
471 408.54896 -13101.694 1.090295 4172.0981 6 0.46750515 0.4 0.99130905 0.95644819 1.0207114 5.9276206 1380.4406 5390.5516 4.5562633 0.095060578 0.00046598322 3.9885296 0.9928942 0.95644819 1.0207114 0 0 0 0 0 9420 0 0 0 3865.6547 3
|
|
||||||
Loop time of 0.131003 on 4 procs for 71 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
400 408.54896 -13036.835 1.090341 4171.5126 6 0.33910027 0.4 0.99116994 0.95644819 1.0207114 5.9284526 1380.3372 5390.5516 5.365 0.095060578 0.00046598322 3.9885296 0.9928942 0.95644819 1.0207114 2.7381277 0 0 0 0 8000 1 1 3 3863.7908 2
|
|
||||||
500 408.04798 -13035.819 1.887274 2622.1876 8 0.25727119 0.4 0.99128739 0.95020853 1.0240862 5.9284526 1380.3372 5115.3824 5.63 0.077087034 0.00071047957 3.9885296 0.99251152 0.95020853 1.0240862 2.7381277 0 0 0 0 10000 1 1 3 4184.3452 0
|
|
||||||
Loop time of 0.128003 on 4 procs for 100 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
500 408.04798 -13035.819 1.887274 2622.1876 8 0.25727119 0.4 0.99128739 0.95020853 1.0240862 5.9284526 1380.3372 5115.3824 5.63 0.077087034 0.00071047957 3.9885296 0.99251152 0.95020853 1.0240862 2.7381277 0 0 0 0 10000 1 1 3 4184.3452 0
|
|
||||||
569 408.04798 -13101.694 1.887274 2622.1876 8 0.25727119 0.4 0.99128739 0.95020853 1.0240862 5.9284526 1380.3372 5115.3824 4.9472759 0.077087034 0.00071047957 3.9885296 0.99251152 0.95020853 1.0240862 2.7381277 0 0 0 0 11380 1 1 3 4184.3452 0
|
|
||||||
Loop time of 0.135003 on 4 procs for 69 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
500 408.04798 -13035.819 1.8872278 2622.1876 8 0.25727119 0.4 0.99128739 0.95020853 1.0240862 5.9284526 1380.3372 5115.3824 5.63 0.077087034 0.00071047957 3.9885296 0.99251152 0.95020853 1.0240862 2.7381277 0 0 0 0 10000 1 1 3 4177.8105 0
|
|
||||||
600 419.0918 -13035.34 1.0950129 5050.5345 5 0.30933918 0.4 0.99315523 0.94243697 1.0303 5.9284526 1380.3372 4730.2494 5.7483333 0.082052769 0.00057987823 4.0620002 0.99251861 0.94243697 1.0303 2.7381277 0 0 0 0 12000 1 1 3 4375.7612 1
|
|
||||||
Loop time of 0.128003 on 4 procs for 100 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
600 419.0918 -13035.34 1.0950129 5050.5345 5 0.30933918 0.4 0.99315523 0.94243697 1.0303 5.9284526 1380.3372 4730.2494 5.7483333 0.082052769 0.00057987823 4.0620002 0.99251861 0.94243697 1.0303 2.7381277 0 0 0 0 12000 1 1 3 4375.7612 1
|
|
||||||
669 419.0918 -13101.694 1.0950129 5050.5345 5 0.30933918 0.4 0.99315523 0.94243697 1.0303 5.9284526 1380.3372 4730.2494 5.1554559 0.082052769 0.00057987823 4.0620002 0.99251861 0.94243697 1.0303 2.7381277 0 0 0 0 13380 1 1 3 4375.7612 1
|
|
||||||
Loop time of 0.131003 on 4 procs for 69 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
600 419.0918 -13035.34 1.0949592 5050.5345 5 0.30933918 0.4 0.99315523 0.94243697 1.0303 5.9284526 1380.3372 4730.2494 5.7483333 0.082052769 0.00057987823 4.0620002 0.99251861 0.94243697 1.0303 2.7381277 0 0 0 0 12000 1 1 3 4366.2434 1
|
|
||||||
700 404.99792 -13038.375 1.7496634 5457.7386 6 0.20603012 0.4 0.99311471 0.93767338 1.0364661 5.9284526 1380.3372 4629.6326 5.7757143 0.077170418 0.00049468217 4.0620002 0.99261201 0.93732488 1.0364661 2.7381277 0 0 0 0 14000 1 1 3 5897.4776 0
|
|
||||||
Loop time of 0.128003 on 4 procs for 100 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
700 404.99792 -13038.375 1.7496634 5457.7386 6 0.20603012 0.4 0.99311471 0.93767338 1.0364661 5.9284526 1380.3372 4629.6326 5.7757143 0.077170418 0.00049468217 4.0620002 0.99261201 0.93732488 1.0364661 2.7381277 0 0 0 0 14000 1 1 3 5897.4776 0
|
|
||||||
775 404.99792 -13101.694 1.7496634 5457.7386 6 0.20603012 0.4 0.99311471 0.93767338 1.0364661 5.9284526 1380.3372 4629.6326 5.2167742 0.077170418 0.00049468217 4.0620002 0.99261201 0.93732488 1.0364661 2.7381277 0 0 0 0 15500 1 1 3 5897.4776 0
|
|
||||||
Loop time of 0.166004 on 4 procs for 75 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
700 404.99792 -13038.375 1.7495648 5457.7386 6 0.20603012 0.4 0.99311471 0.93767338 1.0364661 5.9284526 1380.3372 4629.6326 5.7757143 0.077170418 0.00049468217 4.0620002 0.99261201 0.93732488 1.0364661 2.7381277 0 0 0 0 14000 1 1 3 5888.5728 0
|
|
||||||
800 421.10795 -13037.462 1.8512835 3051.7064 8 0.31933951 0.4 0.9902351 0.93814672 1.0426311 5.9284526 1380.3372 4781.2974 5.8125 0.070322581 0.00043010753 4.0620002 0.99242754 0.93732488 1.0426311 2.7381277 0 0 0 0 16000 1 1 3 3122.0342 1
|
|
||||||
Loop time of 0.245005 on 4 procs for 100 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
800 421.10795 -13037.462 1.8512835 3051.7064 8 0.31933951 0.4 0.9902351 0.93814672 1.0426311 5.9284526 1380.3372 4781.2974 5.8125 0.070322581 0.00043010753 4.0620002 0.99242754 0.93732488 1.0426311 2.7381277 0 0 0 0 16000 1 1 3 3122.0342 1
|
|
||||||
869 421.10795 -13101.694 1.8512835 3051.7064 8 0.31933951 0.4 0.9902351 0.93814672 1.0426311 5.9284526 1380.3372 4781.2974 5.3509781 0.070322581 0.00043010753 4.0620002 0.99242754 0.93732488 1.0426311 2.7381277 0 0 0 0 17380 1 1 3 3122.0342 1
|
|
||||||
Loop time of 0.180005 on 4 procs for 69 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
800 421.10795 -13037.462 1.8512626 3051.7064 8 0.31933951 0.4 0.9902351 0.93814672 1.0426311 5.9284526 1380.3372 4781.2974 5.8125 0.070322581 0.00043010753 4.0620002 0.99242754 0.93732488 1.0426311 2.7381277 0 0 0 0 16000 1 1 3 3118.9745 1
|
|
||||||
900 424.48211 -13036.231 1.5461807 1757.5544 7 0.25079261 0.4 0.99160613 0.94071212 1.0485957 5.9284526 1380.3372 4596.991 5.8511111 0.073300418 0.00037979491 4.0620002 0.99224254 0.93732488 1.0485957 2.7381277 0 0 0 0 18000 1 1 3 1803.828 0
|
|
||||||
Loop time of 0.158003 on 4 procs for 100 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
900 424.48211 -13036.231 1.5461807 1757.5544 7 0.25079261 0.4 0.99160613 0.94071212 1.0485957 5.9284526 1380.3372 4596.991 5.8511111 0.073300418 0.00037979491 4.0620002 0.99224254 0.93732488 1.0485957 2.7381277 0 0 0 0 18000 1 1 3 1803.828 0
|
|
||||||
969 424.48211 -13101.694 1.5461807 1757.5544 7 0.25079261 0.4 0.99160613 0.94071212 1.0485957 5.9284526 1380.3372 4596.991 5.4344685 0.073300418 0.00037979491 4.0620002 0.99224254 0.93732488 1.0485957 2.7381277 0 0 0 0 19380 1 1 3 1803.828 0
|
|
||||||
Loop time of 0.165004 on 4 procs for 69 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
900 424.48211 -13036.231 1.5462201 1757.5544 7 0.25079261 0.4 0.99160613 0.94071212 1.0485957 5.9284526 1380.3372 4596.991 5.8511111 0.073300418 0.00037979491 4.0620002 0.99224254 0.93732488 1.0485957 2.7381277 0 0 0 0 18000 1 1 3 1803.5841 0
|
|
||||||
1000 392.14281 -13033.226 1.3114425 4884.4012 6 0.28781471 0.4 0.99342697 0.93855058 1.0449678 5.9284526 1380.3372 4420.7581 5.862 0.076765609 0.00034118048 4.0620002 0.99230204 0.93732488 1.0514799 2.7381277 0 0 0 0 20000 1 1 3 6648.5089 0
|
|
||||||
Loop time of 0.159004 on 4 procs for 100 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
1000 392.14281 -13033.226 1.3114425 4884.4012 6 0.28781471 0.4 0.99342697 0.93855058 1.0449678 5.9284526 1380.3372 4420.7581 5.862 0.076765609 0.00034118048 4.0620002 0.99230204 0.93732488 1.0514799 2.7381277 0 0 0 0 20000 1 1 3 6648.5089 0
|
|
||||||
1070 392.14281 -13101.694 1.3114425 4884.4012 6 0.28781471 0.4 0.99342697 0.93855058 1.0449678 5.9284526 1380.3372 4420.7581 5.4785047 0.076765609 0.00034118048 4.0620002 0.99230204 0.93732488 1.0514799 2.7381277 0 0 0 0 21400 1 1 3 6648.5089 0
|
|
||||||
Loop time of 0.167004 on 4 procs for 70 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
1000 392.14281 -13033.226 1.3113308 4884.4012 6 0.28781471 0.4 0.99342697 0.93855058 1.0449678 5.9284526 1380.3372 4420.7581 5.862 0.076765609 0.00034118048 4.0620002 0.99230204 0.93732488 1.0514799 2.7381277 0 0 0 0 20000 1 1 3 6627.3707 0
|
|
||||||
1100 403.51397 -13035.66 0.54686506 3968.0952 5 0.36081738 0.4 0.99442104 0.93685489 1.0457452 5.9284526 1380.3372 4324.6709 5.89 0.077944127 0.00030868961 4.0620002 0.99241625 0.93604385 1.0514799 2.7381277 0 0 0 0 22000 1 1 3 1724.5221 2
|
|
||||||
Loop time of 0.143003 on 4 procs for 100 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
1100 403.51397 -13035.66 0.54686506 3968.0952 5 0.36081738 0.4 0.99442104 0.93685489 1.0457452 5.9284526 1380.3372 4324.6709 5.89 0.077944127 0.00030868961 4.0620002 0.99241625 0.93604385 1.0514799 2.7381277 0 0 0 0 22000 1 1 3 1724.5221 2
|
|
||||||
1170 403.51397 -13101.694 0.54686506 3968.0952 5 0.36081738 0.4 0.99442104 0.93685489 1.0457452 5.9284526 1380.3372 4324.6709 5.5376068 0.077944127 0.00030868961 4.0620002 0.99241625 0.93604385 1.0514799 2.7381277 0 0 0 0 23400 1 1 3 1724.5221 2
|
|
||||||
Loop time of 0.134003 on 4 procs for 70 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
1100 403.51397 -13035.66 0.54686188 3968.0952 5 0.36081738 0.4 0.99442104 0.93685489 1.0457452 5.9284526 1380.3372 4324.6709 5.89 0.077944127 0.00030868961 4.0620002 0.99241625 0.93604385 1.0514799 2.7381277 0 0 0 0 22000 1 1 3 1722.7748 2
|
|
||||||
1200 407.58933 -13037.757 0.83605065 5192.3954 5 0.3055123 0.4 0.99647568 0.93650885 1.0519936 5.9284526 1380.3372 4188.034 5.8883333 0.092838947 0.0022643646 4.0620002 0.99266277 0.9344152 1.0519936 2.7381277 0 0 0 0 24000 1 1 3 3708.6014 1
|
|
||||||
Loop time of 0.127003 on 4 procs for 100 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
1200 407.58933 -13037.757 0.83605065 5192.3954 5 0.3055123 0.4 0.99647568 0.93650885 1.0519936 5.9284526 1380.3372 4188.034 5.8883333 0.092838947 0.0022643646 4.0620002 0.99266277 0.9344152 1.0519936 2.7381277 0 0 0 0 24000 1 1 3 3708.6014 1
|
|
||||||
1275 407.58933 -13101.694 0.83605065 5192.3954 5 0.3055123 0.4 0.99647568 0.93650885 1.0519936 5.9284526 1380.3372 4188.034 5.5419608 0.092838947 0.0022643646 4.0620002 0.99266277 0.9344152 1.0519936 2.7381277 0 0 0 0 25500 1 1 3 3708.6014 1
|
|
||||||
Loop time of 0.147004 on 4 procs for 75 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
1200 407.58933 -13037.757 0.83600436 5192.3954 5 0.3055123 0.4 0.99647568 0.93650885 1.0519936 5.9284526 1380.3372 4188.034 5.8883333 0.092838947 0.0022643646 4.0620002 0.99266277 0.9344152 1.0519936 2.7381277 0 0 0 0 24000 1 1 3 3695.4259 1
|
|
||||||
1300 397.34752 -13035.27 1.143529 3889.5642 6 0.59455796 0.4 0.99734951 0.93577374 1.0582257 5.9284526 1380.3372 4130.5503 5.9123077 0.094977882 0.002081707 4.1048198 0.99297572 0.9344152 1.0582257 2.7381277 0 0 0 0 26000 1 1 3 2236.4525 2
|
|
||||||
Loop time of 0.129003 on 4 procs for 100 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
1300 397.34752 -13035.27 1.143529 3889.5642 6 0.59455796 0.4 0.99734951 0.93577374 1.0582257 5.9284526 1380.3372 4130.5503 5.9123077 0.094977882 0.002081707 4.1048198 0.99297572 0.9344152 1.0582257 2.7381277 0 0 0 0 26000 1 1 3 2236.4525 2
|
|
||||||
1379 397.34752 -13102.882 1.143529 3889.5642 6 0.59455796 0.4 0.99734951 0.93577374 1.0582257 5.9284526 1380.3372 4130.5503 5.5736041 0.094977882 0.002081707 4.1048198 0.99297572 0.9344152 1.0582257 2.7381277 0 0 0 0 27580 1 1 3 2236.4525 2
|
|
||||||
Loop time of 0.130003 on 4 procs for 79 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
1300 397.34752 -13035.27 0.8513344 3888.4728 5 0.43479061 0.4 0.99706967 0.93577374 1.0582257 5.9301165 1379.4348 4130.5503 5.9123077 0.094977882 0.002081707 4.1048198 0.99297572 0.9344152 1.0582257 2.7473869 0 0 0 0 26000 2 2 7 1674.6282 2
|
|
||||||
1400 406.75788 -13035.822 0.98339012 2583.5703 5 0.26687439 0.4 0.99725016 0.93341809 1.0565516 5.9301165 1379.4348 4125.2065 5.9 0.09503632 0.001937046 4.1048198 0.99327179 0.93335055 1.0582257 2.7473869 0 0 0 0 28000 2 2 7 1900.8002 0
|
|
||||||
Loop time of 0.145003 on 4 procs for 100 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
1400 406.75788 -13035.822 0.98339012 2583.5703 5 0.26687439 0.4 0.99725016 0.93341809 1.0565516 5.9301165 1379.4348 4125.2065 5.9 0.09503632 0.001937046 4.1048198 0.99327179 0.93335055 1.0582257 2.7473869 0 0 0 0 28000 2 2 7 1900.8002 0
|
|
||||||
1471 406.75788 -13102.882 0.98339012 2583.5703 5 0.26687439 0.4 0.99725016 0.93341809 1.0565516 5.9301165 1379.4348 4125.2065 5.6152277 0.09503632 0.001937046 4.1048198 0.99327179 0.93335055 1.0582257 2.7473869 0 0 0 0 29420 2 2 7 1900.8002 0
|
|
||||||
Loop time of 0.134003 on 4 procs for 71 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
1400 406.75788 -13035.822 0.98339747 2583.5703 5 0.26687439 0.4 0.99725016 0.93341809 1.0565516 5.9301165 1379.4348 4125.2065 5.9 0.09503632 0.001937046 4.1048198 0.99327179 0.93335055 1.0582257 2.7473869 0 0 0 0 28000 2 2 7 1898.7054 0
|
|
||||||
1500 403.04712 -13038.033 1.7734093 2587.2539 8 0.26021596 0.4 0.99949004 0.93136824 1.0627109 5.9301165 1379.4348 4021.2913 5.914 0.094465111 0.0018036298 4.1048198 0.99360825 0.93115568 1.0627109 2.7473869 0 0 0 0 30000 2 2 7 4239.5287 0
|
|
||||||
Loop time of 0.124003 on 4 procs for 100 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
1500 403.04712 -13038.033 1.7734093 2587.2539 8 0.26021596 0.4 0.99949004 0.93136824 1.0627109 5.9301165 1379.4348 4021.2913 5.914 0.094465111 0.0018036298 4.1048198 0.99360825 0.93115568 1.0627109 2.7473869 0 0 0 0 30000 2 2 7 4239.5287 0
|
|
||||||
1568 403.04712 -13102.882 1.7734093 2587.2539 8 0.26021596 0.4 0.99949004 0.93136824 1.0627109 5.9301165 1379.4348 4021.2913 5.6575255 0.094465111 0.0018036298 4.1048198 0.99360825 0.93115568 1.0627109 2.7473869 0 0 0 0 31360 2 2 7 4239.5287 0
|
|
||||||
Loop time of 0.135003 on 4 procs for 68 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
1500 403.04712 -13038.033 1.7733495 2587.2539 8 0.26021596 0.4 0.99949004 0.93136824 1.0627109 5.9301165 1379.4348 4021.2913 5.914 0.094465111 0.0018036298 4.1048198 0.99360825 0.93115568 1.0627109 2.7473869 0 0 0 0 30000 2 2 7 4227.4184 0
|
|
||||||
1600 413.63587 -13039.863 0.67705876 2150.6698 5 0.32653141 0.4 1.0004587 0.9309105 1.06525 5.9301165 1379.4348 3981.2133 5.93375 0.090478197 0.0016852749 4.1048198 0.99397193 0.92879897 1.06525 2.7473869 0 0 0 0 32000 2 2 7 822.48747 1
|
|
||||||
Loop time of 0.132003 on 4 procs for 100 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
1600 413.63587 -13039.863 0.67705876 2150.6698 5 0.32653141 0.4 1.0004587 0.9309105 1.06525 5.9301165 1379.4348 3981.2133 5.93375 0.090478197 0.0016852749 4.1048198 0.99397193 0.92879897 1.06525 2.7473869 0 0 0 0 32000 2 2 7 822.48747 1
|
|
||||||
1669 413.63587 -13102.882 0.67705876 2150.6698 5 0.32653141 0.4 1.0004587 0.9309105 1.06525 5.9301165 1379.4348 3981.2133 5.6884362 0.090478197 0.0016852749 4.1048198 0.99397193 0.92879897 1.06525 2.7473869 0 0 0 0 33380 2 2 7 822.48747 1
|
|
||||||
Loop time of 0.135003 on 4 procs for 69 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
1600 413.63587 -13039.863 0.67707996 2150.6698 5 0.32653141 0.4 1.0004587 0.9309105 1.06525 5.9301165 1379.4348 3981.2133 5.93375 0.090478197 0.0016852749 4.1048198 0.99397193 0.92879897 1.06525 2.7473869 0 0 0 0 32000 2 2 7 822.44597 1
|
|
||||||
1700 410.04422 -13040.035 1.0190943 1598.6072 7 0.29206253 0.4 1.0030056 0.92869822 1.0714971 5.9301165 1379.4348 3886.4362 5.9435294 0.093527316 0.0015835313 4.1048198 0.99441728 0.92869822 1.0714971 2.7473869 0 0 0 0 34000 2 2 7 1041.7855 0
|
|
||||||
Loop time of 0.129003 on 4 procs for 100 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
1700 410.04422 -13040.035 1.0190943 1598.6072 7 0.29206253 0.4 1.0030056 0.92869822 1.0714971 5.9301165 1379.4348 3886.4362 5.9435294 0.093527316 0.0015835313 4.1048198 0.99441728 0.92869822 1.0714971 2.7473869 0 0 0 0 34000 2 2 7 1041.7855 0
|
|
||||||
1770 410.04422 -13102.882 1.0190943 1598.6072 7 0.29206253 0.4 1.0030056 0.92869822 1.0714971 5.9301165 1379.4348 3886.4362 5.7084746 0.093527316 0.0015835313 4.1048198 0.99441728 0.92869822 1.0714971 2.7473869 0 0 0 0 35400 2 2 7 1041.7855 0
|
|
||||||
Loop time of 0.145004 on 4 procs for 70 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
1700 410.04422 -13040.035 1.0191295 1598.6072 7 0.29206253 0.4 1.0030056 0.92869822 1.0714971 5.9301165 1379.4348 3886.4362 5.9435294 0.093527316 0.0015835313 4.1048198 0.99441728 0.92869822 1.0714971 2.7473869 0 0 0 0 34000 2 2 7 1041.6898 0
|
|
||||||
1800 413.56333 -13039.872 1.6705072 5357.337 7 0.28802305 0.4 1.0045556 0.92823157 1.0777313 5.9301165 1379.4348 3837.633 5.9366667 0.095545574 0.0014972862 4.1048198 0.99496874 0.92821036 1.0777313 2.7473869 0 0 0 0 36000 2 2 7 7008.708 0
|
|
||||||
Loop time of 0.157003 on 4 procs for 100 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
1800 413.56333 -13039.872 1.6705072 5357.337 7 0.28802305 0.4 1.0045556 0.92823157 1.0777313 5.9301165 1379.4348 3837.633 5.9366667 0.095545574 0.0014972862 4.1048198 0.99496874 0.92821036 1.0777313 2.7473869 0 0 0 0 36000 2 2 7 7008.708 0
|
|
||||||
1868 413.56333 -13102.882 1.6705072 5357.337 7 0.28802305 0.4 1.0045556 0.92823157 1.0777313 5.9301165 1379.4348 3837.633 5.7205567 0.095545574 0.0014972862 4.1048198 0.99496874 0.92821036 1.0777313 2.7473869 0 0 0 0 37360 2 2 7 7008.708 0
|
|
||||||
Loop time of 0.143003 on 4 procs for 68 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
1800 413.56333 -13039.872 1.6703547 5357.337 7 0.28802305 0.4 1.0045556 0.92823157 1.0777313 5.9301165 1379.4348 3837.633 5.9366667 0.095545574 0.0014972862 4.1048198 0.99496874 0.92821036 1.0777313 2.7473869 0 0 0 0 36000 2 2 7 6990.9088 0
|
|
||||||
1900 389.96327 -13036.384 0.50418526 2970.8471 5 0.2897091 0.4 1.0069357 0.92635421 1.083738 5.9301165 1379.4348 3766.0095 5.9652632 0.092376919 0.0014116817 4.1048198 0.9955231 0.92635421 1.083738 2.7473869 0 0 0 0 38000 2 2 7 102.84786 0
|
|
||||||
Loop time of 0.161004 on 4 procs for 100 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
1900 389.96327 -13036.384 0.50418526 2970.8471 5 0.2897091 0.4 1.0069357 0.92635421 1.083738 5.9301165 1379.4348 3766.0095 5.9652632 0.092376919 0.0014116817 4.1048198 0.9955231 0.92635421 1.083738 2.7473869 0 0 0 0 38000 2 2 7 102.84786 0
|
|
||||||
1970 389.96327 -13102.882 0.50418526 2970.8471 5 0.2897091 0.4 1.0069357 0.92635421 1.083738 5.9301165 1379.4348 3766.0095 5.7532995 0.092376919 0.0014116817 4.1048198 0.9955231 0.92635421 1.083738 2.7473869 0 0 0 0 39400 2 2 7 102.84786 0
|
|
||||||
Loop time of 0.221005 on 4 procs for 70 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
1900 389.96327 -13036.384 0.50421483 2970.8471 5 0.2897091 0.4 1.0069357 0.92635421 1.083738 5.9301165 1379.4348 3766.0095 5.9652632 0.092376919 0.0014116817 4.1048198 0.9955231 0.92635421 1.083738 2.7473869 0 0 0 0 38000 2 2 7 102.91265 0
|
|
||||||
2000 397.57054 -13037.793 1.296998 2702.0288 7 0.3344139 0.4 1.0080872 0.9254519 1.089981 5.9301165 1379.4348 3740.858 5.9815 0.094708685 0.0013374572 4.1048198 0.99612398 0.9252451 1.089981 2.7473869 0 0 0 0 40000 2 2 7 2970.9196 1
|
|
||||||
Loop time of 0.125003 on 4 procs for 100 steps with 2354 atoms
|
|
||||||
|
|
||||||
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
|
|
||||||
2000 397.57054 -13037.793 1.296998 2702.0288 7 0.3344139 0.4 1.0080872 0.9254519 1.089981 5.9301165 1379.4348 3740.858 5.9815 0.094708685 0.0013374572 4.1048198 0.99612398 0.9252451 1.089981 2.7473869 0 0 0 0 40000 2 2 7 2970.9196 1
|
|
||||||
2074 397.57054 -13102.882 1.296998 2702.0288 7 0.3344139 0.4 1.0080872 0.9254519 1.089981 5.9301165 1379.4348 3740.858 5.768081 0.094708685 0.0013374572 4.1048198 0.99612398 0.9252451 1.089981 2.7473869 0 0 0 0 41480 2 2 7 2970.9196 1
|
|
||||||
Loop time of 0.138003 on 4 procs for 74 steps with 2354 atoms
|
|
||||||
|
|
||||||
Final hyper stats ...
|
|
||||||
|
|
||||||
Cummulative quantities for fix hyper:
|
|
||||||
hyper time = 40000
|
|
||||||
time boost factor = 4000
|
|
||||||
event timesteps = 2
|
|
||||||
# of atoms in events = 2
|
|
||||||
Quantities for this hyper run:
|
|
||||||
event timesteps = 2
|
|
||||||
# of atoms in events = 2
|
|
||||||
max length of any bond = 4.10482
|
|
||||||
max drift distance of any atom = 2.74739
|
|
||||||
fraction of biased bonds with zero bias = 0.0947087
|
|
||||||
fraction of biased bonds with negative strain = 0.00133746
|
|
||||||
Current quantities:
|
|
||||||
ave bonds/atom = 5.93012
|
|
||||||
Cummulative quantities specific to fix hyper/local:
|
|
||||||
# of new bonds formed = 7
|
|
||||||
max bonds/atom = 12
|
|
||||||
Quantities for this hyper run specific to fix hyper/local:
|
|
||||||
ave boost for all bonds/step = 3740.86
|
|
||||||
ave biased bonds/step = 5.9815
|
|
||||||
ave bias coeff of all bonds = 0.996124
|
|
||||||
min bias coeff of any bond = 0.925245
|
|
||||||
max bias coeff of any bond = 1.08998
|
|
||||||
max dist from my subbox of any non-maxstrain bond ghost atom = 0
|
|
||||||
max dist from my box of any bond ghost atom = 0
|
|
||||||
count of bond ghost neighbors not found on reneighbor steps = 0
|
|
||||||
bias overlaps = 0
|
|
||||||
CPU time for bond builds = 0.00900006
|
|
||||||
Current quantities specific to fix hyper/local:
|
|
||||||
neighbor bonds/bond = 1379.43
|
|
||||||
ave boost coeff for all bonds = 1.00809
|
|
||||||
|
|
||||||
Loop time of 6.39915 on 4 procs for 2000 steps with 2354 atoms
|
|
||||||
|
|
||||||
Performance: 135.018 ns/day, 0.178 hours/ns, 312.542 timesteps/s
|
|
||||||
124.8% CPU use with 4 MPI tasks x no OpenMP threads
|
|
||||||
|
|
||||||
Hyper stats:
|
|
||||||
Dynamics time (%) = 2.82706 (44.1788)
|
|
||||||
Quench time (%) = 2.94107 (45.9603)
|
|
||||||
Other time (%) = 0.559511 (8.74353)
|
|
||||||
|
|
||||||
MPI task timing breakdown:
|
|
||||||
Section | min time | avg time | max time |%varavg| %total
|
|
||||||
---------------------------------------------------------------
|
|
||||||
Pair | 4.2581 | 4.3754 | 4.4861 | 4.4 | 68.37
|
|
||||||
Neigh | 0.165 | 0.171 | 0.178 | 1.1 | 2.67
|
|
||||||
Comm | 0.40501 | 0.50426 | 0.58801 | 9.7 | 7.88
|
|
||||||
Output | 0 | 0.00049996 | 0.0019999 | 0.0 | 0.01
|
|
||||||
Modify | 0.74901 | 0.78851 | 0.82701 | 3.4 | 12.32
|
|
||||||
Other | | 0.5595 | | | 8.74
|
|
||||||
|
|
||||||
Nlocal: 588.5 ave 610 max 570 min
|
|
||||||
Histogram: 1 0 0 0 2 0 0 0 0 1
|
|
||||||
Nghost: 1965.75 ave 1984 max 1944 min
|
|
||||||
Histogram: 1 0 0 0 0 1 1 0 0 1
|
|
||||||
Neighs: 13783.2 ave 14264 max 13396 min
|
|
||||||
Histogram: 1 0 0 1 1 0 0 0 0 1
|
|
||||||
FullNghs: 136894 ave 139463 max 134036 min
|
|
||||||
Histogram: 1 0 0 0 1 0 1 0 0 1
|
|
||||||
|
|
||||||
Total # of neighbors = 547576
|
|
||||||
Ave neighs/atom = 232.615
|
|
||||||
Neighbor list builds = 192
|
|
||||||
Dangerous builds = 0
|
|
||||||
Total wall time: 0:00:08
|
|
||||||
@ -4,7 +4,11 @@
|
|||||||
ifndef KOKKOS_PATH
|
ifndef KOKKOS_PATH
|
||||||
KOKKOS_PATH=../../lib/kokkos
|
KOKKOS_PATH=../../lib/kokkos
|
||||||
endif
|
endif
|
||||||
|
|
||||||
CXXFLAGS=$(CCFLAGS)
|
CXXFLAGS=$(CCFLAGS)
|
||||||
|
ifeq ($(mode),shared)
|
||||||
|
CXXFLAGS += $(SHFLAGS)
|
||||||
|
endif
|
||||||
|
|
||||||
KOKKOS_VERSION_MAJOR = 3
|
KOKKOS_VERSION_MAJOR = 3
|
||||||
KOKKOS_VERSION_MINOR = 1
|
KOKKOS_VERSION_MINOR = 1
|
||||||
@ -14,13 +18,13 @@ KOKKOS_VERSION = $(shell echo $(KOKKOS_VERSION_MAJOR)*10000+$(KOKKOS_VERSION_MIN
|
|||||||
# Options: Cuda,HIP,ROCm,OpenMP,Pthread,Serial
|
# Options: Cuda,HIP,ROCm,OpenMP,Pthread,Serial
|
||||||
KOKKOS_DEVICES ?= "OpenMP"
|
KOKKOS_DEVICES ?= "OpenMP"
|
||||||
#KOKKOS_DEVICES ?= "Pthread"
|
#KOKKOS_DEVICES ?= "Pthread"
|
||||||
# Options:
|
# Options:
|
||||||
# Intel: KNC,KNL,SNB,HSW,BDW,SKX
|
# Intel: KNC,KNL,SNB,HSW,BDW,SKX
|
||||||
# NVIDIA: Kepler,Kepler30,Kepler32,Kepler35,Kepler37,Maxwell,Maxwell50,Maxwell52,Maxwell53,Pascal60,Pascal61,Volta70,Volta72,Turing75
|
# NVIDIA: Kepler,Kepler30,Kepler32,Kepler35,Kepler37,Maxwell,Maxwell50,Maxwell52,Maxwell53,Pascal60,Pascal61,Volta70,Volta72,Turing75
|
||||||
# ARM: ARMv80,ARMv81,ARMv8-ThunderX,ARMv8-TX2
|
# ARM: ARMv80,ARMv81,ARMv8-ThunderX,ARMv8-TX2
|
||||||
# IBM: BGQ,Power7,Power8,Power9
|
# IBM: BGQ,Power7,Power8,Power9
|
||||||
# AMD-GPUS: Vega900,Vega906
|
# AMD-GPUS: Vega900,Vega906
|
||||||
# AMD-CPUS: AMDAVX,Ryzen,EPYC
|
# AMD-CPUS: AMDAVX,EPYC
|
||||||
KOKKOS_ARCH ?= ""
|
KOKKOS_ARCH ?= ""
|
||||||
# Options: yes,no
|
# Options: yes,no
|
||||||
KOKKOS_DEBUG ?= "no"
|
KOKKOS_DEBUG ?= "no"
|
||||||
@ -47,11 +51,15 @@ KOKKOS_HIP_OPTIONS ?= ""
|
|||||||
# Options: enable_async_dispatch
|
# Options: enable_async_dispatch
|
||||||
KOKKOS_HPX_OPTIONS ?= ""
|
KOKKOS_HPX_OPTIONS ?= ""
|
||||||
|
|
||||||
|
# Helper functions for conversion to upper case
|
||||||
|
uppercase_TABLE:=a,A b,B c,C d,D e,E f,F g,G h,H i,I j,J k,K l,L m,M n,N o,O p,P q,Q r,R s,S t,T u,U v,V w,W x,X y,Y z,Z
|
||||||
|
uppercase_internal=$(if $1,$$(subst $(firstword $1),$(call uppercase_internal,$(wordlist 2,$(words $1),$1),$2)),$2)
|
||||||
|
uppercase=$(eval uppercase_RESULT:=$(call uppercase_internal,$(uppercase_TABLE),$1))$(uppercase_RESULT)
|
||||||
# Return a 1 if a string contains a substring and 0 if not
|
# Return a 1 if a string contains a substring and 0 if not
|
||||||
# Note the search string should be without '"'
|
# Note the search string should be without '"'
|
||||||
# Example: $(call kokkos_has_string,"hwloc,librt",hwloc)
|
# Example: $(call kokkos_has_string,"hwloc,librt",hwloc)
|
||||||
# Will return a 1
|
# Will return a 1
|
||||||
kokkos_has_string=$(if $(findstring $2,$1),1,0)
|
kokkos_has_string=$(if $(findstring $(call uppercase,$2),$(call uppercase,$1)),1,0)
|
||||||
# Returns 1 if the path exists, 0 otherwise
|
# Returns 1 if the path exists, 0 otherwise
|
||||||
# Example: $(call kokkos_path_exists,/path/to/file)
|
# Example: $(call kokkos_path_exists,/path/to/file)
|
||||||
# Will return a 1 if /path/to/file exists
|
# Will return a 1 if /path/to/file exists
|
||||||
@ -336,9 +344,9 @@ KOKKOS_INTERNAL_USE_ARCH_NVIDIA := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_KEPLE
|
|||||||
+ $(KOKKOS_INTERNAL_USE_ARCH_KEPLER37) \
|
+ $(KOKKOS_INTERNAL_USE_ARCH_KEPLER37) \
|
||||||
+ $(KOKKOS_INTERNAL_USE_ARCH_PASCAL61) \
|
+ $(KOKKOS_INTERNAL_USE_ARCH_PASCAL61) \
|
||||||
+ $(KOKKOS_INTERNAL_USE_ARCH_PASCAL60) \
|
+ $(KOKKOS_INTERNAL_USE_ARCH_PASCAL60) \
|
||||||
+ $(KOKKOS_INTERNAL_USE_ARCH_VOLTA70) \
|
+ $(KOKKOS_INTERNAL_USE_ARCH_VOLTA70) \
|
||||||
+ $(KOKKOS_INTERNAL_USE_ARCH_VOLTA72) \
|
+ $(KOKKOS_INTERNAL_USE_ARCH_VOLTA72) \
|
||||||
+ $(KOKKOS_INTERNAL_USE_ARCH_TURING75) \
|
+ $(KOKKOS_INTERNAL_USE_ARCH_TURING75) \
|
||||||
+ $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL50) \
|
+ $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL50) \
|
||||||
+ $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL52) \
|
+ $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL52) \
|
||||||
+ $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL53))
|
+ $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL53))
|
||||||
@ -353,9 +361,9 @@ ifeq ($(KOKKOS_INTERNAL_USE_ARCH_NVIDIA), 0)
|
|||||||
+ $(KOKKOS_INTERNAL_USE_ARCH_KEPLER37) \
|
+ $(KOKKOS_INTERNAL_USE_ARCH_KEPLER37) \
|
||||||
+ $(KOKKOS_INTERNAL_USE_ARCH_PASCAL61) \
|
+ $(KOKKOS_INTERNAL_USE_ARCH_PASCAL61) \
|
||||||
+ $(KOKKOS_INTERNAL_USE_ARCH_PASCAL60) \
|
+ $(KOKKOS_INTERNAL_USE_ARCH_PASCAL60) \
|
||||||
+ $(KOKKOS_INTERNAL_USE_ARCH_VOLTA70) \
|
+ $(KOKKOS_INTERNAL_USE_ARCH_VOLTA70) \
|
||||||
+ $(KOKKOS_INTERNAL_USE_ARCH_VOLTA72) \
|
+ $(KOKKOS_INTERNAL_USE_ARCH_VOLTA72) \
|
||||||
+ $(KOKKOS_INTERNAL_USE_ARCH_TURING75) \
|
+ $(KOKKOS_INTERNAL_USE_ARCH_TURING75) \
|
||||||
+ $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL50) \
|
+ $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL50) \
|
||||||
+ $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL52) \
|
+ $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL52) \
|
||||||
+ $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL53))
|
+ $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL53))
|
||||||
@ -386,7 +394,6 @@ KOKKOS_INTERNAL_USE_ARCH_IBM := $(strip $(shell echo $(KOKKOS_INTERNAL_USE_ARCH_
|
|||||||
|
|
||||||
# AMD based.
|
# AMD based.
|
||||||
KOKKOS_INTERNAL_USE_ARCH_AMDAVX := $(call kokkos_has_string,$(KOKKOS_ARCH),AMDAVX)
|
KOKKOS_INTERNAL_USE_ARCH_AMDAVX := $(call kokkos_has_string,$(KOKKOS_ARCH),AMDAVX)
|
||||||
KOKKOS_INTERNAL_USE_ARCH_RYZEN := $(call kokkos_has_string,$(KOKKOS_ARCH),Ryzen)
|
|
||||||
KOKKOS_INTERNAL_USE_ARCH_EPYC := $(call kokkos_has_string,$(KOKKOS_ARCH),EPYC)
|
KOKKOS_INTERNAL_USE_ARCH_EPYC := $(call kokkos_has_string,$(KOKKOS_ARCH),EPYC)
|
||||||
KOKKOS_INTERNAL_USE_ARCH_VEGA900 := $(call kokkos_has_string,$(KOKKOS_ARCH),Vega900)
|
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_VEGA906 := $(call kokkos_has_string,$(KOKKOS_ARCH),Vega906)
|
||||||
@ -466,7 +473,7 @@ tmp := $(call kokkos_append_header,'\#endif')
|
|||||||
tmp := $(call kokkos_append_header,"")
|
tmp := $(call kokkos_append_header,"")
|
||||||
tmp := $(call kokkos_append_header,"\#define KOKKOS_VERSION $(KOKKOS_VERSION)")
|
tmp := $(call kokkos_append_header,"\#define KOKKOS_VERSION $(KOKKOS_VERSION)")
|
||||||
tmp := $(call kokkos_append_header,"")
|
tmp := $(call kokkos_append_header,"")
|
||||||
|
|
||||||
tmp := $(call kokkos_append_header,"/* Execution Spaces */")
|
tmp := $(call kokkos_append_header,"/* Execution Spaces */")
|
||||||
|
|
||||||
ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1)
|
ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1)
|
||||||
@ -1015,8 +1022,8 @@ ifeq ($(KOKKOS_INTERNAL_USE_CUDA_ARCH), 1)
|
|||||||
ifeq ($(KOKKOS_INTERNAL_COMPILER_NVCC), 1)
|
ifeq ($(KOKKOS_INTERNAL_COMPILER_NVCC), 1)
|
||||||
KOKKOS_INTERNAL_CUDA_ARCH_FLAG=-arch
|
KOKKOS_INTERNAL_CUDA_ARCH_FLAG=-arch
|
||||||
else ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 1)
|
else ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 1)
|
||||||
KOKKOS_INTERNAL_CUDA_ARCH_FLAG=--cuda-gpu-arch
|
KOKKOS_INTERNAL_CUDA_ARCH_FLAG=--cuda-gpu-arch
|
||||||
KOKKOS_CXXFLAGS += -x cuda
|
KOKKOS_CXXFLAGS += -x cuda
|
||||||
else
|
else
|
||||||
$(error Makefile.kokkos: CUDA is enabled but the compiler is neither NVCC nor Clang (got version string $(KOKKOS_CXX_VERSION)) )
|
$(error Makefile.kokkos: CUDA is enabled but the compiler is neither NVCC nor Clang (got version string $(KOKKOS_CXX_VERSION)) )
|
||||||
endif
|
endif
|
||||||
|
|||||||
@ -19,13 +19,13 @@
|
|||||||
# 27 entries for a system containing three elements A, B and C
|
# 27 entries for a system containing three elements A, B and C
|
||||||
# These entries are in LAMMPS "metal" units
|
# These entries are in LAMMPS "metal" units
|
||||||
#
|
#
|
||||||
Hf Hf Hf 1 0 1 0 1.011011 0.046511 0.959614 0.959614 55.9421 55.9421 3.85 0.20 2.069563 2.069563 707.53 707.53 0 0 0.008 0 0 0 1 1 1 1 -4 4 0.26152 -0.25918 -4 4 0.26152 -0.25918 0 3.139520d0 0 0.009410d0 0 0.679131 -3.92875 -3.92875 4.83958 4.83958 12 0
|
Hf Hf Hf 1 0 1 0 1.011011 0.046511 0.959614 0.959614 55.9421 55.9421 3.85 0.20 2.069563 2.069563 707.53 707.53 0 0 0.008 0 0 0 1 1 1 1 -4 4 0.26152 -0.25918 -4 4 0.26152 -0.25918 0 3.139520 0 0.009410 0 0.679131 -3.92875 -3.92875 4.83958 4.83958 12 0
|
||||||
Ti Ti Ti 1 0 1 0 1.255016 0.089078 1.226342 1.226342 99.3916 99.3916 3.43 0.05 2.082408 2.082408 546.386 546.386 0 0 0.0084 0 0 0 1 1 1 1 -4 4 2.508854 -2.511416 -4 4 2.508854 -2.511416 0 2.46820415900968 0 0.151351003255176 0 0.873685 0.392632 0.392632 1.78349 1.78349 12 0
|
Ti Ti Ti 1 0 1 0 1.255016 0.089078 1.226342 1.226342 99.3916 99.3916 3.43 0.05 2.082408 2.082408 546.386 546.386 0 0 0.0084 0 0 0 1 1 1 1 -4 4 2.508854 -2.511416 -4 4 2.508854 -2.511416 0 2.46820415900968 0 0.151351003255176 0 0.873685 0.392632 0.392632 1.78349 1.78349 12 0
|
||||||
O O O 1 6.6 1 -0.229 1 2 2.68 2.68 260.893 260.893 2.8 0.2 5.36 5.36 3326.69 3326.69 0 0 0 0 0 0 1 1 1 1 -1.8349 5.5046 0.00148 -0.00112 -1.8349 5.5046 0.00148 -0.00112 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 -3.922011 0.971086 0.971086 12 0
|
O O O 1 6.6 1 -0.229 1 2 2.68 2.68 260.893 260.893 2.8 0.2 5.36 5.36 3326.69 3326.69 0 0 0 0 0 0 1 1 1 1 -1.8349 5.5046 0.00148 -0.00112 -1.8349 5.5046 0.00148 -0.00112 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 -3.922011 0.971086 0.971086 12 0
|
||||||
Cu Cu Cu 1 0 1 0 1 0.140835 1.681711 1.681711 146.987 146.987 3.0 0.05 2.794608 2.794608 952.693 952.693 0.077 0.0095 0 0 0 0 1 1 1 1 -6 2 0.1677645 -0.161007 -6 2 0.1677645 -0.161007 0 5.946437 0 0 0 0.454784 0.72571 0.72571 0.274649 0.274649 12 0
|
Cu Cu Cu 1 0 1 0 1 0.140835 1.681711 1.681711 146.987 146.987 3.0 0.05 2.794608 2.794608 952.693 952.693 0.077 0.0095 0 0 0 0 1 1 1 1 -6 2 0.1677645 -0.161007 -6 2 0.1677645 -0.161007 0 5.946437 0 0 0 0.454784 0.72571 0.72571 0.274649 0.274649 12 0
|
||||||
Si Si Si 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 1.7322 471.18 471.18 2.90 0.10 2.4799 2.4799 1830.8 1830.8 0 0 0 0 0 0 1 1 1 1 -4 4 1.651725 -1.658949 -4 4 1.651725 -1.658949 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 -0.499378 2.999911 2.999911 12 0
|
Si Si Si 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 1.7322 471.18 471.18 2.90 0.10 2.4799 2.4799 1830.8 1830.8 0 0 0 0 0 0 1 1 1 1 -4 4 1.651725 -1.658949 -4 4 1.651725 -1.658949 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 -0.499378 2.999911 2.999911 12 0
|
||||||
Zr Zr Zr 1 0 1 0 1 0 0.929 0.929 39.9454 39.9454 3.8 0.31 1.857 1.857 382.6 382.6 0 0 0 0 0 0 1 1 1 1 -4 4 1.64 -1.5 -4 4 1.64 -1.5 0 3.139520d0 0 0.009410d0 0 0.679131 -3.92875 -3.92875 4.83958 4.83958 12 0
|
Zr Zr Zr 1 0 1 0 1 0 0.929 0.929 39.9454 39.9454 3.8 0.31 1.857 1.857 382.6 382.6 0 0 0 0 0 0 1 1 1 1 -4 4 1.64 -1.5 -4 4 1.64 -1.5 0 3.139520 0 0.009410 0 0.679131 -3.92875 -3.92875 4.83958 4.83958 12 0
|
||||||
U U U 1 0 1 0 4.346966 0.77617 0.832 0.832 162.6 162.6 3.9 0.15 1.835 1.835 795.6 795.6 0 0 0 0 0 0 1 1 1 1 -4 4 2 -2 -4 4 2 -2 0 3.139520d0 0 0.009410d0 0 0.679131 -3.92875 -3.92875 4.83958 4.83958 12 0
|
U U U 1 0 1 0 4.346966 0.77617 0.832 0.832 162.6 162.6 3.9 0.15 1.835 1.835 795.6 795.6 0 0 0 0 0 0 1 1 1 1 -4 4 2 -2 -4 4 2 -2 0 3.139520 0 0.009410 0 0.679131 -3.92875 -3.92875 4.83958 4.83958 12 0
|
||||||
#
|
#
|
||||||
Si O O 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 2.68 471.18 260.893 2.80 0.25 2.4799 5.36 1830.8 3326.69 0 0 0 109.47 0.3122 0 1 1 1 1 -4 4 1.651725 -1.658949 -1.8349 5.5046 0.00148 -0.00112 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 -3.922011 2.999911 0.971086 12 0
|
Si O O 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 2.68 471.18 260.893 2.80 0.25 2.4799 5.36 1830.8 3326.69 0 0 0 109.47 0.3122 0 1 1 1 1 -4 4 1.651725 -1.658949 -1.8349 5.5046 0.00148 -0.00112 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 -3.922011 2.999911 0.971086 12 0
|
||||||
O Si Si 1 6.6 1 -0.229 1 2 2.68 1.7322 260.893 471.18 2.80 0.25 5.36 2.4799 3326.69 1830.8 0 0 0 143.73 2.6 0 1 1 1 1 -1.8349 5.5046 0.00148 -0.00112 -4 4 1.651725 -1.658949 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 -0.499378 0.971086 2.999911 12 0
|
O Si Si 1 6.6 1 -0.229 1 2 2.68 1.7322 260.893 471.18 2.80 0.25 5.36 2.4799 3326.69 1830.8 0 0 0 143.73 2.6 0 1 1 1 1 -1.8349 5.5046 0.00148 -0.00112 -4 4 1.651725 -1.658949 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 -0.499378 0.971086 2.999911 12 0
|
||||||
|
|||||||
2
src/.gitignore
vendored
2
src/.gitignore
vendored
@ -645,6 +645,8 @@
|
|||||||
/fix_oneway.h
|
/fix_oneway.h
|
||||||
/fix_orient_bcc.cpp
|
/fix_orient_bcc.cpp
|
||||||
/fix_orient_bcc.h
|
/fix_orient_bcc.h
|
||||||
|
/fix_orient_eco.cpp
|
||||||
|
/fix_orient_eco.h
|
||||||
/fix_orient_fcc.cpp
|
/fix_orient_fcc.cpp
|
||||||
/fix_orient_fcc.h
|
/fix_orient_fcc.h
|
||||||
/fix_peri_neigh.cpp
|
/fix_peri_neigh.cpp
|
||||||
|
|||||||
@ -224,7 +224,7 @@ double BondClass2::single(int type, double rsq, int /*i*/, int /*j*/, double &ff
|
|||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
void *BondClass2::extract( char *str, int &dim )
|
void *BondClass2::extract(const char *str, int &dim)
|
||||||
{
|
{
|
||||||
dim = 1;
|
dim = 1;
|
||||||
if (strcmp(str,"r0")==0) return (void*) r0;
|
if (strcmp(str,"r0")==0) return (void*) r0;
|
||||||
|
|||||||
@ -35,7 +35,7 @@ class BondClass2 : public Bond {
|
|||||||
virtual void read_restart(FILE *);
|
virtual void read_restart(FILE *);
|
||||||
void write_data(FILE *);
|
void write_data(FILE *);
|
||||||
double single(int, double, int, int, double &);
|
double single(int, double, int, int, double &);
|
||||||
virtual void *extract(char *, int &);
|
virtual void *extract(const char *, int &);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
double *r0,*k2,*k3,*k4;
|
double *r0,*k2,*k3,*k4;
|
||||||
|
|||||||
@ -69,6 +69,7 @@ if (test $1 = "DIPOLE") then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if (test $1 = "GRANULAR") then
|
if (test $1 = "GRANULAR") then
|
||||||
|
depend KOKKOS
|
||||||
depend USER-OMP
|
depend USER-OMP
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@ -31,11 +31,11 @@
|
|||||||
#include "domain.h"
|
#include "domain.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
#include "suffix.h"
|
#include "suffix.h"
|
||||||
|
#include "tokenizer.h"
|
||||||
|
#include "potential_file_reader.h"
|
||||||
|
|
||||||
using namespace LAMMPS_NS;
|
using namespace LAMMPS_NS;
|
||||||
|
|
||||||
#define MAXLINE 1024
|
|
||||||
|
|
||||||
// External functions from cuda library for atom decomposition
|
// External functions from cuda library for atom decomposition
|
||||||
|
|
||||||
int eam_alloy_gpu_init(const int ntypes, double host_cutforcesq,
|
int eam_alloy_gpu_init(const int ntypes, double host_cutforcesq,
|
||||||
@ -369,94 +369,107 @@ void PairEAMAlloyGPU::read_file(char *filename)
|
|||||||
{
|
{
|
||||||
Setfl *file = setfl;
|
Setfl *file = setfl;
|
||||||
|
|
||||||
// open potential file
|
// read potential file
|
||||||
|
if(comm->me == 0) {
|
||||||
|
PotentialFileReader reader(lmp, filename, "EAM");
|
||||||
|
|
||||||
int me = comm->me;
|
try {
|
||||||
FILE *fptr;
|
reader.skip_line();
|
||||||
char line[MAXLINE];
|
reader.skip_line();
|
||||||
|
reader.skip_line();
|
||||||
|
|
||||||
if (me == 0) {
|
// extract element names from nelements line
|
||||||
fptr = fopen(filename,"r");
|
ValueTokenizer values = reader.next_values(1);
|
||||||
if (fptr == NULL) {
|
file->nelements = values.next_int();
|
||||||
char str[128];
|
|
||||||
snprintf(str,128,"Cannot open EAM potential file %s",filename);
|
if (values.count() != file->nelements + 1)
|
||||||
error->one(FLERR,str);
|
error->one(FLERR,"Incorrect element names in EAM potential file");
|
||||||
|
|
||||||
|
file->elements = new char*[file->nelements];
|
||||||
|
for (int i = 0; i < file->nelements; i++) {
|
||||||
|
const std::string word = values.next_string();
|
||||||
|
const int n = word.length() + 1;
|
||||||
|
file->elements[i] = new char[n];
|
||||||
|
strcpy(file->elements[i], word.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
values = reader.next_values(5);
|
||||||
|
file->nrho = values.next_int();
|
||||||
|
file->drho = values.next_double();
|
||||||
|
file->nr = values.next_int();
|
||||||
|
file->dr = values.next_double();
|
||||||
|
file->cut = values.next_double();
|
||||||
|
|
||||||
|
if ((file->nrho <= 0) || (file->nr <= 0) || (file->dr <= 0.0))
|
||||||
|
error->one(FLERR,"Invalid EAM potential file");
|
||||||
|
|
||||||
|
memory->create(file->mass, file->nelements, "pair:mass");
|
||||||
|
memory->create(file->frho, file->nelements, file->nrho + 1, "pair:frho");
|
||||||
|
memory->create(file->rhor, file->nelements, file->nr + 1, "pair:rhor");
|
||||||
|
memory->create(file->z2r, file->nelements, file->nelements, file->nr + 1, "pair:z2r");
|
||||||
|
|
||||||
|
for (int i = 0; i < file->nelements; i++) {
|
||||||
|
values = reader.next_values(2);
|
||||||
|
values.next_int(); // ignore
|
||||||
|
file->mass[i] = values.next_double();
|
||||||
|
|
||||||
|
reader.next_dvector(&file->frho[i][1], file->nrho);
|
||||||
|
reader.next_dvector(&file->rhor[i][1], file->nr);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < file->nelements; i++) {
|
||||||
|
for (int j = 0; j <= i; j++) {
|
||||||
|
reader.next_dvector(&file->z2r[i][j][1], file->nr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (TokenizerException & e) {
|
||||||
|
error->one(FLERR, e.what());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// read and broadcast header
|
// broadcast potential information
|
||||||
// extract element names from nelements line
|
MPI_Bcast(&file->nelements, 1, MPI_INT, 0, world);
|
||||||
|
|
||||||
int n;
|
MPI_Bcast(&file->nrho, 1, MPI_INT, 0, world);
|
||||||
if (me == 0) {
|
MPI_Bcast(&file->drho, 1, MPI_DOUBLE, 0, world);
|
||||||
utils::sfgets(FLERR,line,MAXLINE,fptr,filename,error);
|
MPI_Bcast(&file->nr, 1, MPI_INT, 0, world);
|
||||||
utils::sfgets(FLERR,line,MAXLINE,fptr,filename,error);
|
MPI_Bcast(&file->dr, 1, MPI_DOUBLE, 0, world);
|
||||||
utils::sfgets(FLERR,line,MAXLINE,fptr,filename,error);
|
MPI_Bcast(&file->cut, 1, MPI_DOUBLE, 0, world);
|
||||||
utils::sfgets(FLERR,line,MAXLINE,fptr,filename,error);
|
|
||||||
n = strlen(line) + 1;
|
// allocate memory on other procs
|
||||||
|
if (comm->me != 0) {
|
||||||
|
file->elements = new char*[file->nelements];
|
||||||
|
for (int i = 0; i < file->nelements; i++) file->elements[i] = nullptr;
|
||||||
|
memory->create(file->mass, file->nelements, "pair:mass");
|
||||||
|
memory->create(file->frho, file->nelements, file->nrho + 1, "pair:frho");
|
||||||
|
memory->create(file->rhor, file->nelements, file->nr + 1, "pair:rhor");
|
||||||
|
memory->create(file->z2r, file->nelements, file->nelements, file->nr + 1, "pair:z2r");
|
||||||
}
|
}
|
||||||
MPI_Bcast(&n,1,MPI_INT,0,world);
|
|
||||||
MPI_Bcast(line,n,MPI_CHAR,0,world);
|
|
||||||
|
|
||||||
sscanf(line,"%d",&file->nelements);
|
// broadcast file->elements string array
|
||||||
int nwords = atom->count_words(line);
|
|
||||||
if (nwords != file->nelements + 1)
|
|
||||||
error->all(FLERR,"Incorrect element names in EAM potential file");
|
|
||||||
|
|
||||||
char **words = new char*[file->nelements+1];
|
|
||||||
nwords = 0;
|
|
||||||
strtok(line," \t\n\r\f");
|
|
||||||
while ( (words[nwords++] = strtok(NULL," \t\n\r\f")) ) continue;
|
|
||||||
|
|
||||||
file->elements = new char*[file->nelements];
|
|
||||||
for (int i = 0; i < file->nelements; i++) {
|
for (int i = 0; i < file->nelements; i++) {
|
||||||
n = strlen(words[i]) + 1;
|
int n;
|
||||||
file->elements[i] = new char[n];
|
if (comm->me == 0) n = strlen(file->elements[i]) + 1;
|
||||||
strcpy(file->elements[i],words[i]);
|
MPI_Bcast(&n, 1, MPI_INT, 0, world);
|
||||||
}
|
if (comm->me != 0) file->elements[i] = new char[n];
|
||||||
delete [] words;
|
MPI_Bcast(file->elements[i], n, MPI_CHAR, 0, world);
|
||||||
|
|
||||||
if (me == 0) {
|
|
||||||
utils::sfgets(FLERR,line,MAXLINE,fptr,filename,error);
|
|
||||||
sscanf(line,"%d %lg %d %lg %lg",
|
|
||||||
&file->nrho,&file->drho,&file->nr,&file->dr,&file->cut);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MPI_Bcast(&file->nrho,1,MPI_INT,0,world);
|
// broadcast file->mass, frho, rhor
|
||||||
MPI_Bcast(&file->drho,1,MPI_DOUBLE,0,world);
|
for (int i = 0; i < file->nelements; i++) {
|
||||||
MPI_Bcast(&file->nr,1,MPI_INT,0,world);
|
MPI_Bcast(&file->mass[i], 1, MPI_DOUBLE, 0, world);
|
||||||
MPI_Bcast(&file->dr,1,MPI_DOUBLE,0,world);
|
MPI_Bcast(&file->frho[i][1], file->nrho, MPI_DOUBLE, 0, world);
|
||||||
MPI_Bcast(&file->cut,1,MPI_DOUBLE,0,world);
|
MPI_Bcast(&file->rhor[i][1], file->nr, MPI_DOUBLE, 0, world);
|
||||||
|
}
|
||||||
|
|
||||||
file->mass = new double[file->nelements];
|
// broadcast file->z2r
|
||||||
memory->create(file->frho,file->nelements,file->nrho+1,"pair:frho");
|
for (int i = 0; i < file->nelements; i++) {
|
||||||
memory->create(file->rhor,file->nelements,file->nr+1,"pair:rhor");
|
for (int j = 0; j <= i; j++) {
|
||||||
memory->create(file->z2r,file->nelements,file->nelements,file->nr+1,
|
MPI_Bcast(&file->z2r[i][j][1], file->nr, MPI_DOUBLE, 0, world);
|
||||||
"pair:z2r");
|
|
||||||
|
|
||||||
int i,j,tmp;
|
|
||||||
for (i = 0; i < file->nelements; i++) {
|
|
||||||
if (me == 0) {
|
|
||||||
utils::sfgets(FLERR,line,MAXLINE,fptr,filename,error);
|
|
||||||
sscanf(line,"%d %lg",&tmp,&file->mass[i]);
|
|
||||||
}
|
}
|
||||||
MPI_Bcast(&file->mass[i],1,MPI_DOUBLE,0,world);
|
|
||||||
|
|
||||||
if (me == 0) grab(fptr,file->nrho,&file->frho[i][1]);
|
|
||||||
MPI_Bcast(&file->frho[i][1],file->nrho,MPI_DOUBLE,0,world);
|
|
||||||
if (me == 0) grab(fptr,file->nr,&file->rhor[i][1]);
|
|
||||||
MPI_Bcast(&file->rhor[i][1],file->nr,MPI_DOUBLE,0,world);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < file->nelements; i++)
|
|
||||||
for (j = 0; j <= i; j++) {
|
|
||||||
if (me == 0) grab(fptr,file->nr,&file->z2r[i][j][1]);
|
|
||||||
MPI_Bcast(&file->z2r[i][j][1],file->nr,MPI_DOUBLE,0,world);
|
|
||||||
}
|
|
||||||
|
|
||||||
// close the potential file
|
|
||||||
|
|
||||||
if (me == 0) fclose(fptr);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
|
|||||||
@ -30,11 +30,12 @@
|
|||||||
#include "gpu_extra.h"
|
#include "gpu_extra.h"
|
||||||
#include "domain.h"
|
#include "domain.h"
|
||||||
#include "suffix.h"
|
#include "suffix.h"
|
||||||
|
#include "utils.h"
|
||||||
|
#include "tokenizer.h"
|
||||||
|
#include "potential_file_reader.h"
|
||||||
|
|
||||||
using namespace LAMMPS_NS;
|
using namespace LAMMPS_NS;
|
||||||
|
|
||||||
#define MAXLINE 1024
|
|
||||||
|
|
||||||
// External functions from cuda library for atom decomposition
|
// External functions from cuda library for atom decomposition
|
||||||
|
|
||||||
int eam_fs_gpu_init(const int ntypes, double host_cutforcesq,
|
int eam_fs_gpu_init(const int ntypes, double host_cutforcesq,
|
||||||
@ -368,99 +369,113 @@ void PairEAMFSGPU::read_file(char *filename)
|
|||||||
{
|
{
|
||||||
Fs *file = fs;
|
Fs *file = fs;
|
||||||
|
|
||||||
// open potential file
|
// read potential file
|
||||||
|
if(comm->me == 0) {
|
||||||
|
PotentialFileReader reader(lmp, filename, "EAM");
|
||||||
|
|
||||||
int me = comm->me;
|
try {
|
||||||
FILE *fptr;
|
reader.skip_line();
|
||||||
char line[MAXLINE];
|
reader.skip_line();
|
||||||
|
reader.skip_line();
|
||||||
|
|
||||||
if (me == 0) {
|
// extract element names from nelements line
|
||||||
fptr = force->open_potential(filename);
|
ValueTokenizer values = reader.next_values(1);
|
||||||
if (fptr == NULL) {
|
file->nelements = values.next_int();
|
||||||
char str[128];
|
|
||||||
snprintf(str,128,"Cannot open EAM potential file %s",filename);
|
if (values.count() != file->nelements + 1)
|
||||||
error->one(FLERR,str);
|
error->one(FLERR,"Incorrect element names in EAM potential file");
|
||||||
|
|
||||||
|
file->elements = new char*[file->nelements];
|
||||||
|
for (int i = 0; i < file->nelements; i++) {
|
||||||
|
const std::string word = values.next_string();
|
||||||
|
const int n = word.length() + 1;
|
||||||
|
file->elements[i] = new char[n];
|
||||||
|
strcpy(file->elements[i], word.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
values = reader.next_values(5);
|
||||||
|
file->nrho = values.next_int();
|
||||||
|
file->drho = values.next_double();
|
||||||
|
file->nr = values.next_int();
|
||||||
|
file->dr = values.next_double();
|
||||||
|
file->cut = values.next_double();
|
||||||
|
|
||||||
|
if ((file->nrho <= 0) || (file->nr <= 0) || (file->dr <= 0.0))
|
||||||
|
error->one(FLERR,"Invalid EAM potential file");
|
||||||
|
|
||||||
|
memory->create(file->mass, file->nelements, "pair:mass");
|
||||||
|
memory->create(file->frho, file->nelements, file->nrho + 1, "pair:frho");
|
||||||
|
memory->create(file->rhor, file->nelements, file->nelements, file->nr + 1, "pair:rhor");
|
||||||
|
memory->create(file->z2r, file->nelements, file->nelements, file->nr + 1, "pair:z2r");
|
||||||
|
|
||||||
|
for (int i = 0; i < file->nelements; i++) {
|
||||||
|
values = reader.next_values(2);
|
||||||
|
values.next_int(); // ignore
|
||||||
|
file->mass[i] = values.next_double();
|
||||||
|
|
||||||
|
reader.next_dvector(&file->frho[i][1], file->nrho);
|
||||||
|
|
||||||
|
for (int j = 0; j < file->nelements; j++) {
|
||||||
|
reader.next_dvector(&file->rhor[i][j][1], file->nr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < file->nelements; i++) {
|
||||||
|
for (int j = 0; j <= i; j++) {
|
||||||
|
reader.next_dvector(&file->z2r[i][j][1], file->nr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (TokenizerException & e) {
|
||||||
|
error->one(FLERR, e.what());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// read and broadcast header
|
// broadcast potential information
|
||||||
// extract element names from nelements line
|
MPI_Bcast(&file->nelements, 1, MPI_INT, 0, world);
|
||||||
|
|
||||||
int n;
|
MPI_Bcast(&file->nrho, 1, MPI_INT, 0, world);
|
||||||
if (me == 0) {
|
MPI_Bcast(&file->drho, 1, MPI_DOUBLE, 0, world);
|
||||||
fgets(line,MAXLINE,fptr);
|
MPI_Bcast(&file->nr, 1, MPI_INT, 0, world);
|
||||||
fgets(line,MAXLINE,fptr);
|
MPI_Bcast(&file->dr, 1, MPI_DOUBLE, 0, world);
|
||||||
fgets(line,MAXLINE,fptr);
|
MPI_Bcast(&file->cut, 1, MPI_DOUBLE, 0, world);
|
||||||
fgets(line,MAXLINE,fptr);
|
|
||||||
n = strlen(line) + 1;
|
// allocate memory on other procs
|
||||||
|
if (comm->me != 0) {
|
||||||
|
file->elements = new char*[file->nelements];
|
||||||
|
for (int i = 0; i < file->nelements; i++) file->elements[i] = nullptr;
|
||||||
|
memory->create(file->mass, file->nelements, "pair:mass");
|
||||||
|
memory->create(file->frho, file->nelements, file->nrho + 1, "pair:frho");
|
||||||
|
memory->create(file->rhor, file->nelements, file->nelements, file->nr + 1, "pair:rhor");
|
||||||
|
memory->create(file->z2r, file->nelements, file->nelements, file->nr + 1, "pair:z2r");
|
||||||
}
|
}
|
||||||
MPI_Bcast(&n,1,MPI_INT,0,world);
|
|
||||||
MPI_Bcast(line,n,MPI_CHAR,0,world);
|
|
||||||
|
|
||||||
sscanf(line,"%d",&file->nelements);
|
// broadcast file->elements string array
|
||||||
int nwords = atom->count_words(line);
|
|
||||||
if (nwords != file->nelements + 1)
|
|
||||||
error->all(FLERR,"Incorrect element names in EAM potential file");
|
|
||||||
|
|
||||||
char **words = new char*[file->nelements+1];
|
|
||||||
nwords = 0;
|
|
||||||
strtok(line," \t\n\r\f");
|
|
||||||
while ((words[nwords++] = strtok(NULL," \t\n\r\f"))) continue;
|
|
||||||
|
|
||||||
file->elements = new char*[file->nelements];
|
|
||||||
for (int i = 0; i < file->nelements; i++) {
|
for (int i = 0; i < file->nelements; i++) {
|
||||||
n = strlen(words[i]) + 1;
|
int n;
|
||||||
file->elements[i] = new char[n];
|
if (comm->me == 0) n = strlen(file->elements[i]) + 1;
|
||||||
strcpy(file->elements[i],words[i]);
|
MPI_Bcast(&n, 1, MPI_INT, 0, world);
|
||||||
}
|
if (comm->me != 0) file->elements[i] = new char[n];
|
||||||
delete [] words;
|
MPI_Bcast(file->elements[i], n, MPI_CHAR, 0, world);
|
||||||
|
|
||||||
if (me == 0) {
|
|
||||||
fgets(line,MAXLINE,fptr);
|
|
||||||
sscanf(line,"%d %lg %d %lg %lg",
|
|
||||||
&file->nrho,&file->drho,&file->nr,&file->dr,&file->cut);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MPI_Bcast(&file->nrho,1,MPI_INT,0,world);
|
// broadcast file->mass, frho, rhor
|
||||||
MPI_Bcast(&file->drho,1,MPI_DOUBLE,0,world);
|
for (int i = 0; i < file->nelements; i++) {
|
||||||
MPI_Bcast(&file->nr,1,MPI_INT,0,world);
|
MPI_Bcast(&file->mass[i], 1, MPI_DOUBLE, 0, world);
|
||||||
MPI_Bcast(&file->dr,1,MPI_DOUBLE,0,world);
|
MPI_Bcast(&file->frho[i][1], file->nrho, MPI_DOUBLE, 0, world);
|
||||||
MPI_Bcast(&file->cut,1,MPI_DOUBLE,0,world);
|
|
||||||
|
|
||||||
file->mass = new double[file->nelements];
|
for (int j = 0; j < file->nelements; j++) {
|
||||||
memory->create(file->frho,file->nelements,file->nrho+1,
|
MPI_Bcast(&file->rhor[i][j][1], file->nr, MPI_DOUBLE, 0, world);
|
||||||
"pair:frho");
|
|
||||||
memory->create(file->rhor,file->nelements,file->nelements,
|
|
||||||
file->nr+1,"pair:rhor");
|
|
||||||
memory->create(file->z2r,file->nelements,file->nelements,
|
|
||||||
file->nr+1,"pair:z2r");
|
|
||||||
|
|
||||||
int i,j,tmp;
|
|
||||||
for (i = 0; i < file->nelements; i++) {
|
|
||||||
if (me == 0) {
|
|
||||||
fgets(line,MAXLINE,fptr);
|
|
||||||
sscanf(line,"%d %lg",&tmp,&file->mass[i]);
|
|
||||||
}
|
|
||||||
MPI_Bcast(&file->mass[i],1,MPI_DOUBLE,0,world);
|
|
||||||
|
|
||||||
if (me == 0) grab(fptr,file->nrho,&file->frho[i][1]);
|
|
||||||
MPI_Bcast(&file->frho[i][1],file->nrho,MPI_DOUBLE,0,world);
|
|
||||||
|
|
||||||
for (j = 0; j < file->nelements; j++) {
|
|
||||||
if (me == 0) grab(fptr,file->nr,&file->rhor[i][j][1]);
|
|
||||||
MPI_Bcast(&file->rhor[i][j][1],file->nr,MPI_DOUBLE,0,world);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < file->nelements; i++)
|
// broadcast file->z2r
|
||||||
for (j = 0; j <= i; j++) {
|
for (int i = 0; i < file->nelements; i++) {
|
||||||
if (me == 0) grab(fptr,file->nr,&file->z2r[i][j][1]);
|
for (int j = 0; j <= i; j++) {
|
||||||
MPI_Bcast(&file->z2r[i][j][1],file->nr,MPI_DOUBLE,0,world);
|
MPI_Bcast(&file->z2r[i][j][1], file->nr, MPI_DOUBLE, 0, world);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// close the potential file
|
|
||||||
|
|
||||||
if (me == 0) fclose(fptr);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
|
|||||||
@ -370,7 +370,7 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
vshear = force->numeric(FLERR,arg[iarg+2]);
|
vshear = force->numeric(FLERR,arg[iarg+2]);
|
||||||
wshear = 1;
|
wshear = 1;
|
||||||
iarg += 3;
|
iarg += 3;
|
||||||
} else if (strcmp(arg[iarg],"store_contacts") == 0) {
|
} else if (strcmp(arg[iarg],"contacts") == 0) {
|
||||||
peratom_flag = 1;
|
peratom_flag = 1;
|
||||||
size_peratom_cols = 8;
|
size_peratom_cols = 8;
|
||||||
peratom_freq = 1;
|
peratom_freq = 1;
|
||||||
@ -426,10 +426,7 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (peratom_flag) {
|
if (peratom_flag) {
|
||||||
int nlocal = atom->nlocal;
|
clear_stored_contacts();
|
||||||
for (int i = 0; i < nlocal; i++)
|
|
||||||
for (int m = 0; m < size_peratom_cols; m++)
|
|
||||||
array_atom[i][m] = 0.0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
time_origin = update->ntimestep;
|
time_origin = update->ntimestep;
|
||||||
@ -596,6 +593,10 @@ void FixWallGran::post_force(int /*vflag*/)
|
|||||||
|
|
||||||
rwall = 0.0;
|
rwall = 0.0;
|
||||||
|
|
||||||
|
if (peratom_flag) {
|
||||||
|
clear_stored_contacts();
|
||||||
|
}
|
||||||
|
|
||||||
for (int i = 0; i < nlocal; i++) {
|
for (int i = 0; i < nlocal; i++) {
|
||||||
if (mask[i] & groupbit) {
|
if (mask[i] & groupbit) {
|
||||||
|
|
||||||
@ -668,7 +669,7 @@ void FixWallGran::post_force(int /*vflag*/)
|
|||||||
|
|
||||||
// store contact info
|
// store contact info
|
||||||
if (peratom_flag) {
|
if (peratom_flag) {
|
||||||
array_atom[i][0] = (double)atom->tag[i];
|
array_atom[i][0] = 1.0;
|
||||||
array_atom[i][4] = x[i][0] - dx;
|
array_atom[i][4] = x[i][0] - dx;
|
||||||
array_atom[i][5] = x[i][1] - dy;
|
array_atom[i][5] = x[i][1] - dy;
|
||||||
array_atom[i][6] = x[i][2] - dz;
|
array_atom[i][6] = x[i][2] - dz;
|
||||||
@ -702,6 +703,15 @@ void FixWallGran::post_force(int /*vflag*/)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FixWallGran::clear_stored_contacts() {
|
||||||
|
const int nlocal = atom->nlocal;
|
||||||
|
for (int i = 0; i < nlocal; i++) {
|
||||||
|
for (int m = 0; m < size_peratom_cols; m++) {
|
||||||
|
array_atom[i][m] = 0.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
void FixWallGran::post_force_respa(int vflag, int ilevel, int /*iloop*/)
|
void FixWallGran::post_force_respa(int vflag, int ilevel, int /*iloop*/)
|
||||||
|
|||||||
@ -110,6 +110,8 @@ class FixWallGran : public Fix {
|
|||||||
// store particle interactions
|
// store particle interactions
|
||||||
|
|
||||||
int store;
|
int store;
|
||||||
|
|
||||||
|
void clear_stored_contacts();
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -178,6 +178,10 @@ void FixWallGranRegion::post_force(int /*vflag*/)
|
|||||||
region->set_velocity();
|
region->set_velocity();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (peratom_flag) {
|
||||||
|
clear_stored_contacts();
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 0; i < nlocal; i++) {
|
for (i = 0; i < nlocal; i++) {
|
||||||
if (mask[i] & groupbit) {
|
if (mask[i] & groupbit) {
|
||||||
if (!region->match(x[i][0],x[i][1],x[i][2])) continue;
|
if (!region->match(x[i][0],x[i][1],x[i][2])) continue;
|
||||||
|
|||||||
@ -57,6 +57,8 @@
|
|||||||
------------------------------------------------------------------------- */
|
------------------------------------------------------------------------- */
|
||||||
|
|
||||||
#include "kim_init.h"
|
#include "kim_init.h"
|
||||||
|
#include "fix_store_kim.h"
|
||||||
|
#include "kim_units.h"
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
@ -71,8 +73,8 @@
|
|||||||
#include "input.h"
|
#include "input.h"
|
||||||
#include "variable.h"
|
#include "variable.h"
|
||||||
#include "citeme.h"
|
#include "citeme.h"
|
||||||
#include "fix_store_kim.h"
|
#include "utils.h"
|
||||||
#include "kim_units.h"
|
#include "fmt/format.h"
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#include "KIM_SimulatorHeaders.h"
|
#include "KIM_SimulatorHeaders.h"
|
||||||
@ -275,7 +277,7 @@ void KimInit::determine_model_type_and_units(char * model_name,
|
|||||||
std::string mesg("Incompatible units for KIM Simulator Model, "
|
std::string mesg("Incompatible units for KIM Simulator Model, "
|
||||||
"required units = ");
|
"required units = ");
|
||||||
mesg += *model_units;
|
mesg += *model_units;
|
||||||
error->all(FLERR,mesg.c_str());
|
error->all(FLERR,mesg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -302,7 +304,7 @@ void KimInit::do_init(char *model_name, char *user_units, char *model_units, KIM
|
|||||||
fix_store->setptr("model_units", (void *) model_units);
|
fix_store->setptr("model_units", (void *) model_units);
|
||||||
|
|
||||||
// Begin output to log file
|
// Begin output to log file
|
||||||
kim_init_log_delimiter("begin");
|
input->write_echo("#=== BEGIN kim-init ==========================================\n");
|
||||||
|
|
||||||
int kimerror;
|
int kimerror;
|
||||||
KIM_SimulatorModel * simulatorModel;
|
KIM_SimulatorModel * simulatorModel;
|
||||||
@ -328,8 +330,7 @@ void KimInit::do_init(char *model_name, char *user_units, char *model_units, KIM
|
|||||||
mesg += "\n";
|
mesg += "\n";
|
||||||
mesg += "#\n";
|
mesg += "#\n";
|
||||||
|
|
||||||
if (screen) fputs(mesg.c_str(),screen);
|
utils::logmesg(lmp,mesg);
|
||||||
if (logfile) fputs(mesg.c_str(),logfile);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fix_store->setptr("simulator_model", (void *) simulatorModel);
|
fix_store->setptr("simulator_model", (void *) simulatorModel);
|
||||||
@ -346,7 +347,7 @@ void KimInit::do_init(char *model_name, char *user_units, char *model_units, KIM
|
|||||||
|
|
||||||
std::string cmd("units ");
|
std::string cmd("units ");
|
||||||
cmd += model_units;
|
cmd += model_units;
|
||||||
input->one(cmd.c_str());
|
input->one(cmd);
|
||||||
|
|
||||||
if (model_type == SM) {
|
if (model_type == SM) {
|
||||||
int sim_fields, sim_lines;
|
int sim_fields, sim_lines;
|
||||||
@ -423,37 +424,14 @@ void KimInit::do_init(char *model_name, char *user_units, char *model_units, KIM
|
|||||||
mesg += "\n";
|
mesg += "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else mesg += "No mutable parameters. \n";
|
||||||
mesg += "No mutable parameters. \n";
|
|
||||||
|
|
||||||
KIM_Model_Destroy(&pkim);
|
KIM_Model_Destroy(&pkim);
|
||||||
|
input->write_echo(mesg);
|
||||||
if (comm->me == 0)
|
|
||||||
{
|
|
||||||
input->write_echo(mesg.c_str());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// End output to log file
|
// End output to log file
|
||||||
kim_init_log_delimiter("end");
|
input->write_echo("#=== END kim-init ============================================\n\n");
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
void KimInit::kim_init_log_delimiter(std::string const &begin_end) const
|
|
||||||
{
|
|
||||||
if (comm->me == 0) {
|
|
||||||
std::string mesg;
|
|
||||||
if (begin_end == "begin")
|
|
||||||
mesg =
|
|
||||||
"#=== BEGIN kim-init ==========================================\n";
|
|
||||||
else if (begin_end == "end")
|
|
||||||
mesg =
|
|
||||||
"#=== END kim-init ============================================\n\n";
|
|
||||||
|
|
||||||
input->write_echo(mesg.c_str());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
@ -493,14 +471,8 @@ void KimInit::do_variables(char *user_units, char *model_units)
|
|||||||
(char *)"efield",
|
(char *)"efield",
|
||||||
(char *)"density"};
|
(char *)"density"};
|
||||||
|
|
||||||
if (comm->me == 0) {
|
input->write_echo(fmt::format("# Conversion factors from {} to {}:\n",
|
||||||
std::string mesg("# Conversion factors from ");
|
from,to));
|
||||||
mesg += from;
|
|
||||||
mesg += " to ";
|
|
||||||
mesg += to;
|
|
||||||
mesg += ":\n";
|
|
||||||
input->write_echo(mesg.c_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < nunits; i++) {
|
for (int i = 0; i < nunits; i++) {
|
||||||
var_str = std::string("_u_") + std::string(units[i]);
|
var_str = std::string("_u_") + std::string(units[i]);
|
||||||
@ -514,58 +486,43 @@ void KimInit::do_variables(char *user_units, char *model_units)
|
|||||||
from,
|
from,
|
||||||
to,
|
to,
|
||||||
conversion_factor);
|
conversion_factor);
|
||||||
if (ier != 0) {
|
if (ier != 0)
|
||||||
std::string err = std::string("Unable to obtain conversion factor: ") +
|
error->all(FLERR,fmt::format("Unable to obtain conversion factor: "
|
||||||
"unit = " + units[i] + "; "
|
"unit = {}; from = {}; to = {}.",
|
||||||
"from = " + from + "; "
|
units[i], from, to));
|
||||||
"to = " + to + ".";
|
|
||||||
error->all(FLERR,err.c_str());
|
|
||||||
}
|
|
||||||
variable->internal_set(v_unit,conversion_factor);
|
variable->internal_set(v_unit,conversion_factor);
|
||||||
if (comm->me == 0) {
|
input->write_echo(fmt::format("variable {:<15s} internal {:<15.12e}\n",
|
||||||
std::stringstream mesg;
|
var_str, conversion_factor));
|
||||||
mesg << "variable " << std::setw(15) << std::left << var_str
|
|
||||||
<< " internal "
|
|
||||||
<< std::setprecision(12) << std::scientific << conversion_factor
|
|
||||||
<< std::endl;
|
|
||||||
input->write_echo(mesg.str().c_str());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (comm->me == 0) input->write_echo("#\n");
|
input->write_echo("#\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
void KimInit::write_log_cite(char * model_name)
|
void KimInit::write_log_cite(const std::string &model_name)
|
||||||
{
|
{
|
||||||
KIM_Collections * coll;
|
KIM_Collections * coll;
|
||||||
int err = KIM_Collections_Create(&coll);
|
int err = KIM_Collections_Create(&coll);
|
||||||
if (err) return;
|
if (err) return;
|
||||||
|
|
||||||
int extent;
|
int extent;
|
||||||
if (model_type == MO)
|
if (model_type == MO) {
|
||||||
{
|
|
||||||
err = KIM_Collections_CacheListOfItemMetadataFiles(
|
err = KIM_Collections_CacheListOfItemMetadataFiles(
|
||||||
coll,KIM_COLLECTION_ITEM_TYPE_portableModel,model_name,&extent);
|
coll,KIM_COLLECTION_ITEM_TYPE_portableModel,model_name.c_str(),&extent);
|
||||||
}
|
} else if (model_type == SM) {
|
||||||
else if (model_type == SM)
|
|
||||||
{
|
|
||||||
err = KIM_Collections_CacheListOfItemMetadataFiles(
|
err = KIM_Collections_CacheListOfItemMetadataFiles(
|
||||||
coll,KIM_COLLECTION_ITEM_TYPE_simulatorModel,model_name,&extent);
|
coll,KIM_COLLECTION_ITEM_TYPE_simulatorModel,model_name.c_str(),&extent);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
error->all(FLERR,"Unknown model type.");
|
error->all(FLERR,"Unknown model type.");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (err)
|
if (err) {
|
||||||
{
|
|
||||||
KIM_Collections_Destroy(&coll);
|
KIM_Collections_Destroy(&coll);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < extent;++i)
|
for (int i = 0; i < extent;++i) {
|
||||||
{
|
|
||||||
char const * fileName;
|
char const * fileName;
|
||||||
int availableAsString;
|
int availableAsString;
|
||||||
char const * fileString;
|
char const * fileString;
|
||||||
@ -573,8 +530,7 @@ void KimInit::write_log_cite(char * model_name)
|
|||||||
coll,i,&fileName,NULL,NULL,&availableAsString,&fileString);
|
coll,i,&fileName,NULL,NULL,&availableAsString,&fileString);
|
||||||
if (err) continue;
|
if (err) continue;
|
||||||
|
|
||||||
if (0 == strncmp("kimcite",fileName,7))
|
if (0 == strncmp("kimcite",fileName,7)) {
|
||||||
{
|
|
||||||
if ((lmp->citeme) && (availableAsString)) lmp->citeme->add(fileString);
|
if ((lmp->citeme) && (availableAsString)) lmp->citeme->add(fileString);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -83,10 +83,9 @@ class KimInit : protected Pointers {
|
|||||||
bool unit_conversion_mode;
|
bool unit_conversion_mode;
|
||||||
|
|
||||||
void determine_model_type_and_units(char *, char *, char **, KIM_Model *&);
|
void determine_model_type_and_units(char *, char *, char **, KIM_Model *&);
|
||||||
void write_log_cite(char *);
|
void write_log_cite(const std::string &);
|
||||||
void do_init(char *, char *, char *, KIM_Model *&);
|
void do_init(char *, char *, char *, KIM_Model *&);
|
||||||
void do_variables(char*, char*);
|
void do_variables(char*, char*);
|
||||||
void kim_init_log_delimiter(std::string const &begin_end) const;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -99,24 +99,6 @@ void KimInteractions::command(int narg, char **arg)
|
|||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
void KimInteractions::kim_interactions_log_delimiter(
|
|
||||||
std::string const begin_end) const
|
|
||||||
{
|
|
||||||
if (comm->me == 0) {
|
|
||||||
std::string mesg;
|
|
||||||
if (begin_end == "begin")
|
|
||||||
mesg =
|
|
||||||
"#=== BEGIN kim_interactions ==================================\n";
|
|
||||||
else if (begin_end == "end")
|
|
||||||
mesg =
|
|
||||||
"#=== END kim_interactions ====================================\n\n";
|
|
||||||
|
|
||||||
input->write_echo(mesg.c_str());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
void KimInteractions::do_setup(int narg, char **arg)
|
void KimInteractions::do_setup(int narg, char **arg)
|
||||||
{
|
{
|
||||||
bool fixed_types;
|
bool fixed_types;
|
||||||
@ -145,7 +127,7 @@ void KimInteractions::do_setup(int narg, char **arg)
|
|||||||
} else error->all(FLERR,"Must use 'kim_init' before 'kim_interactions'");
|
} else error->all(FLERR,"Must use 'kim_init' before 'kim_interactions'");
|
||||||
|
|
||||||
// Begin output to log file
|
// Begin output to log file
|
||||||
kim_interactions_log_delimiter("begin");
|
input->write_echo("#=== BEGIN kim_interactions ==================================\n");
|
||||||
|
|
||||||
if (simulatorModel) {
|
if (simulatorModel) {
|
||||||
|
|
||||||
@ -167,7 +149,7 @@ void KimInteractions::do_setup(int narg, char **arg)
|
|||||||
simulatorModel,"atom-type-num-list",atom_type_num_list.c_str());
|
simulatorModel,"atom-type-num-list",atom_type_num_list.c_str());
|
||||||
KIM_SimulatorModel_CloseTemplateMap(simulatorModel);
|
KIM_SimulatorModel_CloseTemplateMap(simulatorModel);
|
||||||
|
|
||||||
int len = strlen(atom_type_sym_list.c_str())+1;
|
int len = atom_type_sym_list.size()+1;
|
||||||
char *strbuf = new char[len];
|
char *strbuf = new char[len];
|
||||||
char *strword;
|
char *strword;
|
||||||
|
|
||||||
@ -192,7 +174,7 @@ void KimInteractions::do_setup(int narg, char **arg)
|
|||||||
std::string msg("Species '");
|
std::string msg("Species '");
|
||||||
msg += strword;
|
msg += strword;
|
||||||
msg += "' is not supported by this KIM Simulator Model";
|
msg += "' is not supported by this KIM Simulator Model";
|
||||||
error->all(FLERR,msg.c_str());
|
error->all(FLERR,msg);
|
||||||
}
|
}
|
||||||
strword = strtok(NULL," \t");
|
strword = strtok(NULL," \t");
|
||||||
}
|
}
|
||||||
@ -276,13 +258,12 @@ void KimInteractions::do_setup(int narg, char **arg)
|
|||||||
cmd2 += " ";
|
cmd2 += " ";
|
||||||
}
|
}
|
||||||
|
|
||||||
input->one(cmd1.c_str());
|
input->one(cmd1);
|
||||||
input->one(cmd2.c_str());
|
input->one(cmd2);
|
||||||
}
|
}
|
||||||
|
|
||||||
// End output to log file
|
// End output to log file
|
||||||
kim_interactions_log_delimiter("end");
|
input->write_echo("#=== END kim_interactions ====================================\n\n");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
@ -377,7 +358,7 @@ void KimInteractions::KIM_SET_TYPE_PARAMETERS(char const *const input_line) cons
|
|||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
int KimInteractions::species_to_atomic_no(std::string const species) const
|
int KimInteractions::species_to_atomic_no(const std::string &species) const
|
||||||
{
|
{
|
||||||
if (species == "H") return 1;
|
if (species == "H") return 1;
|
||||||
else if (species == "He") return 2;
|
else if (species == "He") return 2;
|
||||||
|
|||||||
@ -76,9 +76,8 @@ class KimInteractions : protected Pointers {
|
|||||||
void command(int, char **);
|
void command(int, char **);
|
||||||
private:
|
private:
|
||||||
void do_setup(int, char **);
|
void do_setup(int, char **);
|
||||||
int species_to_atomic_no(std::string const species) const;
|
int species_to_atomic_no(const std::string &species) const;
|
||||||
void KIM_SET_TYPE_PARAMETERS(char const *const input_line) const;
|
void KIM_SET_TYPE_PARAMETERS(char const *const input_line) const;
|
||||||
void kim_interactions_log_delimiter(std::string const begin_end) const;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -56,6 +56,8 @@
|
|||||||
------------------------------------------------------------------------- */
|
------------------------------------------------------------------------- */
|
||||||
|
|
||||||
#include "kim_param.h"
|
#include "kim_param.h"
|
||||||
|
#include "fix_store_kim.h"
|
||||||
|
#include "pair_kim.h"
|
||||||
#include <mpi.h>
|
#include <mpi.h>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <string>
|
#include <string>
|
||||||
@ -66,8 +68,7 @@
|
|||||||
#include "modify.h"
|
#include "modify.h"
|
||||||
#include "variable.h"
|
#include "variable.h"
|
||||||
#include "force.h"
|
#include "force.h"
|
||||||
#include "fix_store_kim.h"
|
#include "fmt/format.h"
|
||||||
#include "pair_kim.h"
|
|
||||||
|
|
||||||
extern "C"
|
extern "C"
|
||||||
{
|
{
|
||||||
@ -157,13 +158,12 @@ void KimParam::command(int narg, char **arg)
|
|||||||
if (narg < 4)
|
if (narg < 4)
|
||||||
error->all(FLERR, "Illegal kim_param command");
|
error->all(FLERR, "Illegal kim_param command");
|
||||||
|
|
||||||
kim_param_get = (strcmp(arg[0], "get") == 0);
|
std::string kim_param_get_set = arg[0];
|
||||||
kim_param_set = (strcmp(arg[0], "set") == 0);
|
|
||||||
|
|
||||||
if (!kim_param_get && !kim_param_set) {
|
if ((kim_param_get_set != "get") && (kim_param_get_set != "set")) {
|
||||||
std::string msg("Incorrect arguments in kim_param command.\n");
|
std::string msg("Incorrect arguments in kim_param command.\n");
|
||||||
msg += "'kim_param get/set' is mandatory.";
|
msg += "'kim_param get/set' is mandatory.";
|
||||||
error->all(FLERR, msg.c_str());
|
error->all(FLERR, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if we called a kim_init command
|
// Check if we called a kim_init command
|
||||||
@ -193,7 +193,8 @@ void KimParam::command(int narg, char **arg)
|
|||||||
else
|
else
|
||||||
error->all(FLERR, "Must use 'kim_init' before 'kim_param'");
|
error->all(FLERR, "Must use 'kim_init' before 'kim_param'");
|
||||||
|
|
||||||
kim_param_log_delimiter("begin");
|
input->write_echo(fmt::format("#=== BEGIN kim-param {} ==================="
|
||||||
|
"==================\n",kim_param_get_set));
|
||||||
|
|
||||||
KIM_Model *pkim = NULL;
|
KIM_Model *pkim = NULL;
|
||||||
|
|
||||||
@ -211,7 +212,7 @@ void KimParam::command(int narg, char **arg)
|
|||||||
if (!pkim)
|
if (!pkim)
|
||||||
error->all(FLERR, "Unable to get the KIM Portable Model.");
|
error->all(FLERR, "Unable to get the KIM Portable Model.");
|
||||||
|
|
||||||
if (kim_param_set) {
|
if (kim_param_get_set == "set") {
|
||||||
atom_type_list = pairKIM->get_atom_type_list();
|
atom_type_list = pairKIM->get_atom_type_list();
|
||||||
if (atom_type_list.empty())
|
if (atom_type_list.empty())
|
||||||
error->all(FLERR, "The requested atom type list is empty.");
|
error->all(FLERR, "The requested atom type list is empty.");
|
||||||
@ -220,12 +221,12 @@ void KimParam::command(int narg, char **arg)
|
|||||||
error->all(FLERR, "Pair style is defined,"
|
error->all(FLERR, "Pair style is defined,"
|
||||||
" but there is no match for kim style in lammps.");
|
" but there is no match for kim style in lammps.");
|
||||||
} else {
|
} else {
|
||||||
if (kim_param_set) {
|
if (kim_param_get_set == "set") {
|
||||||
std::string msg("Wrong kim_param set command.\n");
|
std::string msg("Wrong kim_param set command.\n");
|
||||||
msg += "To set the new parameter values, pair style must be assigned.\n";
|
msg += "To set the new parameter values, pair style must be assigned.\n";
|
||||||
msg += "Must use 'kim_interactions' or";
|
msg += "Must use 'kim_interactions' or";
|
||||||
msg += "'pair_style kim ' before 'kim_param set'";
|
msg += "'pair_style kim ' before 'kim_param set'";
|
||||||
error->all(FLERR, msg.c_str());
|
error->all(FLERR, msg);
|
||||||
} else {
|
} else {
|
||||||
KIM_LengthUnit lengthUnit;
|
KIM_LengthUnit lengthUnit;
|
||||||
KIM_EnergyUnit energyUnit;
|
KIM_EnergyUnit energyUnit;
|
||||||
@ -259,7 +260,7 @@ void KimParam::command(int narg, char **arg)
|
|||||||
KIM_Model_GetNumberOfParameters(pkim, &numberOfParameters);
|
KIM_Model_GetNumberOfParameters(pkim, &numberOfParameters);
|
||||||
if (numberOfParameters) {
|
if (numberOfParameters) {
|
||||||
// Get the parameters
|
// Get the parameters
|
||||||
if (kim_param_get) {
|
if (kim_param_get_set == "get") {
|
||||||
// Parameter name
|
// Parameter name
|
||||||
char *paramname = NULL;
|
char *paramname = NULL;
|
||||||
// Variable name
|
// Variable name
|
||||||
@ -296,7 +297,7 @@ void KimParam::command(int narg, char **arg)
|
|||||||
msg += "This Model does not have the requested '";
|
msg += "This Model does not have the requested '";
|
||||||
msg += paramname;
|
msg += paramname;
|
||||||
msg += "' parameter.";
|
msg += "' parameter.";
|
||||||
error->all(FLERR, msg.c_str());
|
error->all(FLERR, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the index_range for the requested parameter
|
// Get the index_range for the requested parameter
|
||||||
@ -313,7 +314,7 @@ void KimParam::command(int narg, char **arg)
|
|||||||
msg += "Expected integer parameter(s) instead of '";
|
msg += "Expected integer parameter(s) instead of '";
|
||||||
msg += argtostr;
|
msg += argtostr;
|
||||||
msg += "' in index_range.";
|
msg += "' in index_range.";
|
||||||
error->all(FLERR, msg.c_str());
|
error->all(FLERR, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string::size_type npos = argtostr.find(':');
|
std::string::size_type npos = argtostr.find(':');
|
||||||
@ -330,7 +331,7 @@ void KimParam::command(int narg, char **arg)
|
|||||||
msg += "' parameter with extent of '";
|
msg += "' parameter with extent of '";
|
||||||
msg += SNUM(extent);
|
msg += SNUM(extent);
|
||||||
msg += "' .";
|
msg += "' .";
|
||||||
error->all(FLERR, msg.c_str());
|
error->all(FLERR, msg);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
std::stringstream str(argtostr);
|
std::stringstream str(argtostr);
|
||||||
@ -342,7 +343,7 @@ void KimParam::command(int narg, char **arg)
|
|||||||
msg += "' with the extent of '";
|
msg += "' with the extent of '";
|
||||||
msg += SNUM(extent);
|
msg += SNUM(extent);
|
||||||
msg += "' .";
|
msg += "' .";
|
||||||
error->all(FLERR, msg.c_str());
|
error->all(FLERR, msg);
|
||||||
}
|
}
|
||||||
nubound = nlbound;
|
nubound = nlbound;
|
||||||
}
|
}
|
||||||
@ -350,7 +351,7 @@ void KimParam::command(int narg, char **arg)
|
|||||||
std::string msg("Wrong number of arguments in ");
|
std::string msg("Wrong number of arguments in ");
|
||||||
msg += "kim_param get command.\n";
|
msg += "kim_param get command.\n";
|
||||||
msg += "Index range after parameter name is mandatory.";
|
msg += "Index range after parameter name is mandatory.";
|
||||||
error->all(FLERR, msg.c_str());
|
error->all(FLERR, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
int const nvars = nubound - nlbound + 1;
|
int const nvars = nubound - nlbound + 1;
|
||||||
@ -363,7 +364,7 @@ void KimParam::command(int narg, char **arg)
|
|||||||
std::string msg("Wrong number of arguments in ");
|
std::string msg("Wrong number of arguments in ");
|
||||||
msg += "kim_param get command.\n";
|
msg += "kim_param get command.\n";
|
||||||
msg += "The LAMMPS variable name is mandatory.";
|
msg += "The LAMMPS variable name is mandatory.";
|
||||||
error->all(FLERR, msg.c_str());
|
error->all(FLERR, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
// indicator flag for list request
|
// indicator flag for list request
|
||||||
@ -400,7 +401,7 @@ void KimParam::command(int narg, char **arg)
|
|||||||
msg += "' variable names or '";
|
msg += "' variable names or '";
|
||||||
msg += varname;
|
msg += varname;
|
||||||
msg += " split' is mandatory.";
|
msg += " split' is mandatory.";
|
||||||
error->all(FLERR, msg.c_str());
|
error->all(FLERR, msg);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
std::string msg("Wrong number of arguments in ");
|
std::string msg("Wrong number of arguments in ");
|
||||||
@ -410,7 +411,7 @@ void KimParam::command(int narg, char **arg)
|
|||||||
msg += "' variable names or '";
|
msg += "' variable names or '";
|
||||||
msg += varname;
|
msg += varname;
|
||||||
msg += " split/list' is mandatory.";
|
msg += " split/list' is mandatory.";
|
||||||
error->all(FLERR, msg.c_str());
|
error->all(FLERR, msg);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
varsname = new char *[1];
|
varsname = new char *[1];
|
||||||
@ -524,7 +525,7 @@ void KimParam::command(int narg, char **arg)
|
|||||||
set_cmd += " ";
|
set_cmd += " ";
|
||||||
set_cmd += arg[i];
|
set_cmd += arg[i];
|
||||||
}
|
}
|
||||||
input->one(set_cmd.c_str());
|
input->one(set_cmd);
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
error->all(FLERR, "This model has No mutable parameters.");
|
error->all(FLERR, "This model has No mutable parameters.");
|
||||||
@ -532,38 +533,17 @@ void KimParam::command(int narg, char **arg)
|
|||||||
if (!isPairStyleAssigned)
|
if (!isPairStyleAssigned)
|
||||||
KIM_Model_Destroy(&pkim);
|
KIM_Model_Destroy(&pkim);
|
||||||
|
|
||||||
kim_param_log_delimiter("end");
|
input->write_echo(fmt::format("#=== END kim-param {} ====================="
|
||||||
|
"==================\n",kim_param_get_set));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
void KimParam::kim_param_log_delimiter(std::string const &begin_end) const
|
void KimParam::echo_var_assign(const std::string &name,
|
||||||
|
const std::string &value) const
|
||||||
{
|
{
|
||||||
if (comm->me == 0) {
|
input->write_echo(fmt::format("variable {} string {}\n",
|
||||||
std::string msg;
|
name, value));
|
||||||
if (begin_end == "begin") {
|
|
||||||
msg = "#=== BEGIN kim-param ";
|
|
||||||
msg += kim_param_get ? "get " : "set ";
|
|
||||||
msg += "=====================================\n";
|
|
||||||
} else if (begin_end == "end") {
|
|
||||||
msg = "#=== END kim-param ";
|
|
||||||
msg += kim_param_get ? "get " : "set ";
|
|
||||||
msg += "=======================================\n\n";
|
|
||||||
}
|
|
||||||
input->write_echo(msg.c_str());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
void KimParam::echo_var_assign(std::string const &name,
|
|
||||||
std::string const &value) const
|
|
||||||
{
|
|
||||||
if (comm->me == 0) {
|
|
||||||
std::string msg;
|
|
||||||
msg += "variable " + name + " string " + value + "\n";
|
|
||||||
input->write_echo(msg.c_str());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef SNUM
|
#undef SNUM
|
||||||
|
|||||||
@ -80,10 +80,7 @@ public:
|
|||||||
void command(int, char **);
|
void command(int, char **);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void kim_param_log_delimiter(std::string const &begin_end) const;
|
void echo_var_assign(const std::string &name, const std::string &value) const;
|
||||||
|
|
||||||
void echo_var_assign(std::string const &name, std::string const &value)
|
|
||||||
const;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool kim_param_get;
|
bool kim_param_get;
|
||||||
|
|||||||
@ -100,13 +100,13 @@ void kimProperty::command(int narg, char **arg)
|
|||||||
std::string msg("Error incorrect arguments in kim_property command.\n");
|
std::string msg("Error incorrect arguments in kim_property command.\n");
|
||||||
msg += "`kim_property create/destroy/modify/remove/dump` ";
|
msg += "`kim_property create/destroy/modify/remove/dump` ";
|
||||||
msg += "is mandatory.";
|
msg += "is mandatory.";
|
||||||
error->all(FLERR, msg.c_str());
|
error->all(FLERR, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (comm->me == 0) {
|
if (comm->me == 0) {
|
||||||
std::string msg;
|
std::string msg;
|
||||||
msg = "#=== kim-property ===========================================\n";
|
msg = "#=== kim-property ===========================================\n";
|
||||||
input->write_echo(msg.c_str());
|
input->write_echo(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the kim_str ptr to the data associated with a kim_property_str
|
// Get the kim_str ptr to the data associated with a kim_property_str
|
||||||
@ -464,7 +464,8 @@ void kimProperty::command(int narg, char **arg)
|
|||||||
error->one(FLERR, "Error Python `kim_property_dump` function "
|
error->one(FLERR, "Error Python `kim_property_dump` function "
|
||||||
"evaluation failed!");
|
"evaluation failed!");
|
||||||
}
|
}
|
||||||
}
|
} else
|
||||||
|
pValue = NULL;
|
||||||
|
|
||||||
// Destroy the variable
|
// Destroy the variable
|
||||||
kim_str_cmd[1] = const_cast<char *>("delete");
|
kim_str_cmd[1] = const_cast<char *>("delete");
|
||||||
|
|||||||
@ -56,6 +56,7 @@
|
|||||||
------------------------------------------------------------------------- */
|
------------------------------------------------------------------------- */
|
||||||
|
|
||||||
#include "kim_query.h"
|
#include "kim_query.h"
|
||||||
|
#include "fix_store_kim.h"
|
||||||
#include <mpi.h>
|
#include <mpi.h>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <string>
|
#include <string>
|
||||||
@ -67,7 +68,7 @@
|
|||||||
#include "variable.h"
|
#include "variable.h"
|
||||||
#include "version.h"
|
#include "version.h"
|
||||||
#include "info.h"
|
#include "info.h"
|
||||||
#include "fix_store_kim.h"
|
#include "fmt/format.h"
|
||||||
|
|
||||||
#if defined(LMP_KIM_CURL)
|
#if defined(LMP_KIM_CURL)
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
@ -153,7 +154,7 @@ void KimQuery::command(int narg, char **arg)
|
|||||||
error->all(FLERR,errmsg);
|
error->all(FLERR,errmsg);
|
||||||
}
|
}
|
||||||
|
|
||||||
kim_query_log_delimiter("begin");
|
input->write_echo("#=== BEGIN kim-query =========================================\n");
|
||||||
char **varcmd = new char*[3];
|
char **varcmd = new char*[3];
|
||||||
varcmd[1] = (char *) "string";
|
varcmd[1] = (char *) "string";
|
||||||
|
|
||||||
@ -186,7 +187,7 @@ void KimQuery::command(int narg, char **arg)
|
|||||||
input->variable->set(3,varcmd);
|
input->variable->set(3,varcmd);
|
||||||
echo_var_assign(varname, value_string);
|
echo_var_assign(varname, value_string);
|
||||||
}
|
}
|
||||||
kim_query_log_delimiter("end");
|
input->write_echo("#=== END kim-query ===========================================\n\n");
|
||||||
|
|
||||||
delete[] varcmd;
|
delete[] varcmd;
|
||||||
delete[] value;
|
delete[] value;
|
||||||
@ -342,29 +343,8 @@ char *do_query(char *qfunction, char * model_name, int narg, char **arg,
|
|||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
void KimQuery::kim_query_log_delimiter(std::string const begin_end) const
|
void KimQuery::echo_var_assign(const std::string & name,
|
||||||
|
const std::string & value) const
|
||||||
{
|
{
|
||||||
if (comm->me == 0) {
|
input->write_echo(fmt::format("variable {} string {}\n",name,value));
|
||||||
std::string mesg;
|
|
||||||
if (begin_end == "begin")
|
|
||||||
mesg =
|
|
||||||
"#=== BEGIN kim-query =========================================\n";
|
|
||||||
else if (begin_end == "end")
|
|
||||||
mesg =
|
|
||||||
"#=== END kim-query ===========================================\n\n";
|
|
||||||
|
|
||||||
input->write_echo(mesg.c_str());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
void KimQuery::echo_var_assign(std::string const & name,
|
|
||||||
std::string const & value) const
|
|
||||||
{
|
|
||||||
if (comm->me == 0) {
|
|
||||||
std::string mesg;
|
|
||||||
mesg += "variable " + name + " string " + value + "\n";
|
|
||||||
input->write_echo(mesg.c_str());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -73,8 +73,7 @@ class KimQuery : protected Pointers {
|
|||||||
KimQuery(class LAMMPS *lmp) : Pointers(lmp) {};
|
KimQuery(class LAMMPS *lmp) : Pointers(lmp) {};
|
||||||
void command(int, char **);
|
void command(int, char **);
|
||||||
private:
|
private:
|
||||||
void kim_query_log_delimiter(std::string const begin_end) const;
|
void echo_var_assign(const std::string &name, const std::string &value)
|
||||||
void echo_var_assign(std::string const & name, std::string const & value)
|
|
||||||
const;
|
const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -1370,9 +1370,9 @@ double get_unit_conversion_factor(unit_type &unit_type_enum,
|
|||||||
|
|
||||||
// Wrapper to the routine that gets the unit conversion. Translates strings
|
// Wrapper to the routine that gets the unit conversion. Translates strings
|
||||||
// to enumerations and then call get_unit_conversion_factor()
|
// to enumerations and then call get_unit_conversion_factor()
|
||||||
int lammps_unit_conversion(string const &unit_type_str,
|
int lammps_unit_conversion(const string &unit_type_str,
|
||||||
string const &from_system_str,
|
const string &from_system_str,
|
||||||
string const &to_system_str,
|
const string &to_system_str,
|
||||||
double &conversion_factor)
|
double &conversion_factor)
|
||||||
{
|
{
|
||||||
// initialize
|
// initialize
|
||||||
|
|||||||
@ -53,7 +53,7 @@
|
|||||||
Designed for use with the kim-api-2.0.2 (and newer) package
|
Designed for use with the kim-api-2.0.2 (and newer) package
|
||||||
------------------------------------------------------------------------- */
|
------------------------------------------------------------------------- */
|
||||||
|
|
||||||
int lammps_unit_conversion(std::string const &unit_type_str,
|
int lammps_unit_conversion(const std::string &unit_type_str,
|
||||||
std::string const &from_system_str,
|
const std::string &from_system_str,
|
||||||
std::string const &to_system_str,
|
const std::string &to_system_str,
|
||||||
double &conversion_factor);
|
double &conversion_factor);
|
||||||
|
|||||||
@ -429,7 +429,7 @@ void PairKIM::coeff(int narg, char **arg)
|
|||||||
} else {
|
} else {
|
||||||
std::string msg("create_kim_particle_codes: symbol not found: ");
|
std::string msg("create_kim_particle_codes: symbol not found: ");
|
||||||
msg += lmps_unique_elements[i];
|
msg += lmps_unique_elements[i];
|
||||||
error->all(FLERR, msg.c_str());
|
error->all(FLERR, msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Set the new values for PM parameters
|
// Set the new values for PM parameters
|
||||||
@ -441,7 +441,7 @@ void PairKIM::coeff(int narg, char **arg)
|
|||||||
if (!numberOfParameters) {
|
if (!numberOfParameters) {
|
||||||
std::string msg("Incorrect args for pair coefficients \n");
|
std::string msg("Incorrect args for pair coefficients \n");
|
||||||
msg += "This model has No mutable parameters.";
|
msg += "This model has No mutable parameters.";
|
||||||
error->all(FLERR, msg.c_str());
|
error->all(FLERR, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
int kimerror;
|
int kimerror;
|
||||||
@ -477,7 +477,7 @@ void PairKIM::coeff(int narg, char **arg)
|
|||||||
msg += "This Model does not have the requested '";
|
msg += "This Model does not have the requested '";
|
||||||
msg += paramname;
|
msg += paramname;
|
||||||
msg += "' parameter.";
|
msg += "' parameter.";
|
||||||
error->all(FLERR, msg.c_str());
|
error->all(FLERR, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the index_range for the requested parameter
|
// Get the index_range for the requested parameter
|
||||||
@ -493,7 +493,7 @@ void PairKIM::coeff(int narg, char **arg)
|
|||||||
msg += "Expected integer parameter(s) instead of '";
|
msg += "Expected integer parameter(s) instead of '";
|
||||||
msg += argtostr;
|
msg += argtostr;
|
||||||
msg += "' in index_range.";
|
msg += "' in index_range.";
|
||||||
error->all(FLERR, msg.c_str());
|
error->all(FLERR, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string::size_type npos = argtostr.find(':');
|
std::string::size_type npos = argtostr.find(':');
|
||||||
@ -510,7 +510,7 @@ void PairKIM::coeff(int narg, char **arg)
|
|||||||
msg += "' parameter with extent of '";
|
msg += "' parameter with extent of '";
|
||||||
msg += SNUM(extent);
|
msg += SNUM(extent);
|
||||||
msg += "' .";
|
msg += "' .";
|
||||||
error->all(FLERR, msg.c_str());
|
error->all(FLERR, msg);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
std::stringstream str(argtostr);
|
std::stringstream str(argtostr);
|
||||||
@ -522,7 +522,7 @@ void PairKIM::coeff(int narg, char **arg)
|
|||||||
msg += "' parameter with extent of '";
|
msg += "' parameter with extent of '";
|
||||||
msg += SNUM(extent);
|
msg += SNUM(extent);
|
||||||
msg += "' .";
|
msg += "' .";
|
||||||
error->all(FLERR, msg.c_str());
|
error->all(FLERR, msg);
|
||||||
}
|
}
|
||||||
nubound = nlbound;
|
nubound = nlbound;
|
||||||
}
|
}
|
||||||
@ -530,7 +530,7 @@ void PairKIM::coeff(int narg, char **arg)
|
|||||||
std::string msg =
|
std::string msg =
|
||||||
"Wrong number of arguments for pair coefficients.\n";
|
"Wrong number of arguments for pair coefficients.\n";
|
||||||
msg += "Index range after parameter name is mandatory.";
|
msg += "Index range after parameter name is mandatory.";
|
||||||
error->all(FLERR, msg.c_str());
|
error->all(FLERR, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parameter values
|
// Parameter values
|
||||||
@ -561,7 +561,7 @@ void PairKIM::coeff(int narg, char **arg)
|
|||||||
msg += "' values are requested for '";
|
msg += "' values are requested for '";
|
||||||
msg += paramname;
|
msg += paramname;
|
||||||
msg += "' parameter.";
|
msg += "' parameter.";
|
||||||
error->all(FLERR, msg.c_str());
|
error->all(FLERR, msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1122,7 +1122,7 @@ void PairKIM::set_kim_model_has_flags()
|
|||||||
KIM_SUPPORT_STATUS_required)) {
|
KIM_SUPPORT_STATUS_required)) {
|
||||||
std::string msg("KIM Model requires unsupported compute argument: ");
|
std::string msg("KIM Model requires unsupported compute argument: ");
|
||||||
msg += KIM_ComputeArgumentName_ToString(computeArgumentName);
|
msg += KIM_ComputeArgumentName_ToString(computeArgumentName);
|
||||||
error->all(FLERR, msg.c_str());
|
error->all(FLERR, msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -340,7 +340,8 @@ void AtomKokkos::sync_modify(ExecutionSpace execution_space,
|
|||||||
modified(execution_space,datamask_modify);
|
modified(execution_space,datamask_modify);
|
||||||
}
|
}
|
||||||
|
|
||||||
AtomVec *AtomKokkos::new_avec(const char *style, int trysuffix, int &sflag)
|
AtomVec *AtomKokkos::new_avec(const std::string &style,
|
||||||
|
int trysuffix, int &sflag)
|
||||||
{
|
{
|
||||||
AtomVec* avec = Atom::new_avec(style,trysuffix,sflag);
|
AtomVec* avec = Atom::new_avec(style,trysuffix,sflag);
|
||||||
if (!avec->kokkosable)
|
if (!avec->kokkosable)
|
||||||
|
|||||||
@ -74,7 +74,7 @@ class AtomKokkos : public Atom {
|
|||||||
virtual void deallocate_topology();
|
virtual void deallocate_topology();
|
||||||
void sync_modify(ExecutionSpace, unsigned int, unsigned int);
|
void sync_modify(ExecutionSpace, unsigned int, unsigned int);
|
||||||
private:
|
private:
|
||||||
class AtomVec *new_avec(const char *, int, int &);
|
class AtomVec *new_avec(const std::string &, int, int &);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<class ViewType, class IndexView>
|
template<class ViewType, class IndexView>
|
||||||
|
|||||||
@ -29,11 +29,12 @@
|
|||||||
#include "memory_kokkos.h"
|
#include "memory_kokkos.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
#include "atom_masks.h"
|
#include "atom_masks.h"
|
||||||
|
#include "utils.h"
|
||||||
|
#include "tokenizer.h"
|
||||||
|
#include "potential_file_reader.h"
|
||||||
|
|
||||||
using namespace LAMMPS_NS;
|
using namespace LAMMPS_NS;
|
||||||
|
|
||||||
#define MAXLINE 1024
|
|
||||||
|
|
||||||
// Cannot use virtual inheritance on the GPU, so must duplicate code
|
// Cannot use virtual inheritance on the GPU, so must duplicate code
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
@ -982,94 +983,107 @@ void PairEAMAlloyKokkos<DeviceType>::read_file(char *filename)
|
|||||||
{
|
{
|
||||||
Setfl *file = setfl;
|
Setfl *file = setfl;
|
||||||
|
|
||||||
// open potential file
|
// read potential file
|
||||||
|
if(comm->me == 0) {
|
||||||
|
PotentialFileReader reader(lmp, filename, "EAM");
|
||||||
|
|
||||||
int me = comm->me;
|
try {
|
||||||
FILE *fptr;
|
reader.skip_line();
|
||||||
char line[MAXLINE];
|
reader.skip_line();
|
||||||
|
reader.skip_line();
|
||||||
|
|
||||||
if (me == 0) {
|
// extract element names from nelements line
|
||||||
fptr = force->open_potential(filename);
|
ValueTokenizer values = reader.next_values(1);
|
||||||
if (fptr == NULL) {
|
file->nelements = values.next_int();
|
||||||
char str[128];
|
|
||||||
snprintf(str,128,"Cannot open EAM potential file %s",filename);
|
if (values.count() != file->nelements + 1)
|
||||||
error->one(FLERR,str);
|
error->one(FLERR,"Incorrect element names in EAM potential file");
|
||||||
|
|
||||||
|
file->elements = new char*[file->nelements];
|
||||||
|
for (int i = 0; i < file->nelements; i++) {
|
||||||
|
const std::string word = values.next_string();
|
||||||
|
const int n = word.length() + 1;
|
||||||
|
file->elements[i] = new char[n];
|
||||||
|
strcpy(file->elements[i], word.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
values = reader.next_values(5);
|
||||||
|
file->nrho = values.next_int();
|
||||||
|
file->drho = values.next_double();
|
||||||
|
file->nr = values.next_int();
|
||||||
|
file->dr = values.next_double();
|
||||||
|
file->cut = values.next_double();
|
||||||
|
|
||||||
|
if ((file->nrho <= 0) || (file->nr <= 0) || (file->dr <= 0.0))
|
||||||
|
error->one(FLERR,"Invalid EAM potential file");
|
||||||
|
|
||||||
|
memory->create(file->mass, file->nelements, "pair:mass");
|
||||||
|
memory->create(file->frho, file->nelements, file->nrho + 1, "pair:frho");
|
||||||
|
memory->create(file->rhor, file->nelements, file->nr + 1, "pair:rhor");
|
||||||
|
memory->create(file->z2r, file->nelements, file->nelements, file->nr + 1, "pair:z2r");
|
||||||
|
|
||||||
|
for (int i = 0; i < file->nelements; i++) {
|
||||||
|
values = reader.next_values(2);
|
||||||
|
values.next_int(); // ignore
|
||||||
|
file->mass[i] = values.next_double();
|
||||||
|
|
||||||
|
reader.next_dvector(&file->frho[i][1], file->nrho);
|
||||||
|
reader.next_dvector(&file->rhor[i][1], file->nr);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < file->nelements; i++) {
|
||||||
|
for (int j = 0; j <= i; j++) {
|
||||||
|
reader.next_dvector(&file->z2r[i][j][1], file->nr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (TokenizerException & e) {
|
||||||
|
error->one(FLERR, e.what());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// read and broadcast header
|
// broadcast potential information
|
||||||
// extract element names from nelements line
|
MPI_Bcast(&file->nelements, 1, MPI_INT, 0, world);
|
||||||
|
|
||||||
int n;
|
MPI_Bcast(&file->nrho, 1, MPI_INT, 0, world);
|
||||||
if (me == 0) {
|
MPI_Bcast(&file->drho, 1, MPI_DOUBLE, 0, world);
|
||||||
fgets(line,MAXLINE,fptr);
|
MPI_Bcast(&file->nr, 1, MPI_INT, 0, world);
|
||||||
fgets(line,MAXLINE,fptr);
|
MPI_Bcast(&file->dr, 1, MPI_DOUBLE, 0, world);
|
||||||
fgets(line,MAXLINE,fptr);
|
MPI_Bcast(&file->cut, 1, MPI_DOUBLE, 0, world);
|
||||||
fgets(line,MAXLINE,fptr);
|
|
||||||
n = strlen(line) + 1;
|
// allocate memory on other procs
|
||||||
|
if (comm->me != 0) {
|
||||||
|
file->elements = new char*[file->nelements];
|
||||||
|
for (int i = 0; i < file->nelements; i++) file->elements[i] = nullptr;
|
||||||
|
memory->create(file->mass, file->nelements, "pair:mass");
|
||||||
|
memory->create(file->frho, file->nelements, file->nrho + 1, "pair:frho");
|
||||||
|
memory->create(file->rhor, file->nelements, file->nr + 1, "pair:rhor");
|
||||||
|
memory->create(file->z2r, file->nelements, file->nelements, file->nr + 1, "pair:z2r");
|
||||||
}
|
}
|
||||||
MPI_Bcast(&n,1,MPI_INT,0,world);
|
|
||||||
MPI_Bcast(line,n,MPI_CHAR,0,world);
|
|
||||||
|
|
||||||
sscanf(line,"%d",&file->nelements);
|
// broadcast file->elements string array
|
||||||
int nwords = atom->count_words(line);
|
|
||||||
if (nwords != file->nelements + 1)
|
|
||||||
error->all(FLERR,"Incorrect element names in EAM potential file");
|
|
||||||
|
|
||||||
char **words = new char*[file->nelements+1];
|
|
||||||
nwords = 0;
|
|
||||||
strtok(line," \t\n\r\f");
|
|
||||||
while ((words[nwords++] = strtok(NULL," \t\n\r\f"))) continue;
|
|
||||||
|
|
||||||
file->elements = new char*[file->nelements];
|
|
||||||
for (int i = 0; i < file->nelements; i++) {
|
for (int i = 0; i < file->nelements; i++) {
|
||||||
n = strlen(words[i]) + 1;
|
int n;
|
||||||
file->elements[i] = new char[n];
|
if (comm->me == 0) n = strlen(file->elements[i]) + 1;
|
||||||
strcpy(file->elements[i],words[i]);
|
MPI_Bcast(&n, 1, MPI_INT, 0, world);
|
||||||
}
|
if (comm->me != 0) file->elements[i] = new char[n];
|
||||||
delete [] words;
|
MPI_Bcast(file->elements[i], n, MPI_CHAR, 0, world);
|
||||||
|
|
||||||
if (me == 0) {
|
|
||||||
fgets(line,MAXLINE,fptr);
|
|
||||||
sscanf(line,"%d %lg %d %lg %lg",
|
|
||||||
&file->nrho,&file->drho,&file->nr,&file->dr,&file->cut);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MPI_Bcast(&file->nrho,1,MPI_INT,0,world);
|
// broadcast file->mass, frho, rhor
|
||||||
MPI_Bcast(&file->drho,1,MPI_DOUBLE,0,world);
|
for (int i = 0; i < file->nelements; i++) {
|
||||||
MPI_Bcast(&file->nr,1,MPI_INT,0,world);
|
MPI_Bcast(&file->mass[i], 1, MPI_DOUBLE, 0, world);
|
||||||
MPI_Bcast(&file->dr,1,MPI_DOUBLE,0,world);
|
MPI_Bcast(&file->frho[i][1], file->nrho, MPI_DOUBLE, 0, world);
|
||||||
MPI_Bcast(&file->cut,1,MPI_DOUBLE,0,world);
|
MPI_Bcast(&file->rhor[i][1], file->nr, MPI_DOUBLE, 0, world);
|
||||||
|
}
|
||||||
|
|
||||||
file->mass = new double[file->nelements];
|
// broadcast file->z2r
|
||||||
memory->create(file->frho,file->nelements,file->nrho+1,"pair:frho");
|
for (int i = 0; i < file->nelements; i++) {
|
||||||
memory->create(file->rhor,file->nelements,file->nr+1,"pair:rhor");
|
for (int j = 0; j <= i; j++) {
|
||||||
memory->create(file->z2r,file->nelements,file->nelements,file->nr+1,
|
MPI_Bcast(&file->z2r[i][j][1], file->nr, MPI_DOUBLE, 0, world);
|
||||||
"pair:z2r");
|
|
||||||
|
|
||||||
int i,j,tmp;
|
|
||||||
for (i = 0; i < file->nelements; i++) {
|
|
||||||
if (me == 0) {
|
|
||||||
fgets(line,MAXLINE,fptr);
|
|
||||||
sscanf(line,"%d %lg",&tmp,&file->mass[i]);
|
|
||||||
}
|
}
|
||||||
MPI_Bcast(&file->mass[i],1,MPI_DOUBLE,0,world);
|
|
||||||
|
|
||||||
if (me == 0) grab(fptr,file->nrho,&file->frho[i][1]);
|
|
||||||
MPI_Bcast(&file->frho[i][1],file->nrho,MPI_DOUBLE,0,world);
|
|
||||||
if (me == 0) grab(fptr,file->nr,&file->rhor[i][1]);
|
|
||||||
MPI_Bcast(&file->rhor[i][1],file->nr,MPI_DOUBLE,0,world);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < file->nelements; i++)
|
|
||||||
for (j = 0; j <= i; j++) {
|
|
||||||
if (me == 0) grab(fptr,file->nr,&file->z2r[i][j][1]);
|
|
||||||
MPI_Bcast(&file->z2r[i][j][1],file->nr,MPI_DOUBLE,0,world);
|
|
||||||
}
|
|
||||||
|
|
||||||
// close the potential file
|
|
||||||
|
|
||||||
if (me == 0) fclose(fptr);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
|
|||||||
@ -29,11 +29,12 @@
|
|||||||
#include "memory_kokkos.h"
|
#include "memory_kokkos.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
#include "atom_masks.h"
|
#include "atom_masks.h"
|
||||||
|
#include "utils.h"
|
||||||
|
#include "tokenizer.h"
|
||||||
|
#include "potential_file_reader.h"
|
||||||
|
|
||||||
using namespace LAMMPS_NS;
|
using namespace LAMMPS_NS;
|
||||||
|
|
||||||
#define MAXLINE 1024
|
|
||||||
|
|
||||||
// Cannot use virtual inheritance on the GPU, so must duplicate code
|
// Cannot use virtual inheritance on the GPU, so must duplicate code
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
@ -982,99 +983,113 @@ void PairEAMFSKokkos<DeviceType>::read_file(char *filename)
|
|||||||
{
|
{
|
||||||
Fs *file = fs;
|
Fs *file = fs;
|
||||||
|
|
||||||
// open potential file
|
// read potential file
|
||||||
|
if(comm->me == 0) {
|
||||||
|
PotentialFileReader reader(lmp, filename, "EAM");
|
||||||
|
|
||||||
int me = comm->me;
|
try {
|
||||||
FILE *fptr;
|
reader.skip_line();
|
||||||
char line[MAXLINE];
|
reader.skip_line();
|
||||||
|
reader.skip_line();
|
||||||
|
|
||||||
if (me == 0) {
|
// extract element names from nelements line
|
||||||
fptr = force->open_potential(filename);
|
ValueTokenizer values = reader.next_values(1);
|
||||||
if (fptr == NULL) {
|
file->nelements = values.next_int();
|
||||||
char str[128];
|
|
||||||
snprintf(str,128,"Cannot open EAM potential file %s",filename);
|
if (values.count() != file->nelements + 1)
|
||||||
error->one(FLERR,str);
|
error->one(FLERR,"Incorrect element names in EAM potential file");
|
||||||
|
|
||||||
|
file->elements = new char*[file->nelements];
|
||||||
|
for (int i = 0; i < file->nelements; i++) {
|
||||||
|
const std::string word = values.next_string();
|
||||||
|
const int n = word.length() + 1;
|
||||||
|
file->elements[i] = new char[n];
|
||||||
|
strcpy(file->elements[i], word.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
values = reader.next_values(5);
|
||||||
|
file->nrho = values.next_int();
|
||||||
|
file->drho = values.next_double();
|
||||||
|
file->nr = values.next_int();
|
||||||
|
file->dr = values.next_double();
|
||||||
|
file->cut = values.next_double();
|
||||||
|
|
||||||
|
if ((file->nrho <= 0) || (file->nr <= 0) || (file->dr <= 0.0))
|
||||||
|
error->one(FLERR,"Invalid EAM potential file");
|
||||||
|
|
||||||
|
memory->create(file->mass, file->nelements, "pair:mass");
|
||||||
|
memory->create(file->frho, file->nelements, file->nrho + 1, "pair:frho");
|
||||||
|
memory->create(file->rhor, file->nelements, file->nelements, file->nr + 1, "pair:rhor");
|
||||||
|
memory->create(file->z2r, file->nelements, file->nelements, file->nr + 1, "pair:z2r");
|
||||||
|
|
||||||
|
for (int i = 0; i < file->nelements; i++) {
|
||||||
|
values = reader.next_values(2);
|
||||||
|
values.next_int(); // ignore
|
||||||
|
file->mass[i] = values.next_double();
|
||||||
|
|
||||||
|
reader.next_dvector(&file->frho[i][1], file->nrho);
|
||||||
|
|
||||||
|
for (int j = 0; j < file->nelements; j++) {
|
||||||
|
reader.next_dvector(&file->rhor[i][j][1], file->nr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < file->nelements; i++) {
|
||||||
|
for (int j = 0; j <= i; j++) {
|
||||||
|
reader.next_dvector(&file->z2r[i][j][1], file->nr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (TokenizerException & e) {
|
||||||
|
error->one(FLERR, e.what());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// read and broadcast header
|
// broadcast potential information
|
||||||
// extract element names from nelements line
|
MPI_Bcast(&file->nelements, 1, MPI_INT, 0, world);
|
||||||
|
|
||||||
int n;
|
MPI_Bcast(&file->nrho, 1, MPI_INT, 0, world);
|
||||||
if (me == 0) {
|
MPI_Bcast(&file->drho, 1, MPI_DOUBLE, 0, world);
|
||||||
fgets(line,MAXLINE,fptr);
|
MPI_Bcast(&file->nr, 1, MPI_INT, 0, world);
|
||||||
fgets(line,MAXLINE,fptr);
|
MPI_Bcast(&file->dr, 1, MPI_DOUBLE, 0, world);
|
||||||
fgets(line,MAXLINE,fptr);
|
MPI_Bcast(&file->cut, 1, MPI_DOUBLE, 0, world);
|
||||||
fgets(line,MAXLINE,fptr);
|
|
||||||
n = strlen(line) + 1;
|
// allocate memory on other procs
|
||||||
|
if (comm->me != 0) {
|
||||||
|
file->elements = new char*[file->nelements];
|
||||||
|
for (int i = 0; i < file->nelements; i++) file->elements[i] = nullptr;
|
||||||
|
memory->create(file->mass, file->nelements, "pair:mass");
|
||||||
|
memory->create(file->frho, file->nelements, file->nrho + 1, "pair:frho");
|
||||||
|
memory->create(file->rhor, file->nelements, file->nelements, file->nr + 1, "pair:rhor");
|
||||||
|
memory->create(file->z2r, file->nelements, file->nelements, file->nr + 1, "pair:z2r");
|
||||||
}
|
}
|
||||||
MPI_Bcast(&n,1,MPI_INT,0,world);
|
|
||||||
MPI_Bcast(line,n,MPI_CHAR,0,world);
|
|
||||||
|
|
||||||
sscanf(line,"%d",&file->nelements);
|
// broadcast file->elements string array
|
||||||
int nwords = atom->count_words(line);
|
|
||||||
if (nwords != file->nelements + 1)
|
|
||||||
error->all(FLERR,"Incorrect element names in EAM potential file");
|
|
||||||
|
|
||||||
char **words = new char*[file->nelements+1];
|
|
||||||
nwords = 0;
|
|
||||||
strtok(line," \t\n\r\f");
|
|
||||||
while ((words[nwords++] = strtok(NULL," \t\n\r\f"))) continue;
|
|
||||||
|
|
||||||
file->elements = new char*[file->nelements];
|
|
||||||
for (int i = 0; i < file->nelements; i++) {
|
for (int i = 0; i < file->nelements; i++) {
|
||||||
n = strlen(words[i]) + 1;
|
int n;
|
||||||
file->elements[i] = new char[n];
|
if (comm->me == 0) n = strlen(file->elements[i]) + 1;
|
||||||
strcpy(file->elements[i],words[i]);
|
MPI_Bcast(&n, 1, MPI_INT, 0, world);
|
||||||
}
|
if (comm->me != 0) file->elements[i] = new char[n];
|
||||||
delete [] words;
|
MPI_Bcast(file->elements[i], n, MPI_CHAR, 0, world);
|
||||||
|
|
||||||
if (me == 0) {
|
|
||||||
fgets(line,MAXLINE,fptr);
|
|
||||||
sscanf(line,"%d %lg %d %lg %lg",
|
|
||||||
&file->nrho,&file->drho,&file->nr,&file->dr,&file->cut);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MPI_Bcast(&file->nrho,1,MPI_INT,0,world);
|
// broadcast file->mass, frho, rhor
|
||||||
MPI_Bcast(&file->drho,1,MPI_DOUBLE,0,world);
|
for (int i = 0; i < file->nelements; i++) {
|
||||||
MPI_Bcast(&file->nr,1,MPI_INT,0,world);
|
MPI_Bcast(&file->mass[i], 1, MPI_DOUBLE, 0, world);
|
||||||
MPI_Bcast(&file->dr,1,MPI_DOUBLE,0,world);
|
MPI_Bcast(&file->frho[i][1], file->nrho, MPI_DOUBLE, 0, world);
|
||||||
MPI_Bcast(&file->cut,1,MPI_DOUBLE,0,world);
|
|
||||||
|
|
||||||
file->mass = new double[file->nelements];
|
for (int j = 0; j < file->nelements; j++) {
|
||||||
memory->create(file->frho,file->nelements,file->nrho+1,
|
MPI_Bcast(&file->rhor[i][j][1], file->nr, MPI_DOUBLE, 0, world);
|
||||||
"pair:frho");
|
|
||||||
memory->create(file->rhor,file->nelements,file->nelements,
|
|
||||||
file->nr+1,"pair:rhor");
|
|
||||||
memory->create(file->z2r,file->nelements,file->nelements,
|
|
||||||
file->nr+1,"pair:z2r");
|
|
||||||
|
|
||||||
int i,j,tmp;
|
|
||||||
for (i = 0; i < file->nelements; i++) {
|
|
||||||
if (me == 0) {
|
|
||||||
fgets(line,MAXLINE,fptr);
|
|
||||||
sscanf(line,"%d %lg",&tmp,&file->mass[i]);
|
|
||||||
}
|
|
||||||
MPI_Bcast(&file->mass[i],1,MPI_DOUBLE,0,world);
|
|
||||||
|
|
||||||
if (me == 0) grab(fptr,file->nrho,&file->frho[i][1]);
|
|
||||||
MPI_Bcast(&file->frho[i][1],file->nrho,MPI_DOUBLE,0,world);
|
|
||||||
|
|
||||||
for (j = 0; j < file->nelements; j++) {
|
|
||||||
if (me == 0) grab(fptr,file->nr,&file->rhor[i][j][1]);
|
|
||||||
MPI_Bcast(&file->rhor[i][j][1],file->nr,MPI_DOUBLE,0,world);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < file->nelements; i++)
|
// broadcast file->z2r
|
||||||
for (j = 0; j <= i; j++) {
|
for (int i = 0; i < file->nelements; i++) {
|
||||||
if (me == 0) grab(fptr,file->nr,&file->z2r[i][j][1]);
|
for (int j = 0; j <= i; j++) {
|
||||||
MPI_Bcast(&file->z2r[i][j][1],file->nr,MPI_DOUBLE,0,world);
|
MPI_Bcast(&file->z2r[i][j][1], file->nr, MPI_DOUBLE, 0, world);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// close the potential file
|
|
||||||
|
|
||||||
if (me == 0) fclose(fptr);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
|
|||||||
@ -32,6 +32,7 @@
|
|||||||
#include "neigh_request.h"
|
#include "neigh_request.h"
|
||||||
#include "atom_kokkos.h"
|
#include "atom_kokkos.h"
|
||||||
#include "kokkos.h"
|
#include "kokkos.h"
|
||||||
|
#include "utils.h"
|
||||||
|
|
||||||
#ifdef _OPENMP
|
#ifdef _OPENMP
|
||||||
#include <omp.h>
|
#include <omp.h>
|
||||||
@ -1752,7 +1753,7 @@ void PairExp6rxKokkos<DeviceType>::read_file(char *file)
|
|||||||
// strip comment, skip line if blank
|
// strip comment, skip line if blank
|
||||||
|
|
||||||
if ((ptr = strchr(line,'#'))) *ptr = '\0';
|
if ((ptr = strchr(line,'#'))) *ptr = '\0';
|
||||||
nwords = atom->count_words(line);
|
nwords = utils::count_words(line);
|
||||||
if (nwords == 0) continue;
|
if (nwords == 0) continue;
|
||||||
|
|
||||||
// concatenate additional lines until have params_per_line words
|
// concatenate additional lines until have params_per_line words
|
||||||
@ -1771,7 +1772,7 @@ void PairExp6rxKokkos<DeviceType>::read_file(char *file)
|
|||||||
MPI_Bcast(&n,1,MPI_INT,0,world);
|
MPI_Bcast(&n,1,MPI_INT,0,world);
|
||||||
MPI_Bcast(line,n,MPI_CHAR,0,world);
|
MPI_Bcast(line,n,MPI_CHAR,0,world);
|
||||||
if ((ptr = strchr(line,'#'))) *ptr = '\0';
|
if ((ptr = strchr(line,'#'))) *ptr = '\0';
|
||||||
nwords = atom->count_words(line);
|
nwords = utils::count_words(line);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nwords != params_per_line)
|
if (nwords != params_per_line)
|
||||||
|
|||||||
@ -51,7 +51,8 @@ struct DoCoul<1> {
|
|||||||
|
|
||||||
//Specialisation for Neighborlist types Half, HalfThread, Full
|
//Specialisation for Neighborlist types Half, HalfThread, Full
|
||||||
template <class PairStyle, int NEIGHFLAG, bool STACKPARAMS, class Specialisation = void>
|
template <class PairStyle, int NEIGHFLAG, bool STACKPARAMS, class Specialisation = void>
|
||||||
struct PairComputeFunctor {
|
class PairComputeFunctor {
|
||||||
|
public:
|
||||||
typedef typename PairStyle::device_type device_type ;
|
typedef typename PairStyle::device_type device_type ;
|
||||||
typedef ArrayTypes<device_type> AT;
|
typedef ArrayTypes<device_type> AT;
|
||||||
|
|
||||||
|
|||||||
@ -112,7 +112,7 @@ public:
|
|||||||
void operator() (TagPairSNAPComputeDeidrjCPU,const typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPComputeDeidrjCPU>::member_type& team) const;
|
void operator() (TagPairSNAPComputeDeidrjCPU,const typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPComputeDeidrjCPU>::member_type& team) const;
|
||||||
|
|
||||||
KOKKOS_INLINE_FUNCTION
|
KOKKOS_INLINE_FUNCTION
|
||||||
void operator() (TagPairSNAPBeta,const typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPBeta>::member_type& team) const;
|
void operator() (TagPairSNAPBeta,const int& ii) const;
|
||||||
|
|
||||||
template<int NEIGHFLAG>
|
template<int NEIGHFLAG>
|
||||||
KOKKOS_INLINE_FUNCTION
|
KOKKOS_INLINE_FUNCTION
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user