mirror of https://github.com/lammps/lammps.git
Merge branch 'master' into feature-cnt
This commit is contained in:
commit
cf5c748fb4
|
@ -117,6 +117,9 @@ tools/msi2lmp/* @akohlmey
|
|||
tools/emacs/* @HaoZeke
|
||||
tools/singularity/* @akohlmey @rbberger
|
||||
|
||||
# tests
|
||||
unittest/* @akohlmey @rbberger
|
||||
|
||||
# cmake
|
||||
cmake/* @junghans @rbberger
|
||||
cmake/Modules/Packages/USER-COLVARS.cmake @junghans @rbberger @giacomofiorin
|
||||
|
|
|
@ -3,6 +3,11 @@
|
|||
# This file is part of LAMMPS
|
||||
# Created by Christoph Junghans and Richard Berger
|
||||
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)
|
||||
set(SOVERSION 0)
|
||||
|
@ -27,6 +32,12 @@ endif()
|
|||
# Cmake modules/macros are in a subdirectory to keep this file cleaner
|
||||
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)
|
||||
|
||||
get_lammps_version(${LAMMPS_SOURCE_DIR}/version.h PROJECT_VERSION)
|
||||
|
@ -60,11 +71,11 @@ if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel")
|
|||
endif()
|
||||
|
||||
if(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
|
||||
set(CMAKE_TUNE_DEFAULT "-ffast-math -march=native")
|
||||
set(CMAKE_TUNE_DEFAULT "-march=native")
|
||||
endif()
|
||||
|
||||
if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
|
||||
set(CMAKE_TUNE_DEFAULT "-ffast-math -march=native")
|
||||
set(CMAKE_TUNE_DEFAULT "-march=native")
|
||||
endif()
|
||||
|
||||
# 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)
|
||||
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)
|
||||
file(GLOB MODULE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/Modules/Find*.cmake)
|
||||
install(FILES ${MODULE_FILES} DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/LAMMPS)
|
||||
include(CMakePackageConfigHelpers)
|
||||
configure_file(LAMMPSConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/LAMMPSConfig.cmake @ONLY)
|
||||
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)
|
||||
if(@BUILD_MPI@)
|
||||
find_dependency(MPI REQUIRED CXX)
|
||||
endif()
|
||||
if(@PKG_KSPACE@)
|
||||
if(@FFT@ STREQUAL "FFTW3")
|
||||
find_dependency(@FFTW@ REQUIRED MODULE)
|
||||
endif()
|
||||
endif()
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/LAMMPS_Targets.cmake")
|
||||
|
|
|
@ -15,14 +15,35 @@ if(ENABLE_COVERAGE)
|
|||
gen_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}
|
||||
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(
|
||||
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}
|
||||
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()
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
# TBB_MALLOC_FOUND - True if tbb found.
|
||||
#
|
||||
|
||||
|
||||
########################################################
|
||||
# TBB Malloc
|
||||
|
||||
|
|
|
@ -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)
|
|
@ -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)")
|
||||
|
||||
# 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)
|
||||
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] ")
|
||||
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})
|
||||
|
||||
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")
|
||||
if(FFT_SINGLE)
|
||||
set(FFTW "FFTW3F")
|
||||
target_compile_definitions(lammps PUBLIC -DFFT_SINGLE)
|
||||
target_compile_definitions(lammps PRIVATE -DFFT_SINGLE)
|
||||
endif()
|
||||
find_package(${FFTW} QUIET)
|
||||
if(${FFTW}_FOUND)
|
||||
|
@ -17,8 +17,8 @@ string(TOUPPER ${FFT} FFT)
|
|||
|
||||
if(FFT STREQUAL "FFTW3")
|
||||
find_package(${FFTW} REQUIRED)
|
||||
target_compile_definitions(lammps PUBLIC -DFFT_FFTW3)
|
||||
target_link_libraries(lammps PUBLIC ${FFTW}::${FFTW})
|
||||
target_compile_definitions(lammps PRIVATE -DFFT_FFTW3)
|
||||
target_link_libraries(lammps PRIVATE ${FFTW}::${FFTW})
|
||||
if(FFTW3_OMP_LIBRARY OR FFTW3F_OMP_LIBRARY)
|
||||
option(FFT_FFTW_THREADS "Use threaded FFTW library" ON)
|
||||
else()
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
enable_language(C)
|
||||
|
||||
if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.12)
|
||||
cmake_policy(SET CMP0074 NEW)
|
||||
endif()
|
||||
find_package(HDF5 REQUIRED)
|
||||
target_link_libraries(h5md PRIVATE ${HDF5_LIBRARIES})
|
||||
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.
|
||||
# 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)
|
||||
endif()
|
||||
|
||||
# may use NetCDF or PNetCDF with MPI, but must have NetCDF without
|
||||
if(NOT BUILD_MPI)
|
||||
find_package(NetCDF REQUIRED)
|
||||
else()
|
||||
|
|
|
@ -4,48 +4,7 @@
|
|||
option(ENABLE_TESTING "Enable testing" OFF)
|
||||
if(ENABLE_TESTING)
|
||||
enable_testing()
|
||||
option(LAMMPS_TESTING_SOURCE_DIR "Location of lammps-testing source directory" "")
|
||||
option(LAMMPS_TESTING_GIT_TAG "Git tag of lammps-testing" "master")
|
||||
mark_as_advanced(LAMMPS_TESTING_SOURCE_DIR LAMMPS_TESTING_GIT_TAG)
|
||||
|
||||
if (CMAKE_VERSION VERSION_GREATER "3.10.3" AND NOT LAMMPS_TESTING_SOURCE_DIR)
|
||||
include(FetchContent)
|
||||
|
||||
FetchContent_Declare(lammps-testing
|
||||
GIT_REPOSITORY https://github.com/lammps/lammps-testing.git
|
||||
GIT_TAG ${LAMMPS_TESTING_GIT_TAG}
|
||||
)
|
||||
|
||||
FetchContent_GetProperties(lammps-testing)
|
||||
if(NOT lammps-testing_POPULATED)
|
||||
message(STATUS "Downloading tests...")
|
||||
FetchContent_Populate(lammps-testing)
|
||||
endif()
|
||||
|
||||
set(LAMMPS_TESTING_SOURCE_DIR ${lammps-testing_SOURCE_DIR})
|
||||
elseif(NOT LAMMPS_TESTING_SOURCE_DIR)
|
||||
message(WARNING "Full test-suite requires CMake >= 3.11 or copy of\n"
|
||||
"https://github.com/lammps/lammps-testing in LAMMPS_TESTING_SOURCE_DIR")
|
||||
endif()
|
||||
|
||||
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()
|
||||
get_filename_component(LAMMPS_UNITTEST_DIR ${LAMMPS_SOURCE_DIR}/../unittest ABSOLUTE)
|
||||
get_filename_component(LAMMPS_UNITTEST_BIN ${CMAKE_BINARY_DIR}/unittest ABSOLUTE)
|
||||
add_subdirectory(${LAMMPS_UNITTEST_DIR} ${LAMMPS_UNITTEST_BIN})
|
||||
endif()
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.TH LAMMPS "5 May 2020" "2020-05-5"
|
||||
.TH LAMMPS "2 June 2020" "2020-06-02"
|
||||
.SH NAME
|
||||
.B LAMMPS
|
||||
\- 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
|
||||
should make certain that only the necessary subset of files are
|
||||
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
|
||||
your system with:
|
||||
|
|
|
@ -57,53 +57,252 @@ variable during configuration. Examples:
|
|||
|
||||
.. _testing:
|
||||
|
||||
Code Coverage and Testing
|
||||
---------------------------------------
|
||||
Code Coverage and Unit Testing
|
||||
------------------------------
|
||||
|
||||
We do extensive regression testing of the LAMMPS code base on a continuous
|
||||
basis. Some of the logic to do this has been added to the CMake build so
|
||||
developers can run the tests directly on their workstation.
|
||||
The LAMMPS code is subject to multiple levels of automated testing
|
||||
during development: integration testing (i.e. whether the code compiles
|
||||
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::
|
||||
|
||||
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
|
||||
|
||||
-D ENABLE_TESTING=value # enable simple run tests of LAMMPS, value = no (default) or yes
|
||||
-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
|
||||
-D ENABLE_COVERAGE=on # enable coverage measurements (off by default)
|
||||
|
||||
If you enable testing in the CMake build it will create an additional
|
||||
target called "test". You can run them with:
|
||||
This will instrument all object files to write information about which
|
||||
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
|
||||
|
||||
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
|
||||
derivatives of the examples folder with some modifications to make the
|
||||
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:
|
||||
These reports require `GCOVR <https://gcovr.com/>`_ to be installed. The easiest way
|
||||
to do this to install it via pip:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
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
|
||||
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
|
||||
set appropriate environment variables. Some variables such as
|
||||
: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:`pair_coeff <pair_coeff>`
|
||||
* :doc:`pair_modify <pair_modify>`
|
||||
* :doc:`pair_style <pair_style>`
|
||||
* :doc:`pair_write <pair_write>`
|
||||
* :doc:`partition <partition>`
|
||||
* :doc:`prd <prd>`
|
||||
|
|
|
@ -147,6 +147,7 @@ OPT.
|
|||
* :doc:`oneway <fix_oneway>`
|
||||
* :doc:`orient/bcc <fix_orient>`
|
||||
* :doc:`orient/fcc <fix_orient>`
|
||||
* :doc:`orient/eco <fix_orient_eco>`
|
||||
* :doc:`phonon <fix_phonon>`
|
||||
* :doc:`pimd <fix_pimd>`
|
||||
* :doc:`planeforce <fix_planeforce>`
|
||||
|
|
|
@ -92,8 +92,8 @@ OPT.
|
|||
* :doc:`drip <pair_drip>`
|
||||
* :doc:`eam (gikot) <pair_eam>`
|
||||
* :doc:`eam/alloy (gikot) <pair_eam>`
|
||||
* :doc:`eam/cd (o) <pair_eam>`
|
||||
* :doc:`eam/cd/old (o) <pair_eam>`
|
||||
* :doc:`eam/cd <pair_eam>`
|
||||
* :doc:`eam/cd/old <pair_eam>`
|
||||
* :doc:`eam/fs (gikot) <pair_eam>`
|
||||
* :doc:`edip (o) <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.
|
||||
|
||||
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.
|
||||
Example: ``cmake --build . all``. The following abstract targets are available:
|
||||
be build through appending the ``--target`` flag and the name of the target
|
||||
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::
|
||||
:header-rows: 1
|
||||
|
@ -432,7 +434,7 @@ Example: ``cmake --build . all``. The following abstract targets are available:
|
|||
* - ``install``
|
||||
- install all target files into folders in ``CMAKE_INSTALL_PREFIX``
|
||||
* - ``test``
|
||||
- run some simple tests (if configured with ``-D ENABLE_TESTING=on``)
|
||||
- run some tests (if configured with ``-D ENABLE_TESTING=on``)
|
||||
* - ``clean``
|
||||
- remove all generated files
|
||||
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 153 KiB |
Binary file not shown.
After Width: | Height: | Size: 110 KiB |
Binary file not shown.
After Width: | Height: | Size: 302 KiB |
Binary file not shown.
After Width: | Height: | Size: 238 KiB |
|
@ -1,37 +1,51 @@
|
|||
Submitting new features for inclusion in LAMMPS
|
||||
===============================================
|
||||
|
||||
We encourage users to submit new features or modifications for LAMMPS
|
||||
to `the core developers <https://lammps.sandia.gov/authors.html>`_ so they
|
||||
can be added to the LAMMPS distribution. The preferred way to manage
|
||||
and coordinate this is as of Fall 2016 via the LAMMPS project on
|
||||
`GitHub <https://github.com/lammps/lammps>`_. An 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.
|
||||
We encourage users to submit new features or modifications for LAMMPS to
|
||||
`the core developers <https://lammps.sandia.gov/authors.html>`_ so they
|
||||
can be added to the LAMMPS distribution. The preferred way to manage and
|
||||
coordinate this is via the LAMMPS project on `GitHub
|
||||
<https://github.com/lammps/lammps>`_. Please see the :doc:`GitHub
|
||||
Tutorial <Howto_github>` for a demonstration on how to do that. An
|
||||
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
|
||||
encouraged to contact the LAMMPS developers ahead of time, in order to
|
||||
discuss implementation strategies and coding guidelines, that will
|
||||
make it easier to integrate your contribution and result in less work
|
||||
for everybody involved. You are also encouraged to search through the
|
||||
list of `open issues on GitHub <https://github.com/lammps/lammps/issues>`_ and submit a new issue
|
||||
for a planned feature, so you would not duplicate the work of others
|
||||
(and possibly get scooped by them) or have your work duplicated by
|
||||
others.
|
||||
For any larger modifications or programming project, you are encouraged
|
||||
to contact the LAMMPS developers ahead of time, in order to discuss
|
||||
implementation strategies and coding guidelines, that will make it
|
||||
easier to integrate your contribution and result in less work for
|
||||
everybody involved. You are also encouraged to search through the list
|
||||
of `open issues on GitHub <https://github.com/lammps/lammps/issues>`_
|
||||
and submit a new issue for a planned feature, so you would not duplicate
|
||||
the work of others (and possibly get scooped by them) or have your work
|
||||
duplicated by others.
|
||||
|
||||
How quickly your contribution will be integrated depends largely on
|
||||
how much effort it will cause to integrate and test it, how much it
|
||||
requires changes to the core codebase, and of how much interest it is
|
||||
to the 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.
|
||||
For informal communication with (some of) the LAMMPS developers you may
|
||||
ask to join the `LAMMPS developers on Slack <https://lammps.slack.com>`_.
|
||||
This slack work space is by invitation only. Thus for access, please
|
||||
send an e-mail to ``slack@lammps.org`` explaining what part of LAMMPS
|
||||
you are working on. Only discussions related to LAMMPS development are
|
||||
tolerated, so this is **NOT** for people that look for help with compiling,
|
||||
installing, or using LAMMPS. Please contact the `lammps-users mailing
|
||||
list <https://lammps.sandia.gov>`_ for those purposes instead.
|
||||
|
||||
How quickly your contribution will be integrated depends largely on how
|
||||
much effort it will cause to integrate and test it, how much it requires
|
||||
changes to the core codebase, and of how much interest it is to the
|
||||
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
|
||||
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
|
||||
* `2017 LAMMPS Workshop <https://lammps.sandia.gov/workshops/Aug17/pdf/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 \\
|
||||
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
|
||||
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
|
||||
|
|
|
@ -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
|
||||
coordinates in nanometers and time in picoseconds. I.e. for *real*
|
||||
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
|
||||
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
|
||||
most effective when the typical magnitude of position data is between
|
||||
10.0 and 0.1.
|
||||
|
|
|
@ -290,6 +290,7 @@ accelerated styles exist.
|
|||
* :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/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:`pimd <fix_pimd>` - Feynman path integral molecular dynamics
|
||||
* :doc:`planeforce <fix_planeforce>` - constrain atoms to move in a plane
|
||||
|
|
|
@ -300,7 +300,8 @@ either 'none' or 'charges.' Further details are provided in the
|
|||
discussion of the 'update_edges' keyword. The fifth optional section
|
||||
begins with the keyword 'Constraints' and lists additional criteria
|
||||
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:
|
||||
|
||||
|
@ -353,8 +354,9 @@ has syntax as follows:
|
|||
distance *ID1* *ID2* *rmin* *rmax*
|
||||
|
||||
where 'distance' is the required keyword, *ID1* and *ID2* are
|
||||
pre-reaction atom IDs, and these two atoms must be separated by a
|
||||
distance between *rmin* and *rmax* for the reaction to occur.
|
||||
pre-reaction atom IDs (or molecule-fragment IDs, see below), and these
|
||||
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:
|
||||
|
||||
|
@ -363,11 +365,11 @@ The constraint of type 'angle' has the following syntax:
|
|||
angle *ID1* *ID2* *ID3* *amin* *amax*
|
||||
|
||||
where 'angle' is the required keyword, *ID1*\ , *ID2* and *ID3* are
|
||||
pre-reaction atom IDs, and these three atoms must form an angle
|
||||
between *amin* and *amax* for the reaction to occur (where *ID2* is
|
||||
the central atom). Angles must be specified in degrees. This
|
||||
constraint can be used to enforce a certain orientation between
|
||||
reacting molecules.
|
||||
pre-reaction atom IDs (or molecule-fragment IDs, see below), and these
|
||||
three atoms must form an angle between *amin* and *amax* for the
|
||||
reaction to occur (where *ID2* is the central atom). Angles must be
|
||||
specified in degrees. This constraint can be used to enforce a certain
|
||||
orientation between reacting molecules.
|
||||
|
||||
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*
|
||||
|
||||
where 'dihedral' is the required keyword, and *ID1*\ , *ID2*\ , *ID3*
|
||||
and *ID4* are pre-reaction atom IDs. Dihedral angles are calculated in
|
||||
the interval (-180,180]. Refer to the :doc:`dihedral style <dihedral_style>`
|
||||
documentation for further details on convention. If *amin* is less
|
||||
than *amax*, these four atoms must form a dihedral angle greater than
|
||||
*amin* **and** less than *amax* for the reaction to occur. If *amin*
|
||||
is greater than *amax*, these four atoms must form a dihedral angle
|
||||
greater than *amin* **or** less than *amax* for the reaction to occur.
|
||||
Angles must be specified in degrees. Optionally, a second range of
|
||||
permissible angles *amin2*-*amax2* can be specified.
|
||||
and *ID4* are pre-reaction atom IDs (or molecule-fragment IDs, see
|
||||
below). Dihedral angles are calculated in the interval (-180,180].
|
||||
Refer to the :doc:`dihedral style <dihedral_style>` documentation for
|
||||
further details on convention. If *amin* is less than *amax*, these
|
||||
four atoms must form a dihedral angle greater than *amin* **and** less
|
||||
than *amax* for the reaction to occur. If *amin* is greater than
|
||||
*amax*, these four atoms must form a dihedral angle greater than
|
||||
*amin* **or** less than *amax* for the reaction to occur. Angles must
|
||||
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
|
||||
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
|
||||
length. The distance can be in lattice or box distance units. See
|
||||
the discussion of the units keyword below. For example, if the
|
||||
initial box length is 100 Angstroms, and V is 10 Angstroms/psec, then
|
||||
after 10 psec, the box length will have doubled. After 20 psec, it
|
||||
initial box length is 100 Angstroms, and V is 10 Angstroms/ps, then
|
||||
after 10 ps, the box length will have doubled. After 20 ps, it
|
||||
will have tripled.
|
||||
|
||||
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
|
||||
specified as 0.1 and time units are picoseconds, this means the box
|
||||
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
|
||||
every picosecond. Note that for an "engineering" rate the change is
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
|
@ -317,8 +317,8 @@ specified in units of distance/time. This is effectively an
|
|||
initial box length perpendicular to the direction of shear. The
|
||||
distance can be in lattice or box distance units. See the discussion
|
||||
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
|
||||
tilt factor will be 15 Angstroms. After 2 psec, it will be 25
|
||||
is 5 Angstroms, and the V is 10 Angstroms/ps, then after 1 ps, the
|
||||
tilt factor will be 15 Angstroms. After 2 ps, it will be 25
|
||||
Angstroms.
|
||||
|
||||
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
|
||||
*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
|
||||
the xy shear strain was initially 0.0, then strain after 1 psec = 0.1,
|
||||
strain after 2 psec = 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
|
||||
the xy shear strain was initially 0.0, then strain after 1 ps = 0.1,
|
||||
strain after 2 ps = 0.2, etc. Thus the tilt factor would be 0.0 at
|
||||
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
|
||||
by 1 or 2 every picosecond. R = -0.01 means a decrease in shear
|
||||
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
|
||||
are picoseconds, this means the shear strain or tilt factor will
|
||||
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
|
||||
triple every picosecond. R = ln(0.99) means the tilt factor will
|
||||
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
|
||||
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,
|
||||
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
|
||||
|
|
|
@ -188,7 +188,7 @@ particles.
|
|||
*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
|
||||
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
|
||||
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*
|
||||
origin. This setting is ignored for the *variable* style. A *box*
|
||||
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
|
||||
units are in lattice spacings per time and the amplitude and position
|
||||
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*
|
||||
origin. This setting is ignored for the *variable* style. A *box*
|
||||
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
|
||||
units are in lattice spacings per time and the amplitude and position
|
||||
are in lattice spacings. The :doc:`lattice <lattice>` command must have
|
||||
|
|
|
@ -46,7 +46,7 @@ Syntax
|
|||
|
||||
.. 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
|
||||
Tstart,Tstop = external temperature at start/end of run
|
||||
Tdamp = temperature damping parameter (time units)
|
||||
|
@ -69,6 +69,8 @@ Syntax
|
|||
*nreset* value = reset reference cell every this many timesteps
|
||||
*drag* value = Df
|
||||
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-group-ID = only dilate atoms in this group due to barostat volume changes
|
||||
*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*
|
||||
parameter is specified in time units and determines how rapidly the
|
||||
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
|
||||
fmsec or psec - see the :doc:`units <units>` command). The atoms in the
|
||||
the temperature in a timespan of (roughly) 10 time units (e.g. :math:`\tau`
|
||||
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
|
||||
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
|
||||
*Tdamp* parameter, determining the time 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 (e.g. tau or fmsec or psec - see
|
||||
the :doc:`units <units>` command).
|
||||
a timespan of (roughly) 10 time units (e.g. :math:`\tau` or fs or ps
|
||||
- see the :doc:`units <units>` command).
|
||||
|
||||
.. note::
|
||||
|
||||
|
@ -208,6 +210,28 @@ the :doc:`units <units>` command).
|
|||
time units, and that timesteps are NOT the same as time units for most
|
||||
: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
|
||||
are time integrated), a global pressure or stress tensor is computed
|
||||
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*
|
||||
parameter is specified in time units and determines how rapidly the
|
||||
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
|
||||
fmsec or psec - see the :doc:`units <units>` command). The atoms in the
|
||||
the temperature in a timespan of (roughly) 10 time units (e.g. :math:`\tau`
|
||||
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
|
||||
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
|
||||
*Tdamp* parameter, determining the time 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 (e.g. tau or fmsec or psec - see
|
||||
the :doc:`units <units>` command).
|
||||
a timespan of (roughly) 10 time units (e.g. :math:`\tau` or fs or ps
|
||||
- see the :doc:`units <units>` command).
|
||||
|
||||
.. note::
|
||||
|
||||
|
|
|
@ -94,7 +94,7 @@ corresponds to T = 300 K.
|
|||
The *damp* parameter is specified in time units and determines how
|
||||
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
|
||||
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
|
||||
viscosity of the solvent, i.e. a small relaxation time implies a
|
||||
high-viscosity solvent and vice versa. See the discussion about gamma
|
||||
|
|
|
@ -6,6 +6,9 @@ fix orient/fcc command
|
|||
fix orient/bcc command
|
||||
======================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
fix ID group-ID orient/fcc nstats dir alat dE cutlo cuthi file0 file1
|
||||
|
|
|
@ -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
|
||||
=================
|
||||
|
||||
Syntax:
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. 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
|
||||
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
|
||||
(tau or fmsec or psec - see the :doc:`units <units>` command).
|
||||
(tau or fs or ps - see the :doc:`units <units>` command).
|
||||
|
||||
.. note::
|
||||
|
||||
|
|
|
@ -3,6 +3,9 @@
|
|||
fix rhok command
|
||||
================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
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
|
||||
*Tdamp* parameter, determining the time 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 (e.g. tau or fmsec or psec - see
|
||||
the :doc:`units <units>` command).
|
||||
a timespan of (roughly) 10 time units (e.g. :math:`\tau` or fs or ps
|
||||
- see the :doc:`units <units>` command).
|
||||
|
||||
Regardless of what atoms are in the fix group (the only atoms which
|
||||
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
|
||||
units and determines how rapidly the temperature is relaxed. For
|
||||
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
|
||||
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
|
||||
rapidly the temperature is relaxed. For 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 :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
|
||||
*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
|
||||
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
|
||||
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).
|
||||
|
||||
*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
|
||||
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
|
||||
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).
|
||||
|
||||
*Tstart* can be specified as an equal-style :doc:`variable <variable>`.
|
||||
|
|
|
@ -88,7 +88,7 @@ time:
|
|||
|
||||
\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
|
||||
function
|
||||
|
||||
|
|
|
@ -45,7 +45,7 @@ Syntax
|
|||
radius = cylinder radius (distance units)
|
||||
|
||||
* zero or more keyword/value pairs may be appended to args
|
||||
* keyword = *wiggle* or *shear*
|
||||
* keyword = *wiggle* or *shear* or *contacts*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
|
@ -56,6 +56,9 @@ Syntax
|
|||
*shear* values = dim vshear
|
||||
dim = *x* or *y* or *z*
|
||||
vshear = magnitude of shear velocity (velocity units)
|
||||
*contacts* value = none
|
||||
generate contact information for each particle
|
||||
|
||||
|
||||
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 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 6 all wall/gran hooke 200000.0 NULL 50.0 NULL 0.5 0 xplane -10.0 10.0 contacts
|
||||
|
||||
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
|
||||
the wall at whatever *radius* has been defined.
|
||||
|
||||
|
||||
**Restart, fix_modify, output, run start/stop, minimize info:**
|
||||
|
||||
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
|
||||
uninterrupted fashion.
|
||||
|
||||
None of the :doc:`fix_modify <fix_modify>` options are relevant to this
|
||||
fix. No global or per-atom quantities are stored by this fix for
|
||||
access by various :doc:`output commands <Howto_output>`. 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>`.
|
||||
If the :code:`contacts` option is used, this fix generates a per-atom array
|
||||
with 8 columns as output, containing the contact information for owned
|
||||
particles (nlocal on each processor). All columns in this per-atom array will
|
||||
be zero if no contact has occurred. The values of these columns are listed in
|
||||
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
|
||||
""""""""""""
|
||||
|
|
|
@ -8,7 +8,7 @@ Syntax
|
|||
|
||||
.. 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
|
||||
* 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)
|
||||
* region-ID = region whose boundary will act as wall
|
||||
* keyword = *contacts*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*contacts* value = none
|
||||
generate contact information for each particle
|
||||
|
||||
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 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 wall all wall/gran/region hooke/history 1000.0 200.0 200.0 100.0 0.5 1 region myCone contacts
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
@ -215,11 +222,37 @@ uninterrupted fashion.
|
|||
use the same fix ID for fix wall/gran/region, but assign it a region
|
||||
with a different region ID.
|
||||
|
||||
None of the :doc:`fix_modify <fix_modify>` options are relevant to this
|
||||
fix. No global or per-atom quantities are stored by this fix for
|
||||
access by various :doc:`output commands <Howto_output>`. 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>`.
|
||||
If the :code:`contacts` option is used, this fix generates a per-atom array
|
||||
with 8 columns as output, containing the contact information for owned
|
||||
particles (nlocal on each processor). All columns in this per-atom array will
|
||||
be zero if no contact has occurred. The values of these columns are listed in
|
||||
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
|
||||
""""""""""""
|
||||
|
|
|
@ -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
|
||||
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.
|
||||
|
||||
----------
|
||||
|
||||
The *force/disp/real* and *force/disp/kspace* keywords set the force
|
||||
accuracy for the real and space computations for the dispersion part
|
||||
of pppm/disp. As shown in :ref:`(Isele-Holder) <Isele-Holder1>`, optimal
|
||||
performance and accuracy in the results is obtained when these values
|
||||
are different.
|
||||
accuracy for the real and reciprocal space computations for the dispersion
|
||||
part of pppm/disp. As shown in :ref:`(Isele-Holder) <Isele-Holder1>`,
|
||||
optimal performance and accuracy in the results is obtained when these
|
||||
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
|
||||
accuracy for the real and space computations for the dispersion part
|
||||
of pppm/disp. As shown in :ref:`(Isele-Holder) <Isele-Holder1>`, optimal
|
||||
performance and accuracy in the results is obtained when these values
|
||||
are different.
|
||||
accuracy for the real and reciprocal space computations for the dispersion
|
||||
part of pppm/disp. As shown in :ref:`(Isele-Holder) <Isele-Holder1>`,
|
||||
optimal performance and accuracy in the results is obtained when these
|
||||
values are different.
|
||||
|
||||
The *disp/auto* option controls whether the pppm/disp is allowed to
|
||||
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/omp command
|
||||
=============================
|
||||
|
||||
pair_style eam/cd/old command
|
||||
=============================
|
||||
|
||||
pair_style eam/cd/old/omp command
|
||||
=================================
|
||||
|
||||
pair_style eam/fs command
|
||||
=========================
|
||||
|
||||
|
|
|
@ -28,7 +28,9 @@ Syntax
|
|||
* 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
|
||||
|
||||
**Examples:** (all assume radius = 1)
|
||||
Examples
|
||||
""""""""
|
||||
(all assume radius = 1)
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
|
|
|
@ -22,7 +22,9 @@ Syntax
|
|||
* 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
|
||||
|
||||
**Examples:** (all assume radius = 1)
|
||||
Examples
|
||||
""""""""
|
||||
(all assume radius = 1)
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
|
|
|
@ -8,7 +8,14 @@ Syntax
|
|||
|
||||
.. 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
|
||||
""""""""
|
||||
|
@ -16,6 +23,7 @@ Examples
|
|||
.. code-block:: LAMMPS
|
||||
|
||||
reset_ids
|
||||
reset_ids sort yes
|
||||
|
||||
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
|
||||
the "fix evaporate" command).
|
||||
|
||||
Note that the resetting of IDs is not really 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.
|
||||
If the *sort* keyword is used with a setting of *yes*, then the
|
||||
assignment of new atom IDs will be the same no matter how many
|
||||
processors LAMMPS is running on. This is done by first doing a
|
||||
spatial sort of all the atoms into bins and sorting them within each
|
||||
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::
|
||||
|
||||
|
@ -59,4 +88,7 @@ Related commands
|
|||
|
||||
: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
|
||||
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
|
||||
inner timestep would be 8x smaller or 0.5 fmsec. All other LAMMPS
|
||||
4-level rRESPA, and the outer timestep is set to 4.0 fs, then the
|
||||
inner timestep would be 8x smaller or 0.5 fs. All other LAMMPS
|
||||
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
|
||||
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
|
||||
the concepts are adaptable to other problems. Without SHAKE, bonds
|
||||
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,
|
||||
impropers, and dihedrals can be computed on this innermost 0.5 fmsec
|
||||
step. The outermost timestep cannot be greater than 4.0 fmsec without
|
||||
impropers, and dihedrals can be computed on this innermost 0.5 fs
|
||||
step. The outermost timestep cannot be greater than 4.0 fs without
|
||||
risking energy drift. Smooth switching of forces between the levels
|
||||
of the rRESPA hierarchy is also necessary to avoid drift, and a 1-2
|
||||
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
|
||||
|
||||
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.
|
||||
|
||||
If SHAKE is used with the *respa* style, time reversibility is lost,
|
||||
but substantially longer time steps can be achieved. For biomolecular
|
||||
simulations using the CHARMM or similar all-atom force field, bonds
|
||||
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
|
||||
the modes are coupled. It is therefore desirable to use SHAKE with
|
||||
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
|
||||
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
|
||||
advantageous if there is a clear separation of time scales - fast and
|
||||
|
|
|
@ -28,7 +28,8 @@ Syntax
|
|||
*angle* value = *yes* or *no*
|
||||
*dihedral* value = *yes* or *no*
|
||||
|
||||
Examples:
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
|
|
|
@ -46,22 +46,22 @@ Related commands
|
|||
Default
|
||||
"""""""
|
||||
|
||||
+--------------------------------+------------+-----------------------+
|
||||
| choice of :doc:`units <units>` | time units | default timestep size |
|
||||
+--------------------------------+------------+-----------------------+
|
||||
| lj | tau | 0.005 tau |
|
||||
+--------------------------------+------------+-----------------------+
|
||||
| real | fmsec | 1.0 fmsec |
|
||||
+--------------------------------+------------+-----------------------+
|
||||
| metal | psec | 0.001 psec |
|
||||
+--------------------------------+------------+-----------------------+
|
||||
| si | sec | 1.0e-8 sec (10 nsec) |
|
||||
+--------------------------------+------------+-----------------------+
|
||||
| cgs | sec | 1.0e-8 sec (10 nsec) |
|
||||
+--------------------------------+------------+-----------------------+
|
||||
| electron | fmsec | 0.001 fmsec |
|
||||
+--------------------------------+------------+-----------------------+
|
||||
| micro | usec | 2.0 usec |
|
||||
+--------------------------------+------------+-----------------------+
|
||||
| nano | nsec | 0.00045 nsec |
|
||||
+--------------------------------+------------+-----------------------+
|
||||
+--------------------------------+---------------+-----------------------+
|
||||
| choice of :doc:`units <units>` | time units | default timestep size |
|
||||
+--------------------------------+---------------+-----------------------+
|
||||
| lj | :math:`\tau` | 0.005 :math:`\tau` |
|
||||
+--------------------------------+---------------+-----------------------+
|
||||
| real | fs | 1.0 fs |
|
||||
+--------------------------------+---------------+-----------------------+
|
||||
| metal | ps | 0.001 ps |
|
||||
+--------------------------------+---------------+-----------------------+
|
||||
| si | s | 1.0e-8 s (10 ns) |
|
||||
+--------------------------------+---------------+-----------------------+
|
||||
| cgs | s | 1.0e-8 s (10 ns) |
|
||||
+--------------------------------+---------------+-----------------------+
|
||||
| electron | fs | 0.001 fs |
|
||||
+--------------------------------+---------------+-----------------------+
|
||||
| micro | :math:`\mu`\ s| 2.0 :math:`\mu`\ s |
|
||||
+--------------------------------+---------------+-----------------------+
|
||||
| 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
|
||||
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 *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.
|
||||
|
|
|
@ -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 velocities and coordinates specified in the velocity command are
|
||||
in the standard units described by the :doc:`units <units>` command
|
||||
(e.g. Angstroms/fmsec for real units). If units = lattice, velocities
|
||||
are in units of lattice spacings per time (e.g. spacings/fmsec) and
|
||||
(e.g. Angstroms/fs for real units). If units = lattice, velocities
|
||||
are in units of lattice spacings per time (e.g. spacings/fs) and
|
||||
coordinates are in lattice spacings. The :doc:`lattice <lattice>`
|
||||
command must have been previously used to define the lattice spacing.
|
||||
|
||||
|
|
|
@ -136,6 +136,7 @@ atan
|
|||
atc
|
||||
AtC
|
||||
ATC
|
||||
athermal
|
||||
athomps
|
||||
atm
|
||||
atomeye
|
||||
|
@ -226,6 +227,7 @@ Bfrac
|
|||
bgq
|
||||
Bh
|
||||
Bialke
|
||||
bicrystal
|
||||
Biersack
|
||||
bigbig
|
||||
bigint
|
||||
|
@ -287,6 +289,7 @@ br
|
|||
Branduardi
|
||||
Branicio
|
||||
brennan
|
||||
Brien
|
||||
Brilliantov
|
||||
Broadwell
|
||||
Broglie
|
||||
|
@ -633,7 +636,6 @@ dipolar
|
|||
dir
|
||||
Direc
|
||||
dirname
|
||||
disarmmd
|
||||
discoverable
|
||||
discretization
|
||||
discretized
|
||||
|
@ -726,6 +728,7 @@ ebook
|
|||
ebt
|
||||
ec
|
||||
Ec
|
||||
eco
|
||||
ecoul
|
||||
ecp
|
||||
Ecut
|
||||
|
@ -950,7 +953,6 @@ fmackay
|
|||
fmag
|
||||
fmass
|
||||
fmm
|
||||
fmsec
|
||||
fmx
|
||||
fmy
|
||||
fmz
|
||||
|
@ -1834,6 +1836,7 @@ Modine
|
|||
mofff
|
||||
MOFFF
|
||||
Mohd
|
||||
Mohles
|
||||
mol
|
||||
Mol
|
||||
molfile
|
||||
|
@ -1999,6 +2002,7 @@ Neumann
|
|||
Nevent
|
||||
nevery
|
||||
Nevery
|
||||
newfile
|
||||
Newns
|
||||
newtype
|
||||
Neyts
|
||||
|
@ -2091,9 +2095,9 @@ Nroff
|
|||
nrun
|
||||
Ns
|
||||
Nsample
|
||||
nsec
|
||||
Nskip
|
||||
Nspecies
|
||||
ns
|
||||
nsq
|
||||
Nstart
|
||||
nstats
|
||||
|
@ -2177,6 +2181,7 @@ optimizations
|
|||
orangered
|
||||
organometallic
|
||||
orientational
|
||||
orientationsFile
|
||||
orientorder
|
||||
Orlikowski
|
||||
ornl
|
||||
|
@ -2366,7 +2371,6 @@ ps
|
|||
Ps
|
||||
pscreen
|
||||
pscrozi
|
||||
psec
|
||||
pseudodynamics
|
||||
pseudopotential
|
||||
Pstart
|
||||
|
@ -2471,6 +2475,7 @@ rdc
|
|||
rdf
|
||||
RDideal
|
||||
rdx
|
||||
reacter
|
||||
README
|
||||
realtime
|
||||
reamin
|
||||
|
@ -2642,6 +2647,7 @@ Schimansky
|
|||
Schiotz
|
||||
Schlitter
|
||||
Schmid
|
||||
Schratt
|
||||
Schoen
|
||||
Schotte
|
||||
Schulten
|
||||
|
@ -3060,6 +3066,7 @@ ul
|
|||
ulb
|
||||
Uleft
|
||||
uloop
|
||||
Ulomek
|
||||
ulsph
|
||||
uMech
|
||||
umin
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
../../../../potentials/Ni_u3.eam
|
File diff suppressed because it is too large
Load Diff
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
File diff suppressed because it is too large
Load Diff
|
@ -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
|
||||
KOKKOS_PATH=../../lib/kokkos
|
||||
endif
|
||||
|
||||
CXXFLAGS=$(CCFLAGS)
|
||||
ifeq ($(mode),shared)
|
||||
CXXFLAGS += $(SHFLAGS)
|
||||
endif
|
||||
|
||||
KOKKOS_VERSION_MAJOR = 3
|
||||
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
|
||||
KOKKOS_DEVICES ?= "OpenMP"
|
||||
#KOKKOS_DEVICES ?= "Pthread"
|
||||
# Options:
|
||||
# Options:
|
||||
# Intel: KNC,KNL,SNB,HSW,BDW,SKX
|
||||
# NVIDIA: Kepler,Kepler30,Kepler32,Kepler35,Kepler37,Maxwell,Maxwell50,Maxwell52,Maxwell53,Pascal60,Pascal61,Volta70,Volta72,Turing75
|
||||
# ARM: ARMv80,ARMv81,ARMv8-ThunderX,ARMv8-TX2
|
||||
# IBM: BGQ,Power7,Power8,Power9
|
||||
# AMD-GPUS: Vega900,Vega906
|
||||
# AMD-CPUS: AMDAVX,Ryzen,EPYC
|
||||
# AMD-CPUS: AMDAVX,EPYC
|
||||
KOKKOS_ARCH ?= ""
|
||||
# Options: yes,no
|
||||
KOKKOS_DEBUG ?= "no"
|
||||
|
@ -47,11 +51,15 @@ KOKKOS_HIP_OPTIONS ?= ""
|
|||
# Options: enable_async_dispatch
|
||||
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
|
||||
# Note the search string should be without '"'
|
||||
# Example: $(call kokkos_has_string,"hwloc,librt",hwloc)
|
||||
# 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
|
||||
# Example: $(call kokkos_path_exists,/path/to/file)
|
||||
# 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_PASCAL61) \
|
||||
+ $(KOKKOS_INTERNAL_USE_ARCH_PASCAL60) \
|
||||
+ $(KOKKOS_INTERNAL_USE_ARCH_VOLTA70) \
|
||||
+ $(KOKKOS_INTERNAL_USE_ARCH_VOLTA72) \
|
||||
+ $(KOKKOS_INTERNAL_USE_ARCH_TURING75) \
|
||||
+ $(KOKKOS_INTERNAL_USE_ARCH_VOLTA70) \
|
||||
+ $(KOKKOS_INTERNAL_USE_ARCH_VOLTA72) \
|
||||
+ $(KOKKOS_INTERNAL_USE_ARCH_TURING75) \
|
||||
+ $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL50) \
|
||||
+ $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL52) \
|
||||
+ $(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_PASCAL61) \
|
||||
+ $(KOKKOS_INTERNAL_USE_ARCH_PASCAL60) \
|
||||
+ $(KOKKOS_INTERNAL_USE_ARCH_VOLTA70) \
|
||||
+ $(KOKKOS_INTERNAL_USE_ARCH_VOLTA72) \
|
||||
+ $(KOKKOS_INTERNAL_USE_ARCH_TURING75) \
|
||||
+ $(KOKKOS_INTERNAL_USE_ARCH_VOLTA70) \
|
||||
+ $(KOKKOS_INTERNAL_USE_ARCH_VOLTA72) \
|
||||
+ $(KOKKOS_INTERNAL_USE_ARCH_TURING75) \
|
||||
+ $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL50) \
|
||||
+ $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL52) \
|
||||
+ $(KOKKOS_INTERNAL_USE_ARCH_MAXWELL53))
|
||||
|
@ -386,7 +394,6 @@ KOKKOS_INTERNAL_USE_ARCH_IBM := $(strip $(shell echo $(KOKKOS_INTERNAL_USE_ARCH_
|
|||
|
||||
# AMD based.
|
||||
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_VEGA900 := $(call kokkos_has_string,$(KOKKOS_ARCH),Vega900)
|
||||
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,"\#define KOKKOS_VERSION $(KOKKOS_VERSION)")
|
||||
tmp := $(call kokkos_append_header,"")
|
||||
|
||||
|
||||
tmp := $(call kokkos_append_header,"/* Execution Spaces */")
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1)
|
||||
|
@ -1015,8 +1022,8 @@ ifeq ($(KOKKOS_INTERNAL_USE_CUDA_ARCH), 1)
|
|||
ifeq ($(KOKKOS_INTERNAL_COMPILER_NVCC), 1)
|
||||
KOKKOS_INTERNAL_CUDA_ARCH_FLAG=-arch
|
||||
else ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 1)
|
||||
KOKKOS_INTERNAL_CUDA_ARCH_FLAG=--cuda-gpu-arch
|
||||
KOKKOS_CXXFLAGS += -x cuda
|
||||
KOKKOS_INTERNAL_CUDA_ARCH_FLAG=--cuda-gpu-arch
|
||||
KOKKOS_CXXFLAGS += -x cuda
|
||||
else
|
||||
$(error Makefile.kokkos: CUDA is enabled but the compiler is neither NVCC nor Clang (got version string $(KOKKOS_CXX_VERSION)) )
|
||||
endif
|
||||
|
|
|
@ -19,13 +19,13 @@
|
|||
# 27 entries for a system containing three elements A, B and C
|
||||
# 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
|
||||
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
|
||||
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
|
||||
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
|
||||
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.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
|
||||
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
|
||||
|
|
|
@ -645,6 +645,8 @@
|
|||
/fix_oneway.h
|
||||
/fix_orient_bcc.cpp
|
||||
/fix_orient_bcc.h
|
||||
/fix_orient_eco.cpp
|
||||
/fix_orient_eco.h
|
||||
/fix_orient_fcc.cpp
|
||||
/fix_orient_fcc.h
|
||||
/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;
|
||||
if (strcmp(str,"r0")==0) return (void*) r0;
|
||||
|
|
|
@ -35,7 +35,7 @@ class BondClass2 : public Bond {
|
|||
virtual void read_restart(FILE *);
|
||||
void write_data(FILE *);
|
||||
double single(int, double, int, int, double &);
|
||||
virtual void *extract(char *, int &);
|
||||
virtual void *extract(const char *, int &);
|
||||
|
||||
protected:
|
||||
double *r0,*k2,*k3,*k4;
|
||||
|
|
|
@ -69,6 +69,7 @@ if (test $1 = "DIPOLE") then
|
|||
fi
|
||||
|
||||
if (test $1 = "GRANULAR") then
|
||||
depend KOKKOS
|
||||
depend USER-OMP
|
||||
fi
|
||||
|
||||
|
|
|
@ -31,11 +31,11 @@
|
|||
#include "domain.h"
|
||||
#include "utils.h"
|
||||
#include "suffix.h"
|
||||
#include "tokenizer.h"
|
||||
#include "potential_file_reader.h"
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
|
||||
#define MAXLINE 1024
|
||||
|
||||
// External functions from cuda library for atom decomposition
|
||||
|
||||
int eam_alloy_gpu_init(const int ntypes, double host_cutforcesq,
|
||||
|
@ -369,94 +369,107 @@ void PairEAMAlloyGPU::read_file(char *filename)
|
|||
{
|
||||
Setfl *file = setfl;
|
||||
|
||||
// open potential file
|
||||
// read potential file
|
||||
if(comm->me == 0) {
|
||||
PotentialFileReader reader(lmp, filename, "EAM");
|
||||
|
||||
int me = comm->me;
|
||||
FILE *fptr;
|
||||
char line[MAXLINE];
|
||||
try {
|
||||
reader.skip_line();
|
||||
reader.skip_line();
|
||||
reader.skip_line();
|
||||
|
||||
if (me == 0) {
|
||||
fptr = fopen(filename,"r");
|
||||
if (fptr == NULL) {
|
||||
char str[128];
|
||||
snprintf(str,128,"Cannot open EAM potential file %s",filename);
|
||||
error->one(FLERR,str);
|
||||
// extract element names from nelements line
|
||||
ValueTokenizer values = reader.next_values(1);
|
||||
file->nelements = values.next_int();
|
||||
|
||||
if (values.count() != file->nelements + 1)
|
||||
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
|
||||
// extract element names from nelements line
|
||||
// broadcast potential information
|
||||
MPI_Bcast(&file->nelements, 1, MPI_INT, 0, world);
|
||||
|
||||
int n;
|
||||
if (me == 0) {
|
||||
utils::sfgets(FLERR,line,MAXLINE,fptr,filename,error);
|
||||
utils::sfgets(FLERR,line,MAXLINE,fptr,filename,error);
|
||||
utils::sfgets(FLERR,line,MAXLINE,fptr,filename,error);
|
||||
utils::sfgets(FLERR,line,MAXLINE,fptr,filename,error);
|
||||
n = strlen(line) + 1;
|
||||
MPI_Bcast(&file->nrho, 1, MPI_INT, 0, world);
|
||||
MPI_Bcast(&file->drho, 1, MPI_DOUBLE, 0, world);
|
||||
MPI_Bcast(&file->nr, 1, MPI_INT, 0, world);
|
||||
MPI_Bcast(&file->dr, 1, MPI_DOUBLE, 0, world);
|
||||
MPI_Bcast(&file->cut, 1, MPI_DOUBLE, 0, world);
|
||||
|
||||
// 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);
|
||||
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];
|
||||
// broadcast file->elements string array
|
||||
for (int i = 0; i < file->nelements; i++) {
|
||||
n = strlen(words[i]) + 1;
|
||||
file->elements[i] = new char[n];
|
||||
strcpy(file->elements[i],words[i]);
|
||||
}
|
||||
delete [] words;
|
||||
|
||||
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);
|
||||
int n;
|
||||
if (comm->me == 0) n = strlen(file->elements[i]) + 1;
|
||||
MPI_Bcast(&n, 1, MPI_INT, 0, world);
|
||||
if (comm->me != 0) file->elements[i] = new char[n];
|
||||
MPI_Bcast(file->elements[i], n, MPI_CHAR, 0, world);
|
||||
}
|
||||
|
||||
MPI_Bcast(&file->nrho,1,MPI_INT,0,world);
|
||||
MPI_Bcast(&file->drho,1,MPI_DOUBLE,0,world);
|
||||
MPI_Bcast(&file->nr,1,MPI_INT,0,world);
|
||||
MPI_Bcast(&file->dr,1,MPI_DOUBLE,0,world);
|
||||
MPI_Bcast(&file->cut,1,MPI_DOUBLE,0,world);
|
||||
// broadcast file->mass, frho, rhor
|
||||
for (int i = 0; i < file->nelements; i++) {
|
||||
MPI_Bcast(&file->mass[i], 1, MPI_DOUBLE, 0, world);
|
||||
MPI_Bcast(&file->frho[i][1], file->nrho, MPI_DOUBLE, 0, world);
|
||||
MPI_Bcast(&file->rhor[i][1], file->nr, MPI_DOUBLE, 0, world);
|
||||
}
|
||||
|
||||
file->mass = new double[file->nelements];
|
||||
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");
|
||||
|
||||
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]);
|
||||
// broadcast file->z2r
|
||||
for (int i = 0; i < file->nelements; i++) {
|
||||
for (int j = 0; j <= i; j++) {
|
||||
MPI_Bcast(&file->z2r[i][j][1], file->nr, MPI_DOUBLE, 0, world);
|
||||
}
|
||||
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 "domain.h"
|
||||
#include "suffix.h"
|
||||
#include "utils.h"
|
||||
#include "tokenizer.h"
|
||||
#include "potential_file_reader.h"
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
|
||||
#define MAXLINE 1024
|
||||
|
||||
// External functions from cuda library for atom decomposition
|
||||
|
||||
int eam_fs_gpu_init(const int ntypes, double host_cutforcesq,
|
||||
|
@ -368,99 +369,113 @@ void PairEAMFSGPU::read_file(char *filename)
|
|||
{
|
||||
Fs *file = fs;
|
||||
|
||||
// open potential file
|
||||
// read potential file
|
||||
if(comm->me == 0) {
|
||||
PotentialFileReader reader(lmp, filename, "EAM");
|
||||
|
||||
int me = comm->me;
|
||||
FILE *fptr;
|
||||
char line[MAXLINE];
|
||||
try {
|
||||
reader.skip_line();
|
||||
reader.skip_line();
|
||||
reader.skip_line();
|
||||
|
||||
if (me == 0) {
|
||||
fptr = force->open_potential(filename);
|
||||
if (fptr == NULL) {
|
||||
char str[128];
|
||||
snprintf(str,128,"Cannot open EAM potential file %s",filename);
|
||||
error->one(FLERR,str);
|
||||
// extract element names from nelements line
|
||||
ValueTokenizer values = reader.next_values(1);
|
||||
file->nelements = values.next_int();
|
||||
|
||||
if (values.count() != file->nelements + 1)
|
||||
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
|
||||
// extract element names from nelements line
|
||||
// broadcast potential information
|
||||
MPI_Bcast(&file->nelements, 1, MPI_INT, 0, world);
|
||||
|
||||
int n;
|
||||
if (me == 0) {
|
||||
fgets(line,MAXLINE,fptr);
|
||||
fgets(line,MAXLINE,fptr);
|
||||
fgets(line,MAXLINE,fptr);
|
||||
fgets(line,MAXLINE,fptr);
|
||||
n = strlen(line) + 1;
|
||||
MPI_Bcast(&file->nrho, 1, MPI_INT, 0, world);
|
||||
MPI_Bcast(&file->drho, 1, MPI_DOUBLE, 0, world);
|
||||
MPI_Bcast(&file->nr, 1, MPI_INT, 0, world);
|
||||
MPI_Bcast(&file->dr, 1, MPI_DOUBLE, 0, world);
|
||||
MPI_Bcast(&file->cut, 1, MPI_DOUBLE, 0, world);
|
||||
|
||||
// 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);
|
||||
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];
|
||||
// broadcast file->elements string array
|
||||
for (int i = 0; i < file->nelements; i++) {
|
||||
n = strlen(words[i]) + 1;
|
||||
file->elements[i] = new char[n];
|
||||
strcpy(file->elements[i],words[i]);
|
||||
}
|
||||
delete [] words;
|
||||
|
||||
if (me == 0) {
|
||||
fgets(line,MAXLINE,fptr);
|
||||
sscanf(line,"%d %lg %d %lg %lg",
|
||||
&file->nrho,&file->drho,&file->nr,&file->dr,&file->cut);
|
||||
int n;
|
||||
if (comm->me == 0) n = strlen(file->elements[i]) + 1;
|
||||
MPI_Bcast(&n, 1, MPI_INT, 0, world);
|
||||
if (comm->me != 0) file->elements[i] = new char[n];
|
||||
MPI_Bcast(file->elements[i], n, MPI_CHAR, 0, world);
|
||||
}
|
||||
|
||||
MPI_Bcast(&file->nrho,1,MPI_INT,0,world);
|
||||
MPI_Bcast(&file->drho,1,MPI_DOUBLE,0,world);
|
||||
MPI_Bcast(&file->nr,1,MPI_INT,0,world);
|
||||
MPI_Bcast(&file->dr,1,MPI_DOUBLE,0,world);
|
||||
MPI_Bcast(&file->cut,1,MPI_DOUBLE,0,world);
|
||||
// broadcast file->mass, frho, rhor
|
||||
for (int i = 0; i < file->nelements; i++) {
|
||||
MPI_Bcast(&file->mass[i], 1, MPI_DOUBLE, 0, world);
|
||||
MPI_Bcast(&file->frho[i][1], file->nrho, MPI_DOUBLE, 0, world);
|
||||
|
||||
file->mass = new double[file->nelements];
|
||||
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");
|
||||
|
||||
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 (int j = 0; j < file->nelements; j++) {
|
||||
MPI_Bcast(&file->rhor[i][j][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);
|
||||
// broadcast file->z2r
|
||||
for (int i = 0; i < file->nelements; i++) {
|
||||
for (int j = 0; j <= i; j++) {
|
||||
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]);
|
||||
wshear = 1;
|
||||
iarg += 3;
|
||||
} else if (strcmp(arg[iarg],"store_contacts") == 0) {
|
||||
} else if (strcmp(arg[iarg],"contacts") == 0) {
|
||||
peratom_flag = 1;
|
||||
size_peratom_cols = 8;
|
||||
peratom_freq = 1;
|
||||
|
@ -426,10 +426,7 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) :
|
|||
}
|
||||
|
||||
if (peratom_flag) {
|
||||
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;
|
||||
clear_stored_contacts();
|
||||
}
|
||||
|
||||
time_origin = update->ntimestep;
|
||||
|
@ -596,6 +593,10 @@ void FixWallGran::post_force(int /*vflag*/)
|
|||
|
||||
rwall = 0.0;
|
||||
|
||||
if (peratom_flag) {
|
||||
clear_stored_contacts();
|
||||
}
|
||||
|
||||
for (int i = 0; i < nlocal; i++) {
|
||||
if (mask[i] & groupbit) {
|
||||
|
||||
|
@ -668,7 +669,7 @@ void FixWallGran::post_force(int /*vflag*/)
|
|||
|
||||
// store contact info
|
||||
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][5] = x[i][1] - dy;
|
||||
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*/)
|
||||
|
|
|
@ -110,6 +110,8 @@ class FixWallGran : public Fix {
|
|||
// store particle interactions
|
||||
|
||||
int store;
|
||||
|
||||
void clear_stored_contacts();
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -178,6 +178,10 @@ void FixWallGranRegion::post_force(int /*vflag*/)
|
|||
region->set_velocity();
|
||||
}
|
||||
|
||||
if (peratom_flag) {
|
||||
clear_stored_contacts();
|
||||
}
|
||||
|
||||
for (i = 0; i < nlocal; i++) {
|
||||
if (mask[i] & groupbit) {
|
||||
if (!region->match(x[i][0],x[i][1],x[i][2])) continue;
|
||||
|
|
|
@ -57,6 +57,8 @@
|
|||
------------------------------------------------------------------------- */
|
||||
|
||||
#include "kim_init.h"
|
||||
#include "fix_store_kim.h"
|
||||
#include "kim_units.h"
|
||||
#include <cstring>
|
||||
#include <string>
|
||||
#include <sstream>
|
||||
|
@ -71,8 +73,8 @@
|
|||
#include "input.h"
|
||||
#include "variable.h"
|
||||
#include "citeme.h"
|
||||
#include "fix_store_kim.h"
|
||||
#include "kim_units.h"
|
||||
#include "utils.h"
|
||||
#include "fmt/format.h"
|
||||
|
||||
extern "C" {
|
||||
#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, "
|
||||
"required 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);
|
||||
|
||||
// Begin output to log file
|
||||
kim_init_log_delimiter("begin");
|
||||
input->write_echo("#=== BEGIN kim-init ==========================================\n");
|
||||
|
||||
int kimerror;
|
||||
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";
|
||||
|
||||
if (screen) fputs(mesg.c_str(),screen);
|
||||
if (logfile) fputs(mesg.c_str(),logfile);
|
||||
utils::logmesg(lmp,mesg);
|
||||
}
|
||||
|
||||
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 ");
|
||||
cmd += model_units;
|
||||
input->one(cmd.c_str());
|
||||
input->one(cmd);
|
||||
|
||||
if (model_type == SM) {
|
||||
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";
|
||||
}
|
||||
}
|
||||
else
|
||||
mesg += "No mutable parameters. \n";
|
||||
else mesg += "No mutable parameters. \n";
|
||||
|
||||
KIM_Model_Destroy(&pkim);
|
||||
|
||||
if (comm->me == 0)
|
||||
{
|
||||
input->write_echo(mesg.c_str());
|
||||
}
|
||||
input->write_echo(mesg);
|
||||
}
|
||||
|
||||
// End output to log file
|
||||
kim_init_log_delimiter("end");
|
||||
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
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());
|
||||
}
|
||||
input->write_echo("#=== END kim-init ============================================\n\n");
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
@ -493,14 +471,8 @@ void KimInit::do_variables(char *user_units, char *model_units)
|
|||
(char *)"efield",
|
||||
(char *)"density"};
|
||||
|
||||
if (comm->me == 0) {
|
||||
std::string mesg("# Conversion factors from ");
|
||||
mesg += from;
|
||||
mesg += " to ";
|
||||
mesg += to;
|
||||
mesg += ":\n";
|
||||
input->write_echo(mesg.c_str());
|
||||
}
|
||||
input->write_echo(fmt::format("# Conversion factors from {} to {}:\n",
|
||||
from,to));
|
||||
|
||||
for (int i = 0; i < nunits; 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,
|
||||
to,
|
||||
conversion_factor);
|
||||
if (ier != 0) {
|
||||
std::string err = std::string("Unable to obtain conversion factor: ") +
|
||||
"unit = " + units[i] + "; "
|
||||
"from = " + from + "; "
|
||||
"to = " + to + ".";
|
||||
error->all(FLERR,err.c_str());
|
||||
}
|
||||
if (ier != 0)
|
||||
error->all(FLERR,fmt::format("Unable to obtain conversion factor: "
|
||||
"unit = {}; from = {}; to = {}.",
|
||||
units[i], from, to));
|
||||
|
||||
variable->internal_set(v_unit,conversion_factor);
|
||||
if (comm->me == 0) {
|
||||
std::stringstream mesg;
|
||||
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());
|
||||
}
|
||||
input->write_echo(fmt::format("variable {:<15s} internal {:<15.12e}\n",
|
||||
var_str, conversion_factor));
|
||||
}
|
||||
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;
|
||||
int err = KIM_Collections_Create(&coll);
|
||||
if (err) return;
|
||||
|
||||
int extent;
|
||||
if (model_type == MO)
|
||||
{
|
||||
if (model_type == MO) {
|
||||
err = KIM_Collections_CacheListOfItemMetadataFiles(
|
||||
coll,KIM_COLLECTION_ITEM_TYPE_portableModel,model_name,&extent);
|
||||
}
|
||||
else if (model_type == SM)
|
||||
{
|
||||
coll,KIM_COLLECTION_ITEM_TYPE_portableModel,model_name.c_str(),&extent);
|
||||
} else if (model_type == SM) {
|
||||
err = KIM_Collections_CacheListOfItemMetadataFiles(
|
||||
coll,KIM_COLLECTION_ITEM_TYPE_simulatorModel,model_name,&extent);
|
||||
}
|
||||
else
|
||||
{
|
||||
coll,KIM_COLLECTION_ITEM_TYPE_simulatorModel,model_name.c_str(),&extent);
|
||||
} else {
|
||||
error->all(FLERR,"Unknown model type.");
|
||||
}
|
||||
|
||||
if (err)
|
||||
{
|
||||
if (err) {
|
||||
KIM_Collections_Destroy(&coll);
|
||||
return;
|
||||
}
|
||||
|
||||
for (int i = 0; i < extent;++i)
|
||||
{
|
||||
for (int i = 0; i < extent;++i) {
|
||||
char const * fileName;
|
||||
int availableAsString;
|
||||
char const * fileString;
|
||||
|
@ -573,8 +530,7 @@ void KimInit::write_log_cite(char * model_name)
|
|||
coll,i,&fileName,NULL,NULL,&availableAsString,&fileString);
|
||||
if (err) continue;
|
||||
|
||||
if (0 == strncmp("kimcite",fileName,7))
|
||||
{
|
||||
if (0 == strncmp("kimcite",fileName,7)) {
|
||||
if ((lmp->citeme) && (availableAsString)) lmp->citeme->add(fileString);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -83,10 +83,9 @@ class KimInit : protected Pointers {
|
|||
bool unit_conversion_mode;
|
||||
|
||||
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_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)
|
||||
{
|
||||
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'");
|
||||
|
||||
// Begin output to log file
|
||||
kim_interactions_log_delimiter("begin");
|
||||
input->write_echo("#=== BEGIN kim_interactions ==================================\n");
|
||||
|
||||
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());
|
||||
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 *strword;
|
||||
|
||||
|
@ -192,7 +174,7 @@ void KimInteractions::do_setup(int narg, char **arg)
|
|||
std::string msg("Species '");
|
||||
msg += strword;
|
||||
msg += "' is not supported by this KIM Simulator Model";
|
||||
error->all(FLERR,msg.c_str());
|
||||
error->all(FLERR,msg);
|
||||
}
|
||||
strword = strtok(NULL," \t");
|
||||
}
|
||||
|
@ -276,13 +258,12 @@ void KimInteractions::do_setup(int narg, char **arg)
|
|||
cmd2 += " ";
|
||||
}
|
||||
|
||||
input->one(cmd1.c_str());
|
||||
input->one(cmd2.c_str());
|
||||
input->one(cmd1);
|
||||
input->one(cmd2);
|
||||
}
|
||||
|
||||
// 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;
|
||||
else if (species == "He") return 2;
|
||||
|
|
|
@ -76,9 +76,8 @@ class KimInteractions : protected Pointers {
|
|||
void command(int, char **);
|
||||
private:
|
||||
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_interactions_log_delimiter(std::string const begin_end) const;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -56,6 +56,8 @@
|
|||
------------------------------------------------------------------------- */
|
||||
|
||||
#include "kim_param.h"
|
||||
#include "fix_store_kim.h"
|
||||
#include "pair_kim.h"
|
||||
#include <mpi.h>
|
||||
#include <cstring>
|
||||
#include <string>
|
||||
|
@ -66,8 +68,7 @@
|
|||
#include "modify.h"
|
||||
#include "variable.h"
|
||||
#include "force.h"
|
||||
#include "fix_store_kim.h"
|
||||
#include "pair_kim.h"
|
||||
#include "fmt/format.h"
|
||||
|
||||
extern "C"
|
||||
{
|
||||
|
@ -157,13 +158,12 @@ void KimParam::command(int narg, char **arg)
|
|||
if (narg < 4)
|
||||
error->all(FLERR, "Illegal kim_param command");
|
||||
|
||||
kim_param_get = (strcmp(arg[0], "get") == 0);
|
||||
kim_param_set = (strcmp(arg[0], "set") == 0);
|
||||
std::string kim_param_get_set = arg[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");
|
||||
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
|
||||
|
@ -193,7 +193,8 @@ void KimParam::command(int narg, char **arg)
|
|||
else
|
||||
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;
|
||||
|
||||
|
@ -211,7 +212,7 @@ void KimParam::command(int narg, char **arg)
|
|||
if (!pkim)
|
||||
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();
|
||||
if (atom_type_list.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,"
|
||||
" but there is no match for kim style in lammps.");
|
||||
} else {
|
||||
if (kim_param_set) {
|
||||
if (kim_param_get_set == "set") {
|
||||
std::string msg("Wrong kim_param set command.\n");
|
||||
msg += "To set the new parameter values, pair style must be assigned.\n";
|
||||
msg += "Must use 'kim_interactions' or";
|
||||
msg += "'pair_style kim ' before 'kim_param set'";
|
||||
error->all(FLERR, msg.c_str());
|
||||
error->all(FLERR, msg);
|
||||
} else {
|
||||
KIM_LengthUnit lengthUnit;
|
||||
KIM_EnergyUnit energyUnit;
|
||||
|
@ -259,7 +260,7 @@ void KimParam::command(int narg, char **arg)
|
|||
KIM_Model_GetNumberOfParameters(pkim, &numberOfParameters);
|
||||
if (numberOfParameters) {
|
||||
// Get the parameters
|
||||
if (kim_param_get) {
|
||||
if (kim_param_get_set == "get") {
|
||||
// Parameter name
|
||||
char *paramname = NULL;
|
||||
// Variable name
|
||||
|
@ -296,7 +297,7 @@ void KimParam::command(int narg, char **arg)
|
|||
msg += "This Model does not have the requested '";
|
||||
msg += paramname;
|
||||
msg += "' parameter.";
|
||||
error->all(FLERR, msg.c_str());
|
||||
error->all(FLERR, msg);
|
||||
}
|
||||
|
||||
// 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 += argtostr;
|
||||
msg += "' in index_range.";
|
||||
error->all(FLERR, msg.c_str());
|
||||
error->all(FLERR, msg);
|
||||
}
|
||||
|
||||
std::string::size_type npos = argtostr.find(':');
|
||||
|
@ -330,7 +331,7 @@ void KimParam::command(int narg, char **arg)
|
|||
msg += "' parameter with extent of '";
|
||||
msg += SNUM(extent);
|
||||
msg += "' .";
|
||||
error->all(FLERR, msg.c_str());
|
||||
error->all(FLERR, msg);
|
||||
}
|
||||
} else {
|
||||
std::stringstream str(argtostr);
|
||||
|
@ -342,7 +343,7 @@ void KimParam::command(int narg, char **arg)
|
|||
msg += "' with the extent of '";
|
||||
msg += SNUM(extent);
|
||||
msg += "' .";
|
||||
error->all(FLERR, msg.c_str());
|
||||
error->all(FLERR, msg);
|
||||
}
|
||||
nubound = nlbound;
|
||||
}
|
||||
|
@ -350,7 +351,7 @@ void KimParam::command(int narg, char **arg)
|
|||
std::string msg("Wrong number of arguments in ");
|
||||
msg += "kim_param get command.\n";
|
||||
msg += "Index range after parameter name is mandatory.";
|
||||
error->all(FLERR, msg.c_str());
|
||||
error->all(FLERR, msg);
|
||||
}
|
||||
|
||||
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 ");
|
||||
msg += "kim_param get command.\n";
|
||||
msg += "The LAMMPS variable name is mandatory.";
|
||||
error->all(FLERR, msg.c_str());
|
||||
error->all(FLERR, msg);
|
||||
}
|
||||
|
||||
// indicator flag for list request
|
||||
|
@ -400,7 +401,7 @@ void KimParam::command(int narg, char **arg)
|
|||
msg += "' variable names or '";
|
||||
msg += varname;
|
||||
msg += " split' is mandatory.";
|
||||
error->all(FLERR, msg.c_str());
|
||||
error->all(FLERR, msg);
|
||||
}
|
||||
} else {
|
||||
std::string msg("Wrong number of arguments in ");
|
||||
|
@ -410,7 +411,7 @@ void KimParam::command(int narg, char **arg)
|
|||
msg += "' variable names or '";
|
||||
msg += varname;
|
||||
msg += " split/list' is mandatory.";
|
||||
error->all(FLERR, msg.c_str());
|
||||
error->all(FLERR, msg);
|
||||
}
|
||||
} else {
|
||||
varsname = new char *[1];
|
||||
|
@ -524,7 +525,7 @@ void KimParam::command(int narg, char **arg)
|
|||
set_cmd += " ";
|
||||
set_cmd += arg[i];
|
||||
}
|
||||
input->one(set_cmd.c_str());
|
||||
input->one(set_cmd);
|
||||
}
|
||||
} else
|
||||
error->all(FLERR, "This model has No mutable parameters.");
|
||||
|
@ -532,38 +533,17 @@ void KimParam::command(int narg, char **arg)
|
|||
if (!isPairStyleAssigned)
|
||||
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) {
|
||||
std::string msg;
|
||||
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());
|
||||
}
|
||||
input->write_echo(fmt::format("variable {} string {}\n",
|
||||
name, value));
|
||||
}
|
||||
|
||||
#undef SNUM
|
||||
|
|
|
@ -80,10 +80,7 @@ public:
|
|||
void command(int, char **);
|
||||
|
||||
private:
|
||||
void kim_param_log_delimiter(std::string const &begin_end) const;
|
||||
|
||||
void echo_var_assign(std::string const &name, std::string const &value)
|
||||
const;
|
||||
void echo_var_assign(const std::string &name, const std::string &value) const;
|
||||
|
||||
private:
|
||||
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");
|
||||
msg += "`kim_property create/destroy/modify/remove/dump` ";
|
||||
msg += "is mandatory.";
|
||||
error->all(FLERR, msg.c_str());
|
||||
error->all(FLERR, msg);
|
||||
}
|
||||
|
||||
if (comm->me == 0) {
|
||||
std::string msg;
|
||||
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
|
||||
|
@ -464,7 +464,8 @@ void kimProperty::command(int narg, char **arg)
|
|||
error->one(FLERR, "Error Python `kim_property_dump` function "
|
||||
"evaluation failed!");
|
||||
}
|
||||
}
|
||||
} else
|
||||
pValue = NULL;
|
||||
|
||||
// Destroy the variable
|
||||
kim_str_cmd[1] = const_cast<char *>("delete");
|
||||
|
|
|
@ -56,6 +56,7 @@
|
|||
------------------------------------------------------------------------- */
|
||||
|
||||
#include "kim_query.h"
|
||||
#include "fix_store_kim.h"
|
||||
#include <mpi.h>
|
||||
#include <cstring>
|
||||
#include <string>
|
||||
|
@ -67,7 +68,7 @@
|
|||
#include "variable.h"
|
||||
#include "version.h"
|
||||
#include "info.h"
|
||||
#include "fix_store_kim.h"
|
||||
#include "fmt/format.h"
|
||||
|
||||
#if defined(LMP_KIM_CURL)
|
||||
#include <sys/types.h>
|
||||
|
@ -153,7 +154,7 @@ void KimQuery::command(int narg, char **arg)
|
|||
error->all(FLERR,errmsg);
|
||||
}
|
||||
|
||||
kim_query_log_delimiter("begin");
|
||||
input->write_echo("#=== BEGIN kim-query =========================================\n");
|
||||
char **varcmd = new char*[3];
|
||||
varcmd[1] = (char *) "string";
|
||||
|
||||
|
@ -186,7 +187,7 @@ void KimQuery::command(int narg, char **arg)
|
|||
input->variable->set(3,varcmd);
|
||||
echo_var_assign(varname, value_string);
|
||||
}
|
||||
kim_query_log_delimiter("end");
|
||||
input->write_echo("#=== END kim-query ===========================================\n\n");
|
||||
|
||||
delete[] varcmd;
|
||||
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) {
|
||||
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());
|
||||
}
|
||||
input->write_echo(fmt::format("variable {} string {}\n",name,value));
|
||||
}
|
||||
|
|
|
@ -73,8 +73,7 @@ class KimQuery : protected Pointers {
|
|||
KimQuery(class LAMMPS *lmp) : Pointers(lmp) {};
|
||||
void command(int, char **);
|
||||
private:
|
||||
void kim_query_log_delimiter(std::string const begin_end) const;
|
||||
void echo_var_assign(std::string const & name, std::string const & value)
|
||||
void echo_var_assign(const std::string &name, const std::string &value)
|
||||
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
|
||||
// to enumerations and then call get_unit_conversion_factor()
|
||||
int lammps_unit_conversion(string const &unit_type_str,
|
||||
string const &from_system_str,
|
||||
string const &to_system_str,
|
||||
int lammps_unit_conversion(const string &unit_type_str,
|
||||
const string &from_system_str,
|
||||
const string &to_system_str,
|
||||
double &conversion_factor)
|
||||
{
|
||||
// initialize
|
||||
|
|
|
@ -53,7 +53,7 @@
|
|||
Designed for use with the kim-api-2.0.2 (and newer) package
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
int lammps_unit_conversion(std::string const &unit_type_str,
|
||||
std::string const &from_system_str,
|
||||
std::string const &to_system_str,
|
||||
int lammps_unit_conversion(const std::string &unit_type_str,
|
||||
const std::string &from_system_str,
|
||||
const std::string &to_system_str,
|
||||
double &conversion_factor);
|
||||
|
|
|
@ -429,7 +429,7 @@ void PairKIM::coeff(int narg, char **arg)
|
|||
} else {
|
||||
std::string msg("create_kim_particle_codes: symbol not found: ");
|
||||
msg += lmps_unique_elements[i];
|
||||
error->all(FLERR, msg.c_str());
|
||||
error->all(FLERR, msg);
|
||||
}
|
||||
}
|
||||
// Set the new values for PM parameters
|
||||
|
@ -441,7 +441,7 @@ void PairKIM::coeff(int narg, char **arg)
|
|||
if (!numberOfParameters) {
|
||||
std::string msg("Incorrect args for pair coefficients \n");
|
||||
msg += "This model has No mutable parameters.";
|
||||
error->all(FLERR, msg.c_str());
|
||||
error->all(FLERR, msg);
|
||||
}
|
||||
|
||||
int kimerror;
|
||||
|
@ -477,7 +477,7 @@ void PairKIM::coeff(int narg, char **arg)
|
|||
msg += "This Model does not have the requested '";
|
||||
msg += paramname;
|
||||
msg += "' parameter.";
|
||||
error->all(FLERR, msg.c_str());
|
||||
error->all(FLERR, msg);
|
||||
}
|
||||
|
||||
// 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 += argtostr;
|
||||
msg += "' in index_range.";
|
||||
error->all(FLERR, msg.c_str());
|
||||
error->all(FLERR, msg);
|
||||
}
|
||||
|
||||
std::string::size_type npos = argtostr.find(':');
|
||||
|
@ -510,7 +510,7 @@ void PairKIM::coeff(int narg, char **arg)
|
|||
msg += "' parameter with extent of '";
|
||||
msg += SNUM(extent);
|
||||
msg += "' .";
|
||||
error->all(FLERR, msg.c_str());
|
||||
error->all(FLERR, msg);
|
||||
}
|
||||
} else {
|
||||
std::stringstream str(argtostr);
|
||||
|
@ -522,7 +522,7 @@ void PairKIM::coeff(int narg, char **arg)
|
|||
msg += "' parameter with extent of '";
|
||||
msg += SNUM(extent);
|
||||
msg += "' .";
|
||||
error->all(FLERR, msg.c_str());
|
||||
error->all(FLERR, msg);
|
||||
}
|
||||
nubound = nlbound;
|
||||
}
|
||||
|
@ -530,7 +530,7 @@ void PairKIM::coeff(int narg, char **arg)
|
|||
std::string msg =
|
||||
"Wrong number of arguments for pair coefficients.\n";
|
||||
msg += "Index range after parameter name is mandatory.";
|
||||
error->all(FLERR, msg.c_str());
|
||||
error->all(FLERR, msg);
|
||||
}
|
||||
|
||||
// Parameter values
|
||||
|
@ -561,7 +561,7 @@ void PairKIM::coeff(int narg, char **arg)
|
|||
msg += "' values are requested for '";
|
||||
msg += paramname;
|
||||
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)) {
|
||||
std::string msg("KIM Model requires unsupported compute argument: ");
|
||||
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);
|
||||
}
|
||||
|
||||
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);
|
||||
if (!avec->kokkosable)
|
||||
|
|
|
@ -74,7 +74,7 @@ class AtomKokkos : public Atom {
|
|||
virtual void deallocate_topology();
|
||||
void sync_modify(ExecutionSpace, unsigned int, unsigned int);
|
||||
private:
|
||||
class AtomVec *new_avec(const char *, int, int &);
|
||||
class AtomVec *new_avec(const std::string &, int, int &);
|
||||
};
|
||||
|
||||
template<class ViewType, class IndexView>
|
||||
|
|
|
@ -29,11 +29,12 @@
|
|||
#include "memory_kokkos.h"
|
||||
#include "error.h"
|
||||
#include "atom_masks.h"
|
||||
#include "utils.h"
|
||||
#include "tokenizer.h"
|
||||
#include "potential_file_reader.h"
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
|
||||
#define MAXLINE 1024
|
||||
|
||||
// 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;
|
||||
|
||||
// open potential file
|
||||
// read potential file
|
||||
if(comm->me == 0) {
|
||||
PotentialFileReader reader(lmp, filename, "EAM");
|
||||
|
||||
int me = comm->me;
|
||||
FILE *fptr;
|
||||
char line[MAXLINE];
|
||||
try {
|
||||
reader.skip_line();
|
||||
reader.skip_line();
|
||||
reader.skip_line();
|
||||
|
||||
if (me == 0) {
|
||||
fptr = force->open_potential(filename);
|
||||
if (fptr == NULL) {
|
||||
char str[128];
|
||||
snprintf(str,128,"Cannot open EAM potential file %s",filename);
|
||||
error->one(FLERR,str);
|
||||
// extract element names from nelements line
|
||||
ValueTokenizer values = reader.next_values(1);
|
||||
file->nelements = values.next_int();
|
||||
|
||||
if (values.count() != file->nelements + 1)
|
||||
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
|
||||
// extract element names from nelements line
|
||||
// broadcast potential information
|
||||
MPI_Bcast(&file->nelements, 1, MPI_INT, 0, world);
|
||||
|
||||
int n;
|
||||
if (me == 0) {
|
||||
fgets(line,MAXLINE,fptr);
|
||||
fgets(line,MAXLINE,fptr);
|
||||
fgets(line,MAXLINE,fptr);
|
||||
fgets(line,MAXLINE,fptr);
|
||||
n = strlen(line) + 1;
|
||||
MPI_Bcast(&file->nrho, 1, MPI_INT, 0, world);
|
||||
MPI_Bcast(&file->drho, 1, MPI_DOUBLE, 0, world);
|
||||
MPI_Bcast(&file->nr, 1, MPI_INT, 0, world);
|
||||
MPI_Bcast(&file->dr, 1, MPI_DOUBLE, 0, world);
|
||||
MPI_Bcast(&file->cut, 1, MPI_DOUBLE, 0, world);
|
||||
|
||||
// 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);
|
||||
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];
|
||||
// broadcast file->elements string array
|
||||
for (int i = 0; i < file->nelements; i++) {
|
||||
n = strlen(words[i]) + 1;
|
||||
file->elements[i] = new char[n];
|
||||
strcpy(file->elements[i],words[i]);
|
||||
}
|
||||
delete [] words;
|
||||
|
||||
if (me == 0) {
|
||||
fgets(line,MAXLINE,fptr);
|
||||
sscanf(line,"%d %lg %d %lg %lg",
|
||||
&file->nrho,&file->drho,&file->nr,&file->dr,&file->cut);
|
||||
int n;
|
||||
if (comm->me == 0) n = strlen(file->elements[i]) + 1;
|
||||
MPI_Bcast(&n, 1, MPI_INT, 0, world);
|
||||
if (comm->me != 0) file->elements[i] = new char[n];
|
||||
MPI_Bcast(file->elements[i], n, MPI_CHAR, 0, world);
|
||||
}
|
||||
|
||||
MPI_Bcast(&file->nrho,1,MPI_INT,0,world);
|
||||
MPI_Bcast(&file->drho,1,MPI_DOUBLE,0,world);
|
||||
MPI_Bcast(&file->nr,1,MPI_INT,0,world);
|
||||
MPI_Bcast(&file->dr,1,MPI_DOUBLE,0,world);
|
||||
MPI_Bcast(&file->cut,1,MPI_DOUBLE,0,world);
|
||||
// broadcast file->mass, frho, rhor
|
||||
for (int i = 0; i < file->nelements; i++) {
|
||||
MPI_Bcast(&file->mass[i], 1, MPI_DOUBLE, 0, world);
|
||||
MPI_Bcast(&file->frho[i][1], file->nrho, MPI_DOUBLE, 0, world);
|
||||
MPI_Bcast(&file->rhor[i][1], file->nr, MPI_DOUBLE, 0, world);
|
||||
}
|
||||
|
||||
file->mass = new double[file->nelements];
|
||||
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");
|
||||
|
||||
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]);
|
||||
// broadcast file->z2r
|
||||
for (int i = 0; i < file->nelements; i++) {
|
||||
for (int j = 0; j <= i; j++) {
|
||||
MPI_Bcast(&file->z2r[i][j][1], file->nr, MPI_DOUBLE, 0, world);
|
||||
}
|
||||
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 "error.h"
|
||||
#include "atom_masks.h"
|
||||
#include "utils.h"
|
||||
#include "tokenizer.h"
|
||||
#include "potential_file_reader.h"
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
|
||||
#define MAXLINE 1024
|
||||
|
||||
// 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;
|
||||
|
||||
// open potential file
|
||||
// read potential file
|
||||
if(comm->me == 0) {
|
||||
PotentialFileReader reader(lmp, filename, "EAM");
|
||||
|
||||
int me = comm->me;
|
||||
FILE *fptr;
|
||||
char line[MAXLINE];
|
||||
try {
|
||||
reader.skip_line();
|
||||
reader.skip_line();
|
||||
reader.skip_line();
|
||||
|
||||
if (me == 0) {
|
||||
fptr = force->open_potential(filename);
|
||||
if (fptr == NULL) {
|
||||
char str[128];
|
||||
snprintf(str,128,"Cannot open EAM potential file %s",filename);
|
||||
error->one(FLERR,str);
|
||||
// extract element names from nelements line
|
||||
ValueTokenizer values = reader.next_values(1);
|
||||
file->nelements = values.next_int();
|
||||
|
||||
if (values.count() != file->nelements + 1)
|
||||
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
|
||||
// extract element names from nelements line
|
||||
// broadcast potential information
|
||||
MPI_Bcast(&file->nelements, 1, MPI_INT, 0, world);
|
||||
|
||||
int n;
|
||||
if (me == 0) {
|
||||
fgets(line,MAXLINE,fptr);
|
||||
fgets(line,MAXLINE,fptr);
|
||||
fgets(line,MAXLINE,fptr);
|
||||
fgets(line,MAXLINE,fptr);
|
||||
n = strlen(line) + 1;
|
||||
MPI_Bcast(&file->nrho, 1, MPI_INT, 0, world);
|
||||
MPI_Bcast(&file->drho, 1, MPI_DOUBLE, 0, world);
|
||||
MPI_Bcast(&file->nr, 1, MPI_INT, 0, world);
|
||||
MPI_Bcast(&file->dr, 1, MPI_DOUBLE, 0, world);
|
||||
MPI_Bcast(&file->cut, 1, MPI_DOUBLE, 0, world);
|
||||
|
||||
// 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);
|
||||
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];
|
||||
// broadcast file->elements string array
|
||||
for (int i = 0; i < file->nelements; i++) {
|
||||
n = strlen(words[i]) + 1;
|
||||
file->elements[i] = new char[n];
|
||||
strcpy(file->elements[i],words[i]);
|
||||
}
|
||||
delete [] words;
|
||||
|
||||
if (me == 0) {
|
||||
fgets(line,MAXLINE,fptr);
|
||||
sscanf(line,"%d %lg %d %lg %lg",
|
||||
&file->nrho,&file->drho,&file->nr,&file->dr,&file->cut);
|
||||
int n;
|
||||
if (comm->me == 0) n = strlen(file->elements[i]) + 1;
|
||||
MPI_Bcast(&n, 1, MPI_INT, 0, world);
|
||||
if (comm->me != 0) file->elements[i] = new char[n];
|
||||
MPI_Bcast(file->elements[i], n, MPI_CHAR, 0, world);
|
||||
}
|
||||
|
||||
MPI_Bcast(&file->nrho,1,MPI_INT,0,world);
|
||||
MPI_Bcast(&file->drho,1,MPI_DOUBLE,0,world);
|
||||
MPI_Bcast(&file->nr,1,MPI_INT,0,world);
|
||||
MPI_Bcast(&file->dr,1,MPI_DOUBLE,0,world);
|
||||
MPI_Bcast(&file->cut,1,MPI_DOUBLE,0,world);
|
||||
// broadcast file->mass, frho, rhor
|
||||
for (int i = 0; i < file->nelements; i++) {
|
||||
MPI_Bcast(&file->mass[i], 1, MPI_DOUBLE, 0, world);
|
||||
MPI_Bcast(&file->frho[i][1], file->nrho, MPI_DOUBLE, 0, world);
|
||||
|
||||
file->mass = new double[file->nelements];
|
||||
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");
|
||||
|
||||
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 (int j = 0; j < file->nelements; j++) {
|
||||
MPI_Bcast(&file->rhor[i][j][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);
|
||||
// broadcast file->z2r
|
||||
for (int i = 0; i < file->nelements; i++) {
|
||||
for (int j = 0; j <= i; j++) {
|
||||
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 "atom_kokkos.h"
|
||||
#include "kokkos.h"
|
||||
#include "utils.h"
|
||||
|
||||
#ifdef _OPENMP
|
||||
#include <omp.h>
|
||||
|
@ -1752,7 +1753,7 @@ void PairExp6rxKokkos<DeviceType>::read_file(char *file)
|
|||
// strip comment, skip line if blank
|
||||
|
||||
if ((ptr = strchr(line,'#'))) *ptr = '\0';
|
||||
nwords = atom->count_words(line);
|
||||
nwords = utils::count_words(line);
|
||||
if (nwords == 0) continue;
|
||||
|
||||
// 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(line,n,MPI_CHAR,0,world);
|
||||
if ((ptr = strchr(line,'#'))) *ptr = '\0';
|
||||
nwords = atom->count_words(line);
|
||||
nwords = utils::count_words(line);
|
||||
}
|
||||
|
||||
if (nwords != params_per_line)
|
||||
|
|
|
@ -51,7 +51,8 @@ struct DoCoul<1> {
|
|||
|
||||
//Specialisation for Neighborlist types Half, HalfThread, Full
|
||||
template <class PairStyle, int NEIGHFLAG, bool STACKPARAMS, class Specialisation = void>
|
||||
struct PairComputeFunctor {
|
||||
class PairComputeFunctor {
|
||||
public:
|
||||
typedef typename PairStyle::device_type device_type ;
|
||||
typedef ArrayTypes<device_type> AT;
|
||||
|
||||
|
|
|
@ -112,7 +112,7 @@ public:
|
|||
void operator() (TagPairSNAPComputeDeidrjCPU,const typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPComputeDeidrjCPU>::member_type& team) const;
|
||||
|
||||
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>
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue