Merge branch 'master' into feature-cnt

This commit is contained in:
Axel Kohlmeyer 2020-06-12 05:53:17 -04:00
commit cf5c748fb4
No known key found for this signature in database
GPG Key ID: D9B44E93BF0C375A
572 changed files with 83637 additions and 10156 deletions

3
.github/CODEOWNERS vendored
View File

@ -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

View File

@ -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)

View File

@ -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")

View File

@ -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()

View File

@ -6,7 +6,6 @@
# TBB_MALLOC_FOUND - True if tbb found.
#
########################################################
# TBB Malloc

View File

@ -0,0 +1,30 @@
# - Find libyaml
# Find the native Yaml headers and libraries.
#
# YAML_INCLUDE_DIRS - where to find yaml.h
# YAML_LIBRARIES - List of libraries when using libyaml
# YAML_FOUND - True if libyaml is found.
#
find_path(YAML_INCLUDE_DIR yaml.h PATH_SUFFIXES yaml)
find_library(YAML_LIBRARY NAMES yaml)
# handle the QUIET and REQUIRED arguments and
# set YAML_FOUND to TRUE if all variables are non-zero
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(YAML DEFAULT_MSG YAML_LIBRARY YAML_INCLUDE_DIR)
# Copy the results to the output variables and target.
if(YAML_FOUND)
set(YAML_LIBRARIES ${YAML_LIBRARY})
set(YAML_INCLUDE_DIRS ${YAML_INCLUDE_DIR})
if(NOT TARGET Yaml::Yaml)
add_library(Yaml::Yaml UNKNOWN IMPORTED)
set_target_properties(Yaml::Yaml PROPERTIES
IMPORTED_LOCATION "${YAML_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${YAML_INCLUDE_DIR}")
endif()
endif()
mark_as_advanced(YAML_INCLUDE_DIR YAML_LIBRARY)

77
cmake/Modules/GTest.cmake Normal file
View File

@ -0,0 +1,77 @@
message(STATUS "Downloading and building Google Test library")
if(CMAKE_BUILD_TYPE STREQUAL Debug)
set(GTEST_LIB_POSTFIX d)
else()
set(GTEST_LIB_POSTFIX)
endif()
include(ExternalProject)
ExternalProject_Add(googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG release-1.10.0
SOURCE_DIR "${CMAKE_BINARY_DIR}/gtest-src"
BINARY_DIR "${CMAKE_BINARY_DIR}/gtest-build"
CMAKE_ARGS ${CMAKE_REQUEST_PIC} ${CMAKE_EXTRA_GTEST_OPTS}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
BUILD_BYPRODUCTS <BINARY_DIR>/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gtest${GTEST_LIB_POSTFIX}.a
<BINARY_DIR>/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gmock${GTEST_LIB_POSTFIX}.a
<BINARY_DIR>/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gtest_main${GTEST_LIB_POSTFIX}.a
<BINARY_DIR>/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gmock_main${GTEST_LIB_POSTFIX}.a
LOG_DOWNLOAD ON
LOG_CONFIGURE ON
LOG_BUILD ON
INSTALL_COMMAND ""
TEST_COMMAND "")
ExternalProject_Get_Property(googletest SOURCE_DIR)
set(GTEST_INCLUDE_DIR ${SOURCE_DIR}/googletest/include)
set(GMOCK_INCLUDE_DIR ${SOURCE_DIR}/googlemock/include)
# workaround for CMake 3.10 on ubuntu 18.04
file(MAKE_DIRECTORY ${GTEST_INCLUDE_DIR})
file(MAKE_DIRECTORY ${GMOCK_INCLUDE_DIR})
ExternalProject_Get_Property(googletest BINARY_DIR)
set(GTEST_LIBRARY_PATH ${BINARY_DIR}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gtest${GTEST_LIB_POSTFIX}.a)
set(GMOCK_LIBRARY_PATH ${BINARY_DIR}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gmock${GTEST_LIB_POSTFIX}.a)
set(GTEST_MAIN_LIBRARY_PATH ${BINARY_DIR}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gtest_main${GTEST_LIB_POSTFIX}.a)
set(GMOCK_MAIN_LIBRARY_PATH ${BINARY_DIR}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gmock_main${GTEST_LIB_POSTFIX}.a)
# Prevent GoogleTest from overriding our compiler/linker options
# when building with Visual Studio
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
find_package(Threads QUIET)
add_library(GTest::GTest UNKNOWN IMPORTED)
set_target_properties(GTest::GTest PROPERTIES
IMPORTED_LOCATION ${GTEST_LIBRARY_PATH}
INTERFACE_INCLUDE_DIRECTORIES ${GTEST_INCLUDE_DIR}
IMPORTED_LINK_INTERFACE_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
add_dependencies(GTest::GTest googletest)
add_library(GTest::GMock UNKNOWN IMPORTED)
set_target_properties(GTest::GMock PROPERTIES
IMPORTED_LOCATION ${GMOCK_LIBRARY_PATH}
INTERFACE_INCLUDE_DIRECTORIES ${GMOCK_INCLUDE_DIR}
IMPORTED_LINK_INTERFACE_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
add_dependencies(GTest::GMock googletest)
add_library(GTest::GTestMain UNKNOWN IMPORTED)
set_target_properties(GTest::GTestMain PROPERTIES
IMPORTED_LOCATION ${GTEST_MAIN_LIBRARY_PATH}
INTERFACE_INCLUDE_DIRECTORIES ${GTEST_INCLUDE_DIR}
IMPORTED_LINK_INTERFACE_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
add_dependencies(GTest::GTestMain googletest)
add_library(GTest::GMockMain UNKNOWN IMPORTED)
set_target_properties(GTest::GMockMain PROPERTIES
IMPORTED_LOCATION ${GMOCK_MAIN_LIBRARY_PATH}
INTERFACE_INCLUDE_DIRECTORIES ${GMOCK_INCLUDE_DIR}
IMPORTED_LINK_INTERFACE_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
add_dependencies(GTest::GMockMain googletest)

View File

@ -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}

View File

@ -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()

View File

@ -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})

View File

@ -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()

View File

@ -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()

View File

@ -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.

View File

@ -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:

View File

@ -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

View File

@ -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`

View File

@ -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>`

View File

@ -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>`

View File

@ -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>`

View File

@ -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

View File

@ -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

View File

@ -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
----------

View File

@ -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

View File

@ -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.

View File

@ -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

44
doc/src/fix_bond_react.rst Executable file → Normal file
View File

@ -300,7 +300,8 @@ either 'none' or 'charges.' Further details are provided in the
discussion of the 'update_edges' keyword. The fifth optional section
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:

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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

34
doc/src/fix_nh.rst Normal file → Executable file
View File

@ -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

View File

@ -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::

View File

@ -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

View File

@ -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

154
doc/src/fix_orient_eco.rst Normal file
View File

@ -0,0 +1,154 @@
.. index:: fix orient/eco
fix orient/eco command
======================
.. parsed-literal::
fix ID group-ID orient/eco u0 eta cutoff orientationsFile
* ID, group-ID are documented in fix command
* u0 = energy added to each atom (energy units)
* eta = cutoff value (usually 0.25)
* cutoff = cutoff radius for orientation parameter calculation
* orientationsFile = file that specifies orientation of each grain
Examples
""""""""
.. code-block:: LAMMPS
fix gb all orient/eco 0.08 0.25 3.524 sigma5.ori
Description
"""""""""""
The fix applies a synthetic driving force to a grain boundary which can
be used for the investigation of grain boundary motion. The affiliation
of atoms to either of the two grains forming the grain boundary is
determined from an orientation-dependent order parameter as described
in :ref:`(Ulomek) <Ulomek>`. The potential energy of atoms is either increased by an amount
of 0.5*\ *u0* or -0.5*\ *u0* according to the orientation of the surrounding
crystal. This creates a potential energy gradient which pushes atoms near
the grain boundary to orient according to the energetically favorable
grain orientation. This fix is designed for applications in bicrystal system
with one grain boundary and open ends, or two opposite grain boundaries in
a periodic system. In either case, the entire system can experience a
displacement during the simulation which needs to be accounted for in the
evaluation of the grain boundary velocity. While the basic method is
described in :ref:`(Ulomek) <Ulomek>`, the implementation follows the efficient
implementation from :ref:`(Schratt & Mohles) <Schratt>`. The synthetic potential energy added to an
atom j is given by the following formulas
.. math::
w(|\vec{r}_{jk}|) = w_{jk} & = \left\{\begin{array}{lc} \frac{|\vec{r}_{jk}|^{4}}{r_{\mathrm{cut}}^{4}}
-2\frac{|\vec{r}_{jk}|^{2}}{r_{\mathrm{cut}}^{2}}+1, & |\vec{r}_{jk}|<r_{\mathrm{cut}} \\
0, & |\vec{r}_{jk}|\ge r_{\mathrm{cut}}
\end{array}\right. \\
\chi_{j} & = \frac{1}{N}\sum_{l=1}^{3}\left\lbrack\left\vert\psi_{l}^{\mathrm{I}}(\vec{r}_{j})\right\vert^{2}-\left\vert\psi_{l}^{\mathrm{II}}(\vec{r}_{j})\right\vert^{2}\right\rbrack \\
\psi_{l}^{\mathrm{X}}(\vec{r}_{j}) & = \sum_{k\in\mathit{\Gamma}_{j}}w_{jk}\exp\left(\mathrm{i}\vec{r}_{jk}\cdot\vec{q}_{l}^{\mathrm{X}}\right) \\
u(\chi_{j}) & = \frac{u_{0}}{2}\left\{\begin{array}{lc}
1, & \chi_{j}\ge\eta\\
\sin\left(\frac{\pi\chi_{j}}{2\eta}\right), & -\eta<\chi_{j}<\eta\\
-1, & \chi_{j}\le-\eta
\end{array}\right.
which are fully explained in :ref:`(Ulomek) <Ulomek>`
and :ref:`(Schratt & Mohles) <Schratt>`.
The force on each atom is the negative gradient of the synthetic potential energy. It
depends on the surrounding of this atom. An atom far from the grain boundary does not
experience a synthetic force as its surrounding is that of an oriented single crystal
and thermal fluctuations are masked by the parameter *eta*\ . Near the grain boundary
however, the gradient is nonzero and synthetic force terms are computed.
The orientationsFile specifies the perfect oriented crystal basis vectors for the
two adjoining crystals. The first three lines (line=row vector) for the energetically penalized and the
last three lines for the energetically favored grain assuming *u0* is positive. For
negative *u0*, this is reversed. With the *cutoff* parameter, the size of the region around
each atom which is used in the order parameter computation is defined. The cutoff must be
smaller than the interaction range of the MD potential. It should at
least include the nearest neighbor shell. For high temperatures or low angle
grain boundaries, it might be beneficial to increase the cutoff in order to get a more
precise identification of the atoms surrounding. However, computation time will
increase as more atoms are considered in the order parameter and force computation.
It is also worth noting that the cutoff radius must not exceed the communication
distance for ghost atoms in LAMMPS. With orientationsFile, the
6 oriented crystal basis vectors is specified. Each line of the input file
contains the three components of a primitive lattice vector oriented according to
the grain orientation in the simulation box. The first (last) three lines correspond
to the primitive lattice vectors of the first (second) grain. An example for
a :math:`\Sigma\langle001\rangle` mis-orientation is given at the end.
If no synthetic energy difference between the grains is created, :math:`u0=0`, the
force computation is omitted. In this case, still, the order parameter of the
driving force is computed and can be used to track the grain boundary motion throughout the
simulation.
**Restart, fix_modify, output, run start/stop, minimize info:**
No information about this fix is written to :doc: `binary restart files <restart>`.
The :doc:`fix_modify <fix_modify>` *energy* option is supported by this fix to
add the potential energy of atom interactions with the grain boundary
driving force to the system's potential energy as part of thermodynamic output.
The total sum of added synthetic potential energy is computed and can be accessed
by various output options. The order parameter as well as the thermally masked
output parameter are stored in per-atom arrays and can also be accessed by various
:doc:`output commands <Howto_output>`.
No parameter of this fix can be used with the start/stop keywords of the run command. This fix is
not invoked during energy minimization.
Restrictions
""""""""""""
This fix is part of the USER-MISC package. It is only enabled if LAMMPS was
built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
Related commands
""""""""""""""""
:doc:`fix_modify <fix_modify>`
:doc:`fix_orient <fix_orient>`
**Default:** none
----------
.. _Ulomek:
**(Ulomek)** Ulomek, Brien, Foiles, Mohles, Modelling Simul. Mater. Sci. Eng. 23 (2015) 025007
.. _Schratt:
**(Schratt & Mohles)** Schratt, Mohles. Comp. Mat. Sci. 182 (2020) 109774
----------
For illustration purposes, here is an example file that specifies a
:math:`\Sigma=5 \langle 001 \rangle` tilt grain boundary. This is for a lattice constant of 3.52 Angstrom:
.. parsed-literal::
sigma5.ori:
1.671685 0.557228 1.76212
0.557228 -1.671685 1.76212
2.228913 -1.114456 0.00000
0.557228 1.671685 1.76212
1.671685 -0.557228 1.76212
2.228913 1.114456 0.00000

View File

@ -3,7 +3,8 @@
fix poems command
=================
Syntax:
Syntax
""""""
.. parsed-literal::

View File

@ -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::

View File

@ -3,6 +3,9 @@
fix rhok command
================
Syntax
""""""
.. parsed-literal::
fix ID group-ID rhok nx ny nz K a

View File

@ -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

View File

@ -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>`.

View File

@ -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>`.

View File

@ -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

View File

@ -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
""""""""""""

View File

@ -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
""""""""""""

View File

@ -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

View File

@ -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
=========================

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -28,7 +28,8 @@ Syntax
*angle* value = *yes* or *no*
*dihedral* value = *yes* or *no*
Examples:
Examples
""""""""
.. code-block:: LAMMPS

View File

@ -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 |
+--------------------------------+---------------+-----------------------+

View File

@ -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.

View File

@ -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.

View File

@ -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

View File

@ -0,0 +1 @@
../../../../potentials/Ni_u3.eam

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,20 @@
units metal
atom_style atomic
read_data data.sigma5
pair_style eam
pair_coeff * * Ni_u3.eam
timestep 0.001
fix integrator all npt temp 750 750 0.1 iso 0 0 0.1
fix eco all orient/eco 0.08 0.25 3.6 sigma5.ori
thermo 100
thermo_style custom step temp etotal press vol f_eco
velocity all create 750 18527782
#dump save all custom 100 orient_eco.dump xs ys zs f_eco[1] f_eco[2]
#dump_modify save sort id
run 1000

View File

@ -0,0 +1,91 @@
LAMMPS (2 Jun 2020)
using 1 OpenMP thread(s) per MPI task
units metal
atom_style atomic
read_data data.sigma5
orthogonal box = (-90.27200752837744 -4.427188724235731e-07 0.0) to (90.27200752837744 88.54377448471462 17.5)
1 by 1 by 1 MPI processor grid
reading atoms ...
25600 atoms
read_data CPU = 0.020 secs
pair_style eam
pair_coeff * * Ni_u3.eam
Reading potential file Ni_u3.eam with DATE: 2007-06-11
timestep 0.001
fix integrator all npt temp 750 750 0.1 iso 0 0 0.1
fix eco all orient/eco 0.08 0.25 3.6 sigma5.ori
thermo 100
thermo_style custom step temp etotal press vol f_eco
velocity all create 750 18527782
#dump save all custom 100 orient_eco.dump xs ys zs f_eco[1] f_eco[2]
#dump_modify save sort id
run 1000
fix orient/eco: cutoff=3.6 norm_fac=30.012843706295556 neighbors=18
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 6.8
ghost atom cutoff = 6.8
binsize = 3.4, bins = 54 27 6
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair eam, perpetual, half/full from (2)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
(2) fix orient/eco, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 42.15 | 42.15 | 42.15 Mbytes
Step Temp TotEng Press Volume f_eco
0 750 -111027.95 15148.458 279755.85 8.7507522e-10
100 422.2475 -110928.85 214.27204 285332.91 -1.0089186
200 388.79514 -110721.02 -481.9574 286443.13 -0.78446905
300 441.87285 -110478.56 -174.88288 286640.75 -1.1348357
400 486.71094 -110211.6 65.075638 287023.56 -1.495318
500 531.12815 -109923.33 97.309245 287552.73 -2.9498072
600 569.82126 -109622.61 -85.73157 288229.35 -4.2855812
700 615.84724 -109317.16 -52.508824 288799.86 -6.5214427
800 666.09015 -109018.62 38.120383 289305.37 -8.4745641
900 705.03939 -108738.66 263.39673 289867.87 -12.4514
1000 735.59866 -108500.52 242.46405 290353.65 -15.427653
Loop time of 109.966 on 1 procs for 1000 steps with 25600 atoms
Performance: 0.786 ns/day, 30.546 hours/ns, 9.094 timesteps/s
99.9% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 27.002 | 27.002 | 27.002 | 0.0 | 24.55
Neigh | 0.83228 | 0.83228 | 0.83228 | 0.0 | 0.76
Comm | 0.12623 | 0.12623 | 0.12623 | 0.0 | 0.11
Output | 0.00080323 | 0.00080323 | 0.00080323 | 0.0 | 0.00
Modify | 81.917 | 81.917 | 81.917 | 0.0 | 74.49
Other | | 0.08839 | | | 0.08
Nlocal: 25600 ave 25600 max 25600 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 28259 ave 28259 max 28259 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 1.59326e+06 ave 1.59326e+06 max 1.59326e+06 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 3.18651e+06 ave 3.18651e+06 max 3.18651e+06 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 3186510
Ave neighs/atom = 124.473
Neighbor list builds = 10
Dangerous builds = 0
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:01:50

View File

@ -0,0 +1,91 @@
LAMMPS (2 Jun 2020)
using 1 OpenMP thread(s) per MPI task
units metal
atom_style atomic
read_data data.sigma5
orthogonal box = (-90.27200752837744 -4.427188724235731e-07 0.0) to (90.27200752837744 88.54377448471462 17.5)
4 by 1 by 1 MPI processor grid
reading atoms ...
25600 atoms
read_data CPU = 0.025 secs
pair_style eam
pair_coeff * * Ni_u3.eam
Reading potential file Ni_u3.eam with DATE: 2007-06-11
timestep 0.001
fix integrator all npt temp 750 750 0.1 iso 0 0 0.1
fix eco all orient/eco 0.08 0.25 3.6 sigma5.ori
thermo 100
thermo_style custom step temp etotal press vol f_eco
velocity all create 750 18527782
#dump save all custom 100 orient_eco.dump xs ys zs f_eco[1] f_eco[2]
#dump_modify save sort id
run 1000
fix orient/eco: cutoff=3.6 norm_fac=30.012843706295556 neighbors=18
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 6.8
ghost atom cutoff = 6.8
binsize = 3.4, bins = 54 27 6
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair eam, perpetual, half/full from (2)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
(2) fix orient/eco, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 11.69 | 11.7 | 11.72 Mbytes
Step Temp TotEng Press Volume f_eco
0 750 -111027.95 15148.458 279755.85 8.749339e-10
100 422.2475 -110928.85 214.27204 285332.91 -1.0089186
200 388.79514 -110721.02 -481.9574 286443.13 -0.78446905
300 441.87285 -110478.56 -174.88288 286640.75 -1.1348357
400 486.71094 -110211.6 65.075638 287023.56 -1.495318
500 531.12815 -109923.33 97.309245 287552.73 -2.9498072
600 569.82126 -109622.61 -85.73157 288229.35 -4.2855812
700 615.84724 -109317.16 -52.508824 288799.86 -6.5214427
800 666.09015 -109018.62 38.120383 289305.37 -8.4745641
900 705.03939 -108738.66 263.39673 289867.87 -12.4514
1000 735.59866 -108500.52 242.46405 290353.65 -15.427653
Loop time of 29.6634 on 4 procs for 1000 steps with 25600 atoms
Performance: 2.913 ns/day, 8.240 hours/ns, 33.712 timesteps/s
98.6% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 7.0794 | 7.1053 | 7.1325 | 0.7 | 23.95
Neigh | 0.20947 | 0.21088 | 0.21231 | 0.2 | 0.71
Comm | 0.15708 | 0.18471 | 0.22338 | 6.7 | 0.62
Output | 0.00032616 | 0.00064683 | 0.0015936 | 0.0 | 0.00
Modify | 22.105 | 22.118 | 22.139 | 0.3 | 74.56
Other | | 0.0437 | | | 0.15
Nlocal: 6400 ave 6421 max 6384 min
Histogram: 1 1 0 0 0 1 0 0 0 1
Nghost: 9872.5 ave 9892 max 9855 min
Histogram: 1 0 0 1 0 1 0 0 0 1
Neighs: 398314 ave 400737 max 395743 min
Histogram: 1 0 0 1 0 0 0 1 0 1
FullNghs: 796628 ave 801194 max 792566 min
Histogram: 1 0 1 0 0 0 1 0 0 1
Total # of neighbors = 3186510
Ave neighs/atom = 124.473
Neighbor list builds = 10
Dangerous builds = 0
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:29

View File

@ -0,0 +1,6 @@
1.671685 0.557228 1.76212
0.557228 -1.671685 1.76212
2.228913 -1.114456 0.000000
0.557228 1.671685 1.76212
1.671685 -0.557228 1.76212
2.228913 1.114456 0.000000

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,647 @@
LAMMPS (2 Jun 2020)
using 1 OpenMP thread(s) per MPI task
# 3d EAM surface for local HD
# nearest neighbor distance = a * sqrt(2)/2 = 2.77 Angs for Pt with a = 3.92
# hop event on (100) surface is same distance
# exchange event is 2 atoms moving same distance
variable Tequil index 400.0
variable Vmax index 0.4
variable qfactor index 0.3
variable cutbond index 3.2
variable Dcut index 10.0
variable cutevent index 1.1
variable alpha index 200.0
variable boost index 4000.0
variable ghostcut index 12.0
variable steps index 2000
variable nevent index 100
variable nx index 2
variable ny index 2
variable zoom index 1.8
variable seed index 3875984
variable tol index 1.0e-15
variable add index 50
units metal
atom_style atomic
atom_modify map array
boundary p p p
comm_modify cutoff ${ghostcut}
comm_modify cutoff 12.0
lattice fcc 3.92
Lattice spacing in x,y,z = 3.92 3.92 3.92
region box block 0 6 0 6 0 4
create_box 2 box
Created orthogonal box = (0.0 0.0 0.0) to (23.52 23.52 15.68)
2 by 2 by 1 MPI processor grid
create_atoms 1 box
Created 576 atoms
create_atoms CPU = 0.000 seconds
mass * 1.0
change_box all z final -0.1 5.0 boundary p p f
orthogonal box = (0.0 0.0 -0.392) to (23.52 23.52 19.6)
WARNING: Reset image flags for non-periodic boundary (src/domain.cpp:1909)
# replicate in xy
replicate ${nx} ${ny} 1
replicate 2 ${ny} 1
replicate 2 2 1
orthogonal box = (0.0 0.0 -0.392) to (47.04 47.04 19.6)
2 by 2 by 1 MPI processor grid
2304 atoms
replicate CPU = 0.000324488 secs
# add adatoms
include adatoms.list.${add}
include adatoms.list.50
create_atoms 1 single 5 9 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 4.5 7.5 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 6 6 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 5 6 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 4.5 1.5 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 6.5 7.5 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 10.5 5.5 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 2.5 1.5 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 3.5 4.5 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 0 10 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 11 10 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 6.5 10.5 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 3.5 5.5 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 7.5 10.5 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 1.5 1.5 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 1.5 6.5 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 7 2 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 4 0 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 9 0 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 4 9 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 10 7 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 4 4 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 9.5 2.5 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 1 5 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 7 10 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 0 4 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 1 10 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 7.5 6.5 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 4 10 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 6.5 3.5 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 3 6 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 8.5 4.5 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 6.5 0.5 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 1 4 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 8.5 11.5 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 3 9 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 2 3 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 6.5 8.5 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 1 0 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 0.5 10.5 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 4 11 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 3 5 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 0 1 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 2 11 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 2 0 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 7.5 11.5 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 1 7 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 3.5 10.5 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 0 2 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
create_atoms 1 single 8 4 4
Created 1 atoms
create_atoms CPU = 0.000 seconds
# define frozen substrate and mobile atoms
region base block INF INF INF INF 0 1.8
set region base type 2
1152 settings made for typegroup base type 2
1152 atoms in group base
group mobile type 1
1202 atoms in group mobile
# pair style
pair_style eam/alloy
pair_coeff * * ptvoterlammps.eam Pt Pt
neighbor 0.5 bin
neigh_modify every 1 delay 5 check yes
fix 1 mobile nve
fix 2 mobile langevin ${Tequil} ${Tequil} 1.0 ${seed} zero yes
fix 2 mobile langevin 400.0 ${Tequil} 1.0 ${seed} zero yes
fix 2 mobile langevin 400.0 400.0 1.0 ${seed} zero yes
fix 2 mobile langevin 400.0 400.0 1.0 3875984 zero yes
timestep 0.005
compute tmobile mobile temp
thermo 100
thermo_modify temp tmobile
WARNING: Temperature for thermo pressure is not for group all (src/thermo.cpp:486)
# thermal equilibration
run 1000
Neighbor list info ...
update every 1 steps, delay 5 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 6.07583
ghost atom cutoff = 12
binsize = 3.03792, bins = 16 16 7
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair eam/alloy, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.443 | 3.443 | 3.443 Mbytes
Step Temp E_pair E_mol TotEng Press
0 0 -13067.188 0 -13067.188 -53763.139
100 216.49187 -13065.694 0 -13032.085 -24077.115
200 285.11905 -13057.047 0 -13012.785 -38815.844
300 321.67264 -13048.005 0 -12998.068 -29296.124
400 352.90893 -13045.707 0 -12990.92 -34630.884
500 371.9393 -13041.234 0 -12983.494 -28913.827
600 379.08135 -13040.06 0 -12981.211 -33399.8
700 388.73836 -13039.691 0 -12979.343 -29446.954
800 402.13628 -13040.606 0 -12978.178 -33026.861
900 389.43806 -13036.884 0 -12976.427 -30328.658
1000 388.66198 -13037.479 0 -12977.142 -30859.145
Loop time of 0.572404 on 4 procs for 1000 steps with 2354 atoms
Performance: 754.712 ns/day, 0.032 hours/ns, 1747.018 timesteps/s
96.8% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.45189 | 0.4594 | 0.46833 | 0.9 | 80.26
Neigh | 0.039092 | 0.039772 | 0.040386 | 0.3 | 6.95
Comm | 0.040249 | 0.051709 | 0.060548 | 3.4 | 9.03
Output | 0.00014281 | 0.0002625 | 0.00061965 | 0.0 | 0.05
Modify | 0.017148 | 0.017244 | 0.017364 | 0.1 | 3.01
Other | | 0.004017 | | | 0.70
Nlocal: 588.5 ave 592 max 581 min
Histogram: 1 0 0 0 0 0 0 1 0 2
Nghost: 1964 ave 1973 max 1959 min
Histogram: 2 0 0 1 0 0 0 0 0 1
Neighs: 14148.8 ave 14283 max 13931 min
Histogram: 1 0 0 0 0 0 1 1 0 1
Total # of neighbors = 56595
Ave neighs/atom = 24.0421
Neighbor list builds = 91
Dangerous builds = 0
reset_timestep 0
# pin base so will not move during quenches
fix freeze base setforce 0.0 0.0 0.0
# event detection
compute event all event/displace ${cutevent}
compute event all event/displace 1.1
# hyper/local
fix HL mobile hyper/local ${cutbond} ${qfactor} ${Vmax} ${Tequil} ${Dcut} ${alpha} ${boost}
fix HL mobile hyper/local 3.2 ${qfactor} ${Vmax} ${Tequil} ${Dcut} ${alpha} ${boost}
fix HL mobile hyper/local 3.2 0.3 ${Vmax} ${Tequil} ${Dcut} ${alpha} ${boost}
fix HL mobile hyper/local 3.2 0.3 0.4 ${Tequil} ${Dcut} ${alpha} ${boost}
fix HL mobile hyper/local 3.2 0.3 0.4 400.0 ${Dcut} ${alpha} ${boost}
fix HL mobile hyper/local 3.2 0.3 0.4 400.0 10.0 ${alpha} ${boost}
fix HL mobile hyper/local 3.2 0.3 0.4 400.0 10.0 200.0 ${boost}
fix HL mobile hyper/local 3.2 0.3 0.4 400.0 10.0 200.0 4000.0
# thermo output
thermo_style custom step temp pe f_HL f_HL[*]
WARNING: New thermo_style command, previous thermo_modify settings will be lost (src/output.cpp:709)
thermo_modify lost ignore
thermo_modify temp tmobile
WARNING: Temperature for thermo pressure is not for group all (src/thermo.cpp:486)
thermo ${nevent}
thermo 100
# dump
region substrate block INF INF INF INF 1.8 3.8
region adatoms block INF INF INF INF 3.8 INF
variable acolor atom rmask(base)+2*rmask(substrate)+3*rmask(adatoms)
dump 1 all image 10000000 local.*.jpg v_acolor type size 1024 1024 zoom ${zoom} adiam 2.5 view 0.0 0.0 up 0 1 0 axes yes 0.9 0.01
dump 1 all image 10000000 local.*.jpg v_acolor type size 1024 1024 zoom 1.8 adiam 2.5 view 0.0 0.0 up 0 1 0 axes yes 0.9 0.01
dump_modify 1 pad 6 amap 1 3 sa 1 3 blue red green
# run
hyper ${steps} ${nevent} HL event min ${tol} ${tol} 1000 1000 dump 1
hyper 2000 ${nevent} HL event min ${tol} ${tol} 1000 1000 dump 1
hyper 2000 100 HL event min ${tol} ${tol} 1000 1000 dump 1
hyper 2000 100 HL event min 1.0e-15 ${tol} 1000 1000 dump 1
hyper 2000 100 HL event min 1.0e-15 1.0e-15 1000 1000 dump 1
WARNING: Resetting reneighboring criteria during hyper (src/REPLICA/hyper.cpp:131)
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 6.07583
ghost atom cutoff = 12
binsize = 3.03792, bins = 16 16 7
3 neighbor lists, perpetual/occasional/extra = 1 2 0
(1) pair eam/alloy, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d/newton
bin: standard
(2) fix hyper/local, occasional
attributes: full, newton on, cut 10
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
(3) fix hyper/local, occasional, copy from (1)
attributes: half, newton on
pair build: copy
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 6.786 | 6.786 | 6.786 Mbytes
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
0 388.66198 -13037.479 0 1 0 0 0.4 1 0 0 0 0 0 0 0 0 0 0 1e+20 0 0 0 0 0 0 0 0 0 0 1 0
68 388.66198 -13101.057 0 1 0 0 0.4 1 0 0 0 0 0 0 0 0 0 0 1e+20 0 0 0 0 0 0 1360 0 0 0 1 0
Loop time of 0.078882 on 4 procs for 68 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
0 388.66198 -13037.479 2.1560986 0 7 0.19075505 0.4 0 0 0 5.9276206 1380.4406 0 0 0 0 3.2725891 0 1e+20 0 0 0 0 0 0 0 0 0 0 10345.213 0
100 388.08547 -13035.803 1.9458797 5579.52 7 0.22444002 0.4 0.99435481 0.98307948 1.0037683 5.9276206 1380.4406 7612.921 5.23 0 0 3.4801431 0.99683836 0.98307948 1.0037683 0 0 0 0 0 2000 0 0 0 4811.1645 0
Loop time of 0.0768972 on 4 procs for 100 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
100 388.08547 -13035.803 1.9458797 5579.52 7 0.22444002 0.4 0.99435481 0.98307948 1.0037683 5.9276206 1380.4406 7612.921 5.23 0 0 3.4801431 0.99683836 0.98307948 1.0037683 0 0 0 0 0 2000 0 0 0 4811.1645 0
171 388.08547 -13101.057 1.9458797 5579.52 7 0.22444002 0.4 0.99435481 0.98307948 1.0037683 5.9276206 1380.4406 7612.921 3.0584795 0 0 3.4801431 0.99683836 0.98307948 1.0037683 0 0 0 0 0 3420 0 0 0 4811.1645 0
Loop time of 0.0822812 on 4 procs for 71 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
100 388.08547 -13035.803 1.9458309 5579.52 7 0.22444002 0.4 0.99435481 0.98307948 1.0037683 5.9276206 1380.4406 7612.921 5.23 0 0 3.4801431 0.99683836 0.98307948 1.0037683 0 0 0 0 0 2000 0 0 0 4806.677 0
200 401.00579 -13036.475 1.7413518 5055.0046 7 0.31164106 0.4 0.99292126 0.97454567 1.0099107 5.9276206 1380.4406 6265.1974 5.8 0.026724138 0 3.7115994 0.99518634 0.97454567 1.0099107 0 0 0 0 0 4000 0 0 0 5975.1486 1
Loop time of 0.0801389 on 4 procs for 100 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
200 401.00579 -13036.475 1.7413518 5055.0046 7 0.31164106 0.4 0.99292126 0.97454567 1.0099107 5.9276206 1380.4406 6265.1974 5.8 0.026724138 0 3.7115994 0.99518634 0.97454567 1.0099107 0 0 0 0 0 4000 0 0 0 5975.1486 1
270 401.00579 -13101.057 1.7413518 5055.0046 7 0.31164106 0.4 0.99292126 0.97454567 1.0099107 5.9276206 1380.4406 6265.1974 4.2962963 0.026724138 0 3.7115994 0.99518634 0.97454567 1.0099107 0 0 0 0 0 5400 0 0 0 5975.1486 1
Loop time of 0.0823423 on 4 procs for 70 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
200 401.00579 -13036.475 1.7412451 5055.0046 7 0.31164106 0.4 0.99292126 0.97454567 1.0099107 5.9276206 1380.4406 6265.1974 5.8 0.026724138 0 3.7115994 0.99518634 0.97454567 1.0099107 0 0 0 0 0 4000 0 0 0 5960.9703 1
300 393.06665 -13036.447 1.2104123 4309.6701 6 0.25677049 0.4 0.99077715 0.96163085 1.0121227 5.9276206 1380.4406 5967.5417 5.82 0.03722795 0.0011454754 3.7958861 0.99407566 0.96163085 1.0121227 0 0 0 0 0 6000 0 0 0 2438.7867 0
Loop time of 0.07828 on 4 procs for 100 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
300 393.06665 -13036.447 1.2104123 4309.6701 6 0.25677049 0.4 0.99077715 0.96163085 1.0121227 5.9276206 1380.4406 5967.5417 5.82 0.03722795 0.0011454754 3.7958861 0.99407566 0.96163085 1.0121227 0 0 0 0 0 6000 0 0 0 2438.7867 0
371 393.06665 -13101.057 1.2104123 4309.6701 6 0.25677049 0.4 0.99077715 0.96163085 1.0121227 5.9276206 1380.4406 5967.5417 4.7061995 0.03722795 0.0011454754 3.7958861 0.99407566 0.96163085 1.0121227 0 0 0 0 0 7420 0 0 0 2438.7867 0
Loop time of 0.0849175 on 4 procs for 71 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
300 393.06665 -13036.447 1.210401 4309.6701 6 0.25677049 0.4 0.99077715 0.96163085 1.0121227 5.9276206 1380.4406 5967.5417 5.82 0.03722795 0.0011454754 3.7958861 0.99407566 0.96163085 1.0121227 0 0 0 0 0 6000 0 0 0 2432.9129 0
400 395.31214 -13036.548 0.97543536 3697.18 5 0.29627573 0.4 0.99121527 0.95719757 1.0171656 5.9276206 1380.4406 5405.5572 5.8525 0.064502349 0.00085433575 3.8763827 0.99330778 0.95719757 1.0171656 0 0 0 0 0 8000 0 0 0 1494.721 0
Loop time of 0.0789399 on 4 procs for 100 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
400 395.31214 -13036.548 0.97543536 3697.18 5 0.29627573 0.4 0.99121527 0.95719757 1.0171656 5.9276206 1380.4406 5405.5572 5.8525 0.064502349 0.00085433575 3.8763827 0.99330778 0.95719757 1.0171656 0 0 0 0 0 8000 0 0 0 1494.721 0
472 395.31214 -13101.057 0.97543536 3697.18 5 0.29627573 0.4 0.99121527 0.95719757 1.0171656 5.9276206 1380.4406 5405.5572 4.9597458 0.064502349 0.00085433575 3.8763827 0.99330778 0.95719757 1.0171656 0 0 0 0 0 9440 0 0 0 1494.721 0
Loop time of 0.0826263 on 4 procs for 72 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
400 395.31214 -13036.548 0.97546459 3697.18 5 0.29627573 0.4 0.99121527 0.95719757 1.0171656 5.9276206 1380.4406 5405.5572 5.8525 0.064502349 0.00085433575 3.8763827 0.99330778 0.95719757 1.0171656 0 0 0 0 0 8000 0 0 0 1495.2683 0
500 407.51943 -13034.684 1.5129292 3762.6056 7 0.32103986 0.4 0.99260954 0.95025478 1.023175 5.9276206 1380.4406 4945.9788 5.798 0.092100724 0.00068989307 3.8763827 0.99301979 0.95024238 1.023175 0 0 0 0 0 10000 0 0 0 2846.6451 1
Loop time of 0.0785343 on 4 procs for 100 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
500 407.51943 -13034.684 1.5129292 3762.6056 7 0.32103986 0.4 0.99260954 0.95025478 1.023175 5.9276206 1380.4406 4945.9788 5.798 0.092100724 0.00068989307 3.8763827 0.99301979 0.95024238 1.023175 0 0 0 0 0 10000 0 0 0 2846.6451 1
570 407.51943 -13101.057 1.5129292 3762.6056 7 0.32103986 0.4 0.99260954 0.95025478 1.023175 5.9276206 1380.4406 4945.9788 5.0859649 0.092100724 0.00068989307 3.8763827 0.99301979 0.95024238 1.023175 0 0 0 0 0 11400 0 0 0 2846.6451 1
Loop time of 0.0831875 on 4 procs for 70 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
500 407.51943 -13034.684 1.5129263 3762.6056 7 0.32103986 0.4 0.99260954 0.95025478 1.023175 5.9276206 1380.4406 4945.9788 5.798 0.092100724 0.00068989307 3.8763827 0.99301979 0.95024238 1.023175 0 0 0 0 0 10000 0 0 0 2845.3486 1
600 403.68879 -13034.437 1.6119602 3538.1789 8 0.37263827 0.4 0.99175914 0.94814388 1.0294169 5.9276206 1380.4406 4879.0252 5.805 0.091587712 0.0054550675 3.8763827 0.99287249 0.94770585 1.0294169 0 0 0 0 0 12000 0 0 0 4550.0103 1
Loop time of 0.0778956 on 4 procs for 100 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
600 403.68879 -13034.437 1.6119602 3538.1789 8 0.37263827 0.4 0.99175914 0.94814388 1.0294169 5.9276206 1380.4406 4879.0252 5.805 0.091587712 0.0054550675 3.8763827 0.99287249 0.94770585 1.0294169 0 0 0 0 0 12000 0 0 0 4550.0103 1
673 403.68879 -13101.057 1.6119602 3538.1789 8 0.37263827 0.4 0.99175914 0.94814388 1.0294169 5.9276206 1380.4406 4879.0252 5.1753343 0.091587712 0.0054550675 3.8763827 0.99287249 0.94770585 1.0294169 0 0 0 0 0 13460 0 0 0 4550.0103 1
Loop time of 0.0866084 on 4 procs for 73 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
600 403.68879 -13034.437 1.6118577 3538.1789 8 0.37263827 0.4 0.99175914 0.94814388 1.0294169 5.9276206 1380.4406 4879.0252 5.805 0.091587712 0.0054550675 3.8763827 0.99287249 0.94770585 1.0294169 0 0 0 0 0 12000 0 0 0 4540.524 1
700 402.40951 -13034.611 0.81457022 3996.0376 5 0.31795282 0.4 0.99307568 0.9469785 1.0356629 5.9276206 1380.4406 4633.0803 5.7657143 0.10332012 0.0047076313 3.8763827 0.9927955 0.94558506 1.0356629 0 0 0 0 0 14000 0 0 0 2433.3681 2
Loop time of 0.0783963 on 4 procs for 100 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
700 402.40951 -13034.611 0.81457022 3996.0376 5 0.31795282 0.4 0.99307568 0.9469785 1.0356629 5.9276206 1380.4406 4633.0803 5.7657143 0.10332012 0.0047076313 3.8763827 0.9927955 0.94558506 1.0356629 0 0 0 0 0 14000 0 0 0 2433.3681 2
773 402.40951 -13101.057 0.81457022 3996.0376 5 0.31795282 0.4 0.99307568 0.9469785 1.0356629 5.9276206 1380.4406 4633.0803 5.221216 0.10332012 0.0047076313 3.8763827 0.9927955 0.94558506 1.0356629 0 0 0 0 0 15460 0 0 0 2433.3681 2
Loop time of 0.0879632 on 4 procs for 73 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
700 402.40951 -13034.611 0.8145522 3996.0376 5 0.31795282 0.4 0.99307568 0.9469785 1.0356629 5.9276206 1380.4406 4633.0803 5.7657143 0.10332012 0.0047076313 3.8763827 0.9927955 0.94558506 1.0356629 0 0 0 0 0 14000 0 0 0 2429.4864 2
800 404.0219 -13035.35 2.0280594 2522.768 9 0.29614163 0.4 0.99235515 0.94241897 1.041911 5.9276206 1380.4406 4611.5881 5.75 0.1123913 0.0041304348 3.8763827 0.99277876 0.94229366 1.041911 0 0 0 0 0 16000 0 0 0 3341.5414 0
Loop time of 0.0830372 on 4 procs for 100 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
800 404.0219 -13035.35 2.0280594 2522.768 9 0.29614163 0.4 0.99235515 0.94241897 1.041911 5.9276206 1380.4406 4611.5881 5.75 0.1123913 0.0041304348 3.8763827 0.99277876 0.94229366 1.041911 0 0 0 0 0 16000 0 0 0 3341.5414 0
875 404.0219 -13101.057 2.0280594 2522.768 9 0.29614163 0.4 0.99235515 0.94241897 1.041911 5.9276206 1380.4406 4611.5881 5.2571429 0.1123913 0.0041304348 3.8763827 0.99277876 0.94229366 1.041911 0 0 0 0 0 17500 0 0 0 3341.5414 0
Loop time of 0.106053 on 4 procs for 75 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
800 404.0219 -13035.35 2.0280349 2522.768 9 0.29614163 0.4 0.99235515 0.94241897 1.041911 5.9276206 1380.4406 4611.5881 5.75 0.1123913 0.0041304348 3.8763827 0.99277876 0.94229366 1.041911 0 0 0 0 0 16000 0 0 0 3339.579 0
900 399.91074 -13034.973 0.95275442 3161.8387 5 0.36638548 0.4 0.99295506 0.93909912 1.0481595 5.9276206 1380.4406 4500.9735 5.7177778 0.12436844 0.0038865138 3.8763827 0.99275079 0.93842885 1.0481595 0 0 0 0 0 18000 0 0 0 1628.7316 2
Loop time of 0.0954949 on 4 procs for 100 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
900 399.91074 -13034.973 0.95275442 3161.8387 5 0.36638548 0.4 0.99295506 0.93909912 1.0481595 5.9276206 1380.4406 4500.9735 5.7177778 0.12436844 0.0038865138 3.8763827 0.99275079 0.93842885 1.0481595 0 0 0 0 0 18000 0 0 0 1628.7316 2
976 399.91074 -13102.244 0.95275442 3161.8387 5 0.36638548 0.4 0.99295506 0.93909912 1.0481595 5.9276206 1380.4406 4500.9735 5.272541 0.12436844 0.0038865138 3.8763827 0.99275079 0.93842885 1.0481595 0 0 0 0 0 19520 0 0 0 1628.7316 2
Loop time of 0.0902783 on 4 procs for 76 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
900 399.91074 -13034.973 0.95307991 3160.9514 5 0.42271366 0.4 0.99267641 0.93909912 1.0481595 5.9292845 1379.4982 4500.9735 5.7177778 0.12436844 0.0038865138 3.8763827 0.99275079 0.93842885 1.0481595 2.7471779 0 0 0 0 18000 1 1 4 1627.8857 2
1000 417.82316 -13039.554 1.4089391 6086.7002 6 0.2668611 0.4 0.99526586 0.94236305 1.0494983 5.9292845 1379.4982 4302.6407 5.774 0.12573606 0.0034638033 3.8763827 0.99291291 0.93842885 1.0529963 2.7471779 0 0 0 0 20000 1 1 4 10750.027 0
Loop time of 0.0780252 on 4 procs for 100 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
1000 417.82316 -13039.554 1.4089391 6086.7002 6 0.2668611 0.4 0.99526586 0.94236305 1.0494983 5.9292845 1379.4982 4302.6407 5.774 0.12573606 0.0034638033 3.8763827 0.99291291 0.93842885 1.0529963 2.7471779 0 0 0 0 20000 1 1 4 10750.027 0
1069 417.82316 -13102.244 1.4089391 6086.7002 6 0.2668611 0.4 0.99526586 0.94236305 1.0494983 5.9292845 1379.4982 4302.6407 5.4013096 0.12573606 0.0034638033 3.8763827 0.99291291 0.93842885 1.0529963 2.7471779 0 0 0 0 21380 1 1 4 10750.027 0
Loop time of 0.0806106 on 4 procs for 69 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
1000 417.82316 -13039.554 1.4087876 6086.7002 6 0.2668611 0.4 0.99526586 0.94236305 1.0494983 5.9292845 1379.4982 4302.6407 5.774 0.12573606 0.0034638033 3.8763827 0.99291291 0.93842885 1.0529963 2.7471779 0 0 0 0 20000 1 1 4 10700.259 0
1100 388.96194 -13034.299 1.2536756 3347.844 7 0.31351452 0.4 0.99338469 0.94091364 1.0522698 5.9292845 1379.4982 4384.5779 5.7981818 0.11774851 0.0039197241 3.8763827 0.99302197 0.93842885 1.0529963 2.7471779 0 0 0 0 22000 1 1 4 3842.8412 1
Loop time of 0.078698 on 4 procs for 100 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
1100 388.96194 -13034.299 1.2536756 3347.844 7 0.31351452 0.4 0.99338469 0.94091364 1.0522698 5.9292845 1379.4982 4384.5779 5.7981818 0.11774851 0.0039197241 3.8763827 0.99302197 0.93842885 1.0529963 2.7471779 0 0 0 0 22000 1 1 4 3842.8412 1
1169 388.96194 -13102.244 1.2536756 3347.844 7 0.31351452 0.4 0.99338469 0.94091364 1.0522698 5.9292845 1379.4982 4384.5779 5.4559453 0.11774851 0.0039197241 3.8763827 0.99302197 0.93842885 1.0529963 2.7471779 0 0 0 0 23380 1 1 4 3842.8412 1
Loop time of 0.0793428 on 4 procs for 69 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
1100 388.96194 -13034.299 1.2536216 3347.844 7 0.31351452 0.4 0.99338469 0.94091364 1.0522698 5.9292845 1379.4982 4384.5779 5.7981818 0.11774851 0.0039197241 3.8763827 0.99302197 0.93842885 1.0529963 2.7471779 0 0 0 0 22000 1 1 4 3837.378 1
1200 416.13133 -13039.115 1.136132 3568.4524 6 0.35533996 0.4 0.99425562 0.9364246 1.0585182 5.9292845 1379.4982 4306.0803 5.8033333 0.12464101 0.0035898909 4.0254085 0.99310701 0.9364246 1.0585182 2.7471779 0 0 0 0 24000 1 1 4 2979.741 3
Loop time of 0.0783656 on 4 procs for 100 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
1200 416.13133 -13039.115 1.136132 3568.4524 6 0.35533996 0.4 0.99425562 0.9364246 1.0585182 5.9292845 1379.4982 4306.0803 5.8033333 0.12464101 0.0035898909 4.0254085 0.99310701 0.9364246 1.0585182 2.7471779 0 0 0 0 24000 1 1 4 2979.741 3
1273 416.13133 -13102.244 1.136132 3568.4524 6 0.35533996 0.4 0.99425562 0.9364246 1.0585182 5.9292845 1379.4982 4306.0803 5.470542 0.12464101 0.0035898909 4.0254085 0.99310701 0.9364246 1.0585182 2.7471779 0 0 0 0 25460 1 1 4 2979.741 3
Loop time of 0.0876518 on 4 procs for 73 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
1200 416.13133 -13039.115 1.1361057 3568.4524 6 0.35533996 0.4 0.99425562 0.9364246 1.0585182 5.9292845 1379.4982 4306.0803 5.8033333 0.12464101 0.0035898909 4.0254085 0.99310701 0.9364246 1.0585182 2.7471779 0 0 0 0 24000 1 1 4 2976.9031 3
1300 410.00168 -13035.264 0.69108116 2815.6646 5 0.33760803 0.4 0.99554496 0.93639346 1.064754 5.9292845 1379.4982 4219.0606 5.7769231 0.12822903 0.0045272969 4.0475228 0.99322786 0.93631673 1.064754 2.7471779 0 0 0 0 26000 1 1 4 3571.3217 2
Loop time of 0.0806069 on 4 procs for 100 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
1300 410.00168 -13035.264 0.69108116 2815.6646 5 0.33760803 0.4 0.99554496 0.93639346 1.064754 5.9292845 1379.4982 4219.0606 5.7769231 0.12822903 0.0045272969 4.0475228 0.99322786 0.93631673 1.064754 2.7471779 0 0 0 0 26000 1 1 4 3571.3217 2
1372 410.00168 -13102.244 0.69108116 2815.6646 5 0.33760803 0.4 0.99554496 0.93639346 1.064754 5.9292845 1379.4982 4219.0606 5.4737609 0.12822903 0.0045272969 4.0475228 0.99322786 0.93631673 1.064754 2.7471779 0 0 0 0 27440 1 1 4 3571.3217 2
Loop time of 0.101343 on 4 procs for 72 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
1300 410.00168 -13035.264 0.69104928 2815.6646 5 0.33760803 0.4 0.99554496 0.93639346 1.064754 5.9292845 1379.4982 4219.0606 5.7769231 0.12822903 0.0045272969 4.0475228 0.99322786 0.93631673 1.064754 2.7471779 0 0 0 0 26000 1 1 4 3567.5136 2
1400 423.4606 -13036.225 1.703102 2579.4314 7 0.24557477 0.4 0.99782055 0.93345496 1.0682561 5.9292845 1379.4982 4099.3865 5.7721429 0.12609826 0.0042074001 4.0475228 0.99346354 0.93345496 1.0682561 2.7471779 0 0 0 0 28000 1 1 4 2627.7529 0
Loop time of 0.0779268 on 4 procs for 100 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
1400 423.4606 -13036.225 1.703102 2579.4314 7 0.24557477 0.4 0.99782055 0.93345496 1.0682561 5.9292845 1379.4982 4099.3865 5.7721429 0.12609826 0.0042074001 4.0475228 0.99346354 0.93345496 1.0682561 2.7471779 0 0 0 0 28000 1 1 4 2627.7529 0
1472 423.4606 -13102.244 1.703102 2579.4314 7 0.24557477 0.4 0.99782055 0.93345496 1.0682561 5.9292845 1379.4982 4099.3865 5.4898098 0.12609826 0.0042074001 4.0475228 0.99346354 0.93345496 1.0682561 2.7471779 0 0 0 0 29440 1 1 4 2627.7529 0
Loop time of 0.0863118 on 4 procs for 72 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
1400 423.4606 -13036.225 1.7031193 2579.4314 7 0.24557477 0.4 0.99782055 0.93345496 1.0682561 5.9292845 1379.4982 4099.3865 5.7721429 0.12609826 0.0042074001 4.0475228 0.99346354 0.93345496 1.0682561 2.7471779 0 0 0 0 28000 1 1 4 2626.4636 0
1500 417.42191 -13035.425 0.63879915 3265.9276 5 0.29228757 0.4 1.0007582 0.93528148 1.0742773 5.9292845 1379.4982 3967.4215 5.808 0.12396694 0.003902663 4.0475228 0.99383929 0.9320167 1.0742773 2.7471779 0 0 0 0 30000 1 1 4 1469.864 0
Loop time of 0.078608 on 4 procs for 100 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
1500 417.42191 -13035.425 0.63879915 3265.9276 5 0.29228757 0.4 1.0007582 0.93528148 1.0742773 5.9292845 1379.4982 3967.4215 5.808 0.12396694 0.003902663 4.0475228 0.99383929 0.9320167 1.0742773 2.7471779 0 0 0 0 30000 1 1 4 1469.864 0
1575 417.42191 -13102.244 0.63879915 3265.9276 5 0.29228757 0.4 1.0007582 0.93528148 1.0742773 5.9292845 1379.4982 3967.4215 5.5314286 0.12396694 0.003902663 4.0475228 0.99383929 0.9320167 1.0742773 2.7471779 0 0 0 0 31500 1 1 4 1469.864 0
Loop time of 0.0875254 on 4 procs for 75 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
1500 417.42191 -13035.425 0.63881053 3265.9276 5 0.29228757 0.4 1.0007582 0.93528148 1.0742773 5.9292845 1379.4982 3967.4215 5.808 0.12396694 0.003902663 4.0475228 0.99383929 0.9320167 1.0742773 2.7471779 0 0 0 0 30000 1 1 4 1469.1489 0
1600 401.08407 -13036.858 2.3070534 2462.029 9 0.26709092 0.4 1.0019205 0.93145421 1.0802698 5.9292845 1379.4982 3922.9667 5.83625 0.12368816 0.0036410366 4.0475228 0.9942857 0.93077554 1.0802698 2.7471779 0 0 0 0 32000 1 1 4 5228.0098 0
Loop time of 0.0780517 on 4 procs for 100 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
1600 401.08407 -13036.858 2.3070534 2462.029 9 0.26709092 0.4 1.0019205 0.93145421 1.0802698 5.9292845 1379.4982 3922.9667 5.83625 0.12368816 0.0036410366 4.0475228 0.9942857 0.93077554 1.0802698 2.7471779 0 0 0 0 32000 1 1 4 5228.0098 0
1667 401.08407 -13102.244 2.3070534 2462.029 9 0.26709092 0.4 1.0019205 0.93145421 1.0802698 5.9292845 1379.4982 3922.9667 5.6016797 0.12368816 0.0036410366 4.0475228 0.9942857 0.93077554 1.0802698 2.7471779 0 0 0 0 33340 1 1 4 5228.0098 0
Loop time of 0.0795826 on 4 procs for 67 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
1600 401.08407 -13036.858 2.3069745 2462.029 9 0.26709092 0.4 1.0019205 0.93145421 1.0802698 5.9292845 1379.4982 3922.9667 5.83625 0.12368816 0.0036410366 4.0475228 0.9942857 0.93077554 1.0802698 2.7471779 0 0 0 0 32000 1 1 4 5216.9826 0
1700 390.57304 -13035.592 0.75779993 1179.4046 6 0.28725951 0.4 1.0026134 0.9311732 1.0858013 5.9292845 1379.4982 3901.4109 5.8264706 0.12155477 0.003634528 4.0475228 0.99473366 0.93050239 1.0858013 2.7471779 0 0 0 0 34000 1 1 4 400.12853 0
Loop time of 0.0782826 on 4 procs for 100 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
1700 390.57304 -13035.592 0.75779993 1179.4046 6 0.28725951 0.4 1.0026134 0.9311732 1.0858013 5.9292845 1379.4982 3901.4109 5.8264706 0.12155477 0.003634528 4.0475228 0.99473366 0.93050239 1.0858013 2.7471779 0 0 0 0 34000 1 1 4 400.12853 0
1769 390.57304 -13102.244 0.75779993 1179.4046 6 0.28725951 0.4 1.0026134 0.9311732 1.0858013 5.9292845 1379.4982 3901.4109 5.5992086 0.12155477 0.003634528 4.0475228 0.99473366 0.93050239 1.0858013 2.7471779 0 0 0 0 35380 1 1 4 400.12853 0
Loop time of 0.0823042 on 4 procs for 69 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
1700 390.57304 -13035.592 0.75783515 1179.4046 6 0.28725951 0.4 1.0026134 0.9311732 1.0858013 5.9292845 1379.4982 3901.4109 5.8264706 0.12155477 0.003634528 4.0475228 0.99473366 0.93050239 1.0858013 2.7471779 0 0 0 0 34000 1 1 4 400.32271 0
1800 398.05229 -13039.968 1.4993394 4237.7772 6 0.25966095 0.4 1.0035311 0.929455 1.0894688 5.9292845 1379.4982 3874.257 5.8227778 0.11487453 0.0034347868 4.0475228 0.99520141 0.929455 1.0894875 2.7471779 0 0 0 0 36000 1 1 4 5377.4056 0
Loop time of 0.07784 on 4 procs for 100 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
1800 398.05229 -13039.968 1.4993394 4237.7772 6 0.25966095 0.4 1.0035311 0.929455 1.0894688 5.9292845 1379.4982 3874.257 5.8227778 0.11487453 0.0034347868 4.0475228 0.99520141 0.929455 1.0894875 2.7471779 0 0 0 0 36000 1 1 4 5377.4056 0
1870 398.05229 -13102.244 1.4993394 4237.7772 6 0.25966095 0.4 1.0035311 0.929455 1.0894688 5.9292845 1379.4982 3874.257 5.6048128 0.11487453 0.0034347868 4.0475228 0.99520141 0.929455 1.0894875 2.7471779 0 0 0 0 37400 1 1 4 5377.4056 0
Loop time of 0.0836493 on 4 procs for 70 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
1800 398.05229 -13039.968 1.4993215 4237.7772 6 0.25966095 0.4 1.0035311 0.929455 1.0894688 5.9292845 1379.4982 3874.257 5.8227778 0.11487453 0.0034347868 4.0475228 0.99520141 0.929455 1.0894875 2.7471779 0 0 0 0 36000 1 1 4 5369.6279 0
1900 413.06274 -13039.873 1.3826465 7339.1562 5 0.22717549 0.4 0.999658 0.92261066 1.0792934 5.9292845 1379.4982 4011.3391 5.8310526 0.11065981 0.0032493907 4.0475228 0.99552368 0.92261066 1.0894875 2.7471779 0 0 0 0 38000 1 1 4 10818.73 0
Loop time of 0.0805019 on 4 procs for 100 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
1900 413.06274 -13039.873 1.3826465 7339.1562 5 0.22717549 0.4 0.999658 0.92261066 1.0792934 5.9292845 1379.4982 4011.3391 5.8310526 0.11065981 0.0032493907 4.0475228 0.99552368 0.92261066 1.0894875 2.7471779 0 0 0 0 38000 1 1 4 10818.73 0
1969 413.06274 -13102.244 1.3826465 7339.1562 5 0.22717549 0.4 0.999658 0.92261066 1.0792934 5.9292845 1379.4982 4011.3391 5.6267141 0.11065981 0.0032493907 4.0475228 0.99552368 0.92261066 1.0894875 2.7471779 0 0 0 0 39380 1 1 4 10818.73 0
Loop time of 0.0814294 on 4 procs for 69 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
1900 413.06274 -13039.873 1.3825572 7339.1562 5 0.22717549 0.4 0.999658 0.92261066 1.0792934 5.9292845 1379.4982 4011.3391 5.8310526 0.11065981 0.0032493907 4.0475228 0.99552368 0.92261066 1.0894875 2.7471779 0 0 0 0 38000 1 1 4 10781.258 0
2000 399.72382 -13038.217 1.1754671 2735.2303 6 0.31028081 0.4 0.99858834 0.92453074 1.0748234 5.9292845 1379.4982 4045.0012 5.811 0.10841507 0.0030975736 4.0475228 0.99572029 0.922532 1.0894875 2.7471779 0 0 0 0 40000 1 1 4 2622.0819 1
Loop time of 0.0794099 on 4 procs for 100 steps with 2354 atoms
Step Temp PotEng f_HL f_HL[1] f_HL[2] f_HL[3] f_HL[4] f_HL[5] f_HL[6] f_HL[7] f_HL[8] f_HL[9] f_HL[10] f_HL[11] f_HL[12] f_HL[13] f_HL[14] f_HL[15] f_HL[16] f_HL[17] f_HL[18] f_HL[19] f_HL[20] f_HL[21] f_HL[22] f_HL[23] f_HL[24] f_HL[25] f_HL[26] f_HL[27] f_HL[28]
2000 399.72382 -13038.217 1.1754671 2735.2303 6 0.31028081 0.4 0.99858834 0.92453074 1.0748234 5.9292845 1379.4982 4045.0012 5.811 0.10841507 0.0030975736 4.0475228 0.99572029 0.922532 1.0894875 2.7471779 0 0 0 0 40000 1 1 4 2622.0819 1
2071 399.72382 -13102.244 1.1754671 2735.2303 6 0.31028081 0.4 0.99858834 0.92453074 1.0748234 5.9292845 1379.4982 4045.0012 5.6117817 0.10841507 0.0030975736 4.0475228 0.99572029 0.922532 1.0894875 2.7471779 0 0 0 0 41420 1 1 4 2622.0819 1
Loop time of 0.0837786 on 4 procs for 71 steps with 2354 atoms
Final hyper stats ...
Cummulative quantities for fix hyper:
hyper time = 40000
time boost factor = 4000
event timesteps = 1
# of atoms in events = 1
Quantities for this hyper run:
event timesteps = 1
# of atoms in events = 1
max length of any bond = 4.04752
max drift distance of any atom = 2.74718
fraction of biased bonds with zero bias = 0.108415
fraction of biased bonds with negative strain = 0.00309757
Current quantities:
ave bonds/atom = 5.92928
Cummulative quantities specific to fix hyper/local:
# of new bonds formed = 4
max bonds/atom = 12
Quantities for this hyper run specific to fix hyper/local:
ave boost for all bonds/step = 4045
ave biased bonds/step = 5.811
ave bias coeff of all bonds = 0.99572
min bias coeff of any bond = 0.922532
max bias coeff of any bond = 1.08949
max dist from my subbox of any non-maxstrain bond ghost atom = 0
max dist from my box of any bond ghost atom = 0
count of bond ghost neighbors not found on reneighbor steps = 0
bias overlaps = 0
CPU time for bond builds = 0.00247526
Current quantities specific to fix hyper/local:
neighbor bonds/bond = 1379.5
ave boost coeff for all bonds = 0.998588
Loop time of 3.52992 on 4 procs for 2000 steps with 2354 atoms
Performance: 244.765 ns/day, 0.098 hours/ns, 566.585 timesteps/s
114.7% CPU use with 4 MPI tasks x 1 OpenMP threads
Hyper stats:
Dynamics time (%) = 1.59393 (45.1549)
Quench time (%) = 1.71979 (48.7203)
Other time (%) = 0.219256 (6.21136)
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 2.4735 | 2.4914 | 2.5135 | 1.0 | 70.58
Neigh | 0.11535 | 0.11805 | 0.12056 | 0.7 | 3.34
Comm | 0.20734 | 0.21636 | 0.22119 | 1.1 | 6.13
Output | 0.00089145 | 0.0014108 | 0.0029645 | 2.4 | 0.04
Modify | 0.47314 | 0.48343 | 0.49869 | 1.4 | 13.70
Other | | 0.2193 | | | 6.21
Nlocal: 588.5 ave 607 max 577 min
Histogram: 1 0 2 0 0 0 0 0 0 1
Nghost: 1965.75 ave 1977 max 1947 min
Histogram: 1 0 0 0 0 0 1 0 1 1
Neighs: 13775.8 ave 14221 max 13511 min
Histogram: 1 1 0 1 0 0 0 0 0 1
FullNghs: 136920 ave 139934 max 133922 min
Histogram: 1 0 0 1 0 0 1 0 0 1
Total # of neighbors = 547678
Ave neighs/atom = 232.658
Neighbor list builds = 193
Dangerous builds = 0
Total wall time: 0:00:04

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -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

View File

@ -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

2
src/.gitignore vendored
View File

@ -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

View File

@ -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;

View File

@ -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;

View File

@ -69,6 +69,7 @@ if (test $1 = "DIPOLE") then
fi
if (test $1 = "GRANULAR") then
depend KOKKOS
depend USER-OMP
fi

View File

@ -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);
}
/* ----------------------------------------------------------------------

View File

@ -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);
}
}
/* ----------------------------------------------------------------------

View File

@ -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*/)

View File

@ -110,6 +110,8 @@ class FixWallGran : public Fix {
// store particle interactions
int store;
void clear_stored_contacts();
};
}

View File

@ -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;

View File

@ -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);
}
}

View File

@ -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;
};
}

View File

@ -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;

View File

@ -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;
};
}

View File

@ -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

View File

@ -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;

View File

@ -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");

View File

@ -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));
}

View File

@ -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;
};

View File

@ -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

View File

@ -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);

View File

@ -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);
}
}

View File

@ -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)

View File

@ -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>

View File

@ -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);
}
/* ----------------------------------------------------------------------

View File

@ -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);
}
}
/* ----------------------------------------------------------------------

View File

@ -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)

View File

@ -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;

View File

@ -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