diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
index e189aa291e..c15011b2af 100644
--- a/cmake/CMakeLists.txt
+++ b/cmake/CMakeLists.txt
@@ -207,7 +207,7 @@ include_directories(${LAMMPS_SOURCE_DIR})
if(PKG_USER-ADIOS)
# The search for ADIOS2 must come before MPI because
# it includes its own MPI search with the latest FindMPI.cmake
- # script that defines the MPI::MPI_C target
+ # script that defines the MPI::MPI_C target
enable_language(C)
find_package(ADIOS2 REQUIRED)
list(APPEND LAMMPS_LINK_LIBS adios2::adios2)
@@ -381,19 +381,10 @@ if(PKG_MSCG OR PKG_USER-ATC OR PKG_USER-AWPMD OR PKG_USER-QUIP OR PKG_LATTE)
endif()
if(PKG_PYTHON)
- find_package(PythonInterp REQUIRED)
find_package(PythonLibs REQUIRED)
add_definitions(-DLMP_PYTHON)
include_directories(${PYTHON_INCLUDE_DIR})
list(APPEND LAMMPS_LINK_LIBS ${PYTHON_LIBRARY})
- if(BUILD_LIB AND BUILD_SHARED_LIBS)
- if(NOT PYTHON_INSTDIR)
- execute_process(COMMAND ${PYTHON_EXECUTABLE}
- -c "import distutils.sysconfig as cg; print(cg.get_python_lib(1,0,prefix='${CMAKE_INSTALL_PREFIX}'))"
- OUTPUT_VARIABLE PYTHON_INSTDIR OUTPUT_STRIP_TRAILING_WHITESPACE)
- endif()
- install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/../python/lammps.py DESTINATION ${PYTHON_INSTDIR})
- endif()
endif()
find_package(JPEG QUIET)
@@ -672,19 +663,19 @@ endif()
if(PKG_KIM)
find_package(CURL)
if(CURL_FOUND)
- include_directories(${CURL_INCLUDE_DIRS})
+ include_directories(${CURL_INCLUDE_DIRS})
list(APPEND LAMMPS_LINK_LIBS ${CURL_LIBRARIES})
add_definitions(-DLMP_KIM_CURL)
endif()
- option(DOWNLOAD_KIM "Download KIM-API v2 from OpenKIM instead of using an already installed one" OFF)
+ option(DOWNLOAD_KIM "Download KIM-API from OpenKIM instead of using an already installed one" OFF)
if(DOWNLOAD_KIM)
- message(STATUS "KIM-API v2 download requested - we will build our own")
+ message(STATUS "KIM-API download requested - we will build our own")
enable_language(C)
enable_language(Fortran)
include(ExternalProject)
ExternalProject_Add(kim_build
- URL https://s3.openkim.org/kim-api/kim-api-v2-2.0.1.txz
- URL_MD5 289c57f0c3bc2a549662283cac1c4ef1
+ URL https://s3.openkim.org/kim-api/kim-api-2.0.2.txz
+ URL_MD5 537d9c0abd30f85b875ebb584f9143fa
BINARY_DIR build
CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
@@ -693,17 +684,17 @@ if(PKG_KIM)
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
)
ExternalProject_get_property(kim_build INSTALL_DIR)
- set(KIM-API-V2_INCLUDE_DIRS ${INSTALL_DIR}/include/kim-api-v2)
- set(KIM-API-V2_LDFLAGS ${INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/libkim-api-v2${CMAKE_SHARED_LIBRARY_SUFFIX})
+ set(KIM-API_INCLUDE_DIRS ${INSTALL_DIR}/include/kim-api)
+ set(KIM-API_LDFLAGS ${INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/libkim-api${CMAKE_SHARED_LIBRARY_SUFFIX})
list(APPEND LAMMPS_DEPS kim_build)
else()
- find_package(KIM-API-V2)
- if(NOT KIM-API-V2_FOUND)
- message(FATAL_ERROR "KIM-API v2 not found, help CMake to find it by setting PKG_CONFIG_PATH, or set DOWNLOAD_KIM=ON to download it")
+ find_package(KIM-API)
+ if(NOT KIM-API_FOUND)
+ message(FATAL_ERROR "KIM-API not found, help CMake to find it by setting PKG_CONFIG_PATH, or set DOWNLOAD_KIM=ON to download it")
endif()
endif()
- list(APPEND LAMMPS_LINK_LIBS "${KIM-API-V2_LDFLAGS}")
- include_directories(${KIM-API-V2_INCLUDE_DIRS})
+ list(APPEND LAMMPS_LINK_LIBS "${KIM-API_LDFLAGS}")
+ include_directories(${KIM-API_INCLUDE_DIRS})
endif()
if(PKG_MESSAGE)
@@ -1177,6 +1168,10 @@ if(PKG_GPU)
message(FATAL_ERROR "Could not find bin2c, use -DBIN2C=/path/to/bin2c to help cmake finding it.")
endif()
option(CUDPP_OPT "Enable CUDPP_OPT" ON)
+ option(CUDA_MPS_SUPPORT "Enable tweaks to support CUDA Multi-process service (MPS)" OFF)
+ if(CUDA_MPS_SUPPORT)
+ set(GPU_CUDA_MPS_FLAGS "-DCUDA_PROXY")
+ endif()
set(GPU_ARCH "sm_30" CACHE STRING "LAMMPS GPU CUDA SM primary architecture (e.g. sm_60)")
@@ -1240,7 +1235,7 @@ if(PKG_GPU)
add_library(gpu STATIC ${GPU_LIB_SOURCES} ${GPU_LIB_CUDPP_SOURCES} ${GPU_OBJS})
target_link_libraries(gpu ${CUDA_LIBRARIES} ${CUDA_CUDA_LIBRARY})
target_include_directories(gpu PRIVATE ${LAMMPS_LIB_BINARY_DIR}/gpu ${CUDA_INCLUDE_DIRS})
- target_compile_definitions(gpu PRIVATE -D_${GPU_PREC_SETTING} -DMPI_GERYON -DUCL_NO_EXIT)
+ target_compile_definitions(gpu PRIVATE -D_${GPU_PREC_SETTING} -DMPI_GERYON -DUCL_NO_EXIT ${GPU_CUDA_MPS_FLAGS})
if(CUDPP_OPT)
target_include_directories(gpu PRIVATE ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini)
target_compile_definitions(gpu PRIVATE -DUSE_CUDPP)
@@ -1467,6 +1462,49 @@ install(
DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/profile.d
)
+###############################################################################
+# Install LAMMPS lib and python module into site-packages folder with
+# "install-python" target. Behaves exactly like "make install-python" for
+# conventional build. Only available, if a shared library is built.
+# This is primarily for people that only want to use the Python wrapper.
+###############################################################################
+if(BUILD_LIB AND BUILD_SHARED_LIBS)
+ find_package(PythonInterp)
+ if (PYTHONINTERP_FOUND)
+ add_custom_target(
+ install-python
+ ${PYTHON_EXECUTABLE} install.py -v ${LAMMPS_SOURCE_DIR}/version.h
+ -m ${CMAKE_CURRENT_SOURCE_DIR}/../python/lammps.py
+ -l ${CMAKE_BINARY_DIR}/liblammps${CMAKE_SHARED_LIBRARY_SUFFIX}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../python
+ COMMENT "Installing LAMMPS Python module")
+ else()
+ add_custom_target(
+ install-python
+ ${CMAKE_COMMAND} -E echo "Must have Python installed to install the LAMMPS Python module")
+ endif()
+else()
+ add_custom_target(
+ install-python
+ ${CMAKE_COMMAND} -E echo "Must build LAMMPS as a shared library to use the Python module")
+endif()
+
+###############################################################################
+# Add LAMMPS python module to "install" target. This is taylored for building
+# LAMMPS for package managers and with different prefix settings.
+# This requires either a shared library or that the PYTHON package is included.
+###############################################################################
+if((BUILD_LIB AND BUILD_SHARED_LIBS) OR (PKG_PYTHON))
+ find_package(PythonInterp)
+ if (PYTHONINTERP_FOUND)
+ execute_process(COMMAND ${PYTHON_EXECUTABLE}
+ -c "import distutils.sysconfig as cg; print(cg.get_python_lib(1,0,prefix='${CMAKE_INSTALL_PREFIX}'))"
+ OUTPUT_VARIABLE PYTHON_DEFAULT_INSTDIR OUTPUT_STRIP_TRAILING_WHITESPACE)
+ set(PYTHON_INSTDIR ${PYTHON_DEFAULT_INSTDIR} CACHE PATH "Installation folder for LAMMPS Python module")
+ install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/../python/lammps.py DESTINATION ${PYTHON_INSTDIR})
+ endif()
+endif()
+
###############################################################################
# Testing
#
diff --git a/cmake/Modules/FindKIM-API-V2.cmake b/cmake/Modules/FindKIM-API.cmake
similarity index 61%
rename from cmake/Modules/FindKIM-API-V2.cmake
rename to cmake/Modules/FindKIM-API.cmake
index 6ca6e068df..d9397b9aba 100644
--- a/cmake/Modules/FindKIM-API-V2.cmake
+++ b/cmake/Modules/FindKIM-API.cmake
@@ -19,7 +19,7 @@
#
#
-# Copyright (c) 2013--2018, Regents of the University of Minnesota.
+# Copyright (c) 2013--2019, Regents of the University of Minnesota.
# All rights reserved.
#
# Contributors:
@@ -28,23 +28,23 @@
# Ryan S. Elliott
#
-# - Find KIM-API-V2
+# - Find KIM-API
#
# sets standard pkg_check_modules variables plus:
#
-# KIM-API-V2-CMAKE_C_COMPILER
-# KIM-API-V2-CMAKE_CXX_COMPILER
-# KIM-API-V2-CMAKE_Fortran_COMPILER
+# KIM-API-CMAKE_C_COMPILER
+# KIM-API-CMAKE_CXX_COMPILER
+# KIM-API-CMAKE_Fortran_COMPILER
#
find_package(PkgConfig REQUIRED)
include(FindPackageHandleStandardArgs)
-pkg_check_modules(KIM-API-V2 REQUIRED libkim-api-v2>=2.0)
+pkg_check_modules(KIM-API REQUIRED libkim-api>=2.0)
-pkg_get_variable(KIM-API-V2-CMAKE_C_COMPILER libkim-api-v2 CMAKE_C_COMPILER)
-pkg_get_variable(KIM-API-V2-CMAKE_CXX_COMPILER libkim-api-v2 CMAKE_CXX_COMPILER)
-pkg_get_variable(KIM-API-V2_CMAKE_Fortran_COMPILER libkim-api-v2 CMAKE_Fortran_COMPILER)
+pkg_get_variable(KIM-API-V2-CMAKE_C_COMPILER libkim-api CMAKE_C_COMPILER)
+pkg_get_variable(KIM-API-V2-CMAKE_CXX_COMPILER libkim-api CMAKE_CXX_COMPILER)
+pkg_get_variable(KIM-API-V2_CMAKE_Fortran_COMPILER libkim-api CMAKE_Fortran_COMPILER)
-# handle the QUIETLY and REQUIRED arguments and set KIM-API-V2_FOUND to TRUE
+# handle the QUIETLY and REQUIRED arguments and set KIM-API_FOUND to TRUE
# if all listed variables are TRUE
-find_package_handle_standard_args(KIM-API-V2 REQUIRED_VARS KIM-API-V2_LIBRARIES)
+find_package_handle_standard_args(KIM-API REQUIRED_VARS KIM-API_LIBRARIES)
diff --git a/cmake/Modules/generate_lmpgitversion.cmake b/cmake/Modules/generate_lmpgitversion.cmake
index 8aead88f5f..a4aa59b262 100644
--- a/cmake/Modules/generate_lmpgitversion.cmake
+++ b/cmake/Modules/generate_lmpgitversion.cmake
@@ -5,15 +5,15 @@ set(temp_git_describe "(unknown)")
set(temp_git_info "false")
if(GIT_FOUND AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../.git)
set(temp_git_info "true")
- execute_process(COMMAND ${GIT_EXECUTABLE} -C ${CMAKE_CURRENT_SOURCE_DIR}/../.git rev-parse HEAD
+ execute_process(COMMAND ${GIT_EXECUTABLE} -C ${CMAKE_CURRENT_SOURCE_DIR}/.. rev-parse HEAD
OUTPUT_VARIABLE temp_git_commit
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE)
- execute_process(COMMAND ${GIT_EXECUTABLE} -C ${CMAKE_CURRENT_SOURCE_DIR}/../.git rev-parse --abbrev-ref HEAD
+ execute_process(COMMAND ${GIT_EXECUTABLE} -C ${CMAKE_CURRENT_SOURCE_DIR}/.. rev-parse --abbrev-ref HEAD
OUTPUT_VARIABLE temp_git_branch
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE)
- execute_process(COMMAND ${GIT_EXECUTABLE} -C ${CMAKE_CURRENT_SOURCE_DIR}/../.git describe --dirty=-modified
+ execute_process(COMMAND ${GIT_EXECUTABLE} -C ${CMAKE_CURRENT_SOURCE_DIR}/.. describe --dirty=-modified
OUTPUT_VARIABLE temp_git_describe
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE)
diff --git a/cmake/README.md b/cmake/README.md
index ce3b4502af..1c37ecc92e 100644
--- a/cmake/README.md
+++ b/cmake/README.md
@@ -1503,6 +1503,16 @@ target API.
+
+ CUDA_MPS_SUPPORT (CUDA only) |
+ Enable tweaks for running with Nvidia CUDA Multi-process services daemon |
+
+
+ on
+ off (default)
+
+ |
+
BIN2C (CUDA only) |
Path to bin2c executable, will automatically pick up the first one in your $PATH. |
diff --git a/doc/Makefile b/doc/Makefile
index 044e358bd5..fa60aa3698 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -116,6 +116,13 @@ mobi: epub
@echo "Conversion finished. The MOBI manual file is created."
pdf: $(OBJECTS) $(ANCHORCHECK)
+ @(\
+ cd src/Developer; \
+ pdflatex developer; \
+ pdflatex developer; \
+ mv developer.pdf ../../Developer.pdf; \
+ cd ../../; \
+ )
@(\
. $(VENV)/bin/activate ;\
cp -r src/* $(RSTDIR)/ ;\
@@ -135,14 +142,7 @@ pdf: $(OBJECTS) $(ANCHORCHECK)
make && \
make && \
mv LAMMPS.pdf ../Manual.pdf && \
- cd ../;
- @(\
- cd src/Developer; \
- pdflatex developer; \
- pdflatex developer; \
- mv developer.pdf ../../Developer.pdf; \
- cd ../../; \
- )
+ cd ../;
@rm -rf latex/_sources
@rm -rf latex/PDF
@rm -rf latex/USER
@@ -211,7 +211,7 @@ $(VENV):
@( \
$(VIRTUALENV) -p $(PYTHON) $(VENV); \
. $(VENV)/bin/activate; \
- pip install Sphinx; \
+ pip install Sphinx==1.7.6; \
deactivate;\
)
diff --git a/doc/src/Build_extras.txt b/doc/src/Build_extras.txt
index 65a05c267e..2aa304faff 100644
--- a/doc/src/Build_extras.txt
+++ b/doc/src/Build_extras.txt
@@ -82,17 +82,19 @@ which GPU hardware to build for.
[CMake build]:
--D GPU_API=value # value = opencl (default) or cuda
--D GPU_PREC=value # precision setting
- # value = double or mixed (default) or single
--D OCL_TUNE=value # hardware choice for GPU_API=opencl
- # generic (default) or intel (Intel CPU) or fermi, kepler, cypress (NVIDIA)
--D GPU_ARCH=value # primary GPU hardware choice for GPU_API=cuda
- # value = sm_XX, see below
- # default is Cuda-compiler dependent, but typically sm_20
--D CUDPP_OPT=value # optimization setting for GPU_API=cuda
- # enables CUDA Performance Primitives Optimizations
- # yes (default) or no :pre
+-D GPU_API=value # value = opencl (default) or cuda
+-D GPU_PREC=value # precision setting
+ # value = double or mixed (default) or single
+-D OCL_TUNE=value # hardware choice for GPU_API=opencl
+ # generic (default) or intel (Intel CPU) or fermi, kepler, cypress (NVIDIA)
+-D GPU_ARCH=value # primary GPU hardware choice for GPU_API=cuda
+ # value = sm_XX, see below
+ # default is Cuda-compiler dependent, but typically sm_20
+-D CUDPP_OPT=value # optimization setting for GPU_API=cuda
+ # enables CUDA Performance Primitives Optimizations
+ # value = yes (default) or no
+-D CUDA_MPS_SUPPORT=value # enables some tweaks required to run with active nvidia-cuda-mps daemon
+ # value = yes or no (default) :pre
GPU_ARCH settings for different GPU hardware is as follows:
@@ -195,7 +197,7 @@ https://openkim.org/browse/models/by-model-drivers
If DOWNLOAD_KIM is set, the KIM library will be downloaded and built
inside the CMake build directory. If the KIM library is already on
your system (in a location CMake cannot find it), set the PKG_CONFIG_PATH
-environment variable so that libkim-api-v2 can be found.
+environment variable so that libkim-api can be found.
[Traditional make]:
diff --git a/doc/src/Commands_fix.txt b/doc/src/Commands_fix.txt
index 678cc9ba0d..c8b3ef8991 100644
--- a/doc/src/Commands_fix.txt
+++ b/doc/src/Commands_fix.txt
@@ -224,7 +224,7 @@ OPT.
"wall/body/polyhedron"_fix_wall_body_polyhedron.html,
"wall/colloid"_fix_wall.html,
"wall/ees"_fix_wall_ees.html,
-"wall/gran (o)"_fix_wall_gran.html,
+"wall/gran"_fix_wall_gran.html,
"wall/gran/region"_fix_wall_gran_region.html,
"wall/harmonic"_fix_wall.html,
"wall/lj1043"_fix_wall.html,
diff --git a/doc/src/Howto_pylammps.txt b/doc/src/Howto_pylammps.txt
index b731a8e31a..54f17d912a 100644
--- a/doc/src/Howto_pylammps.txt
+++ b/doc/src/Howto_pylammps.txt
@@ -57,6 +57,17 @@ library is then loaded by the Python interface. In this example we enable the
MOLECULE package and compile LAMMPS with C++ exceptions, PNG, JPEG and FFMPEG
output support enabled.
+Step 1a: For the CMake based build system, the steps are:
+
+mkdir $LAMMPS_DIR/build-shared
+cd $LAMMPS_DIR/build-shared :pre
+
+# MPI, PNG, Jpeg, FFMPEG are auto-detected
+cmake ../cmake -DPKG_MOLECULE=yes -DLAMMPS_EXCEPTIONS=yes -DBUILD_LIB=yes -DBUILD_SHARED_LIBS=yes
+make :pre
+
+Step 1b: For the legacy, make based build system, the steps are:
+
cd $LAMMPS_DIR/src :pre
# add packages if necessary
@@ -68,10 +79,9 @@ make mpi mode=shlib LMP_INC="-DLAMMPS_PNG -DLAMMPS_JPEG -DLAMMPS_FFMPEG -DLAMMPS
Step 2: Installing the LAMMPS Python package :h6
PyLammps is part of the lammps Python package. To install it simply install
-that package into your current Python installation.
+that package into your current Python installation with:
-cd $LAMMPS_DIR/python
-python install.py :pre
+make install-python :pre
NOTE: Recompiling the shared library requires re-installing the Python package
@@ -94,14 +104,21 @@ apt-get install python-virtualenv :pre
Creating a virtualenv with lammps installed :h6
-# create virtualenv name 'testing' :pre
+# create virtualenv named 'testing'
+virtualenv $HOME/python/testing :pre
# activate 'testing' environment
-source testing/bin/activate :pre
+source $HOME/python/testing/bin/activate :pre
+
+Now configure and compile the LAMMPS shared library as outlined above.
+When using CMake and the shared library has already been build, you
+need to re-run CMake to update the location of the python executable
+to the location in the virtual environment with:
+
+cmake . -DPYTHON_EXECUTABLE=$(which python) :pre
# install LAMMPS package in virtualenv
-(testing) cd $LAMMPS_DIR/python
-(testing) python install.py :pre
+(testing) make install-python :pre
# install other useful packages
(testing) pip install matplotlib jupyter mpi4py :pre
diff --git a/doc/src/Manual.txt b/doc/src/Manual.txt
index af0a2681ab..e36e4063c9 100644
--- a/doc/src/Manual.txt
+++ b/doc/src/Manual.txt
@@ -1,7 +1,7 @@
LAMMPS Users Manual
-
+
@@ -21,7 +21,7 @@
:line
LAMMPS Documentation :c,h1
-28 Feb 2019 version :c,h2
+29 Mar 2019 version :c,h2
"What is a LAMMPS version?"_Manual_version.html
diff --git a/doc/src/Python_install.txt b/doc/src/Python_install.txt
index 97f6bf3c3a..2c134974f5 100644
--- a/doc/src/Python_install.txt
+++ b/doc/src/Python_install.txt
@@ -12,16 +12,23 @@ Installing LAMMPS in Python :h3
For Python to invoke LAMMPS, there are 2 files it needs to know about:
python/lammps.py
-src/liblammps.so :ul
+liblammps.so or liblammps.dylib :ul
-Lammps.py is the Python wrapper on the LAMMPS library interface.
-Liblammps.so is the shared LAMMPS library that Python loads, as
-described above.
+The python source code in lammps.py is the Python wrapper on the
+LAMMPS library interface. The liblammps.so or liblammps.dylib file
+is the shared LAMMPS library that Python loads dynamically.
-You can insure Python can find these files in one of two ways:
+You can achieve that Python can find these files in one of two ways:
-set two environment variables
-run the python/install.py script :ul
+set two environment variables pointing to the location in the source tree
+run "make install-python" or run the python/install.py script explicitly :ul
+
+When calling "make install-python" LAMMPS will try to install the
+python module and the shared library into the python site-packages folders;
+either the system-wide ones, or the local users ones (in case of insufficient
+permissions for the global install). Python will then find the module
+and shared library file automatically. The exact location of these folders
+depends on your python version and your operating system.
If you set the paths to these files as environment variables, you only
have to do it once. For the csh or tcsh shells, add something like
@@ -30,42 +37,28 @@ this to your ~/.cshrc file, one line for each of the two files:
setenv PYTHONPATH $\{PYTHONPATH\}:/home/sjplimp/lammps/python
setenv LD_LIBRARY_PATH $\{LD_LIBRARY_PATH\}:/home/sjplimp/lammps/src :pre
-If you use the python/install.py script, you need to invoke it every
-time you rebuild LAMMPS (as a shared library) or make changes to the
-python/lammps.py file.
+On MacOSX you may also need to set DYLD_LIBRARY_PATH accordingly.
+For Bourne/Korn shells accordingly into the corresponding files using
+the "export" shell builtin.
-You can invoke install.py from the python directory as
+If you use "make install-python" or the python/install.py script, you need
+to invoke it every time you rebuild LAMMPS (as a shared library) or
+make changes to the python/lammps.py file, so that the site-packages
+files are updated with the new version.
-% python install.py \[libdir\] \[pydir\] :pre
+If the default settings of "make install-python" are not what you want,
+you can invoke install.py from the python directory manually as
-The optional libdir is where to copy the LAMMPS shared library to; the
-default is /usr/local/lib. The optional pydir is where to copy the
-lammps.py file to; the default is the site-packages directory of the
-version of Python that is running the install script.
+% python install.py -m \ -l -v \[-d \\] :pre
-Note that libdir must be a location that is in your default
-LD_LIBRARY_PATH, like /usr/local/lib or /usr/lib. And pydir must be a
-location that Python looks in by default for imported modules, like
-its site-packages dir. If you want to copy these files to
-non-standard locations, such as within your own user space, you will
-need to set your PYTHONPATH and LD_LIBRARY_PATH environment variables
-accordingly, as above.
+The -m flag points to the lammps.py python module file to be installed,
+the -l flag points to the LAMMPS shared library file to be installed,
+the -v flag points to the version.h file in the LAMMPS source
+and the optional -d flag to a custom (legacy) installation folder :ul
-If the install.py script does not allow you to copy files into system
-directories, prefix the python command with "sudo". If you do this,
-make sure that the Python that root runs is the same as the Python you
-run. E.g. you may need to do something like
-
-% sudo /usr/local/bin/python install.py \[libdir\] \[pydir\] :pre
-
-You can also invoke install.py from the make command in the src
-directory as
-
-% make install-python :pre
-
-In this mode you cannot append optional arguments. Again, you may
-need to prefix this with "sudo". In this mode you cannot control
-which Python is invoked by root.
+If you use a legacy installation folder, you will need to set your
+PYTHONPATH and LD_LIBRARY_PATH (and/or DYLD_LIBRARY_PATH) environment
+variables accordingly, as described above.
Note that if you want Python to be able to load different versions of
the LAMMPS shared library (see "this section"_Python_shlib.html), you will
diff --git a/doc/src/Python_overview.txt b/doc/src/Python_overview.txt
index a5d6a469ff..0195ec2b20 100644
--- a/doc/src/Python_overview.txt
+++ b/doc/src/Python_overview.txt
@@ -13,11 +13,11 @@ Overview of Python and LAMMPS :h3
LAMMPS can work together with Python in three ways. First, Python can
wrap LAMMPS through the its "library interface"_Howto_library.html, so
that a Python script can create one or more instances of LAMMPS and
-launch one or more simulations. In Python lingo, this is "extending"
-Python with LAMMPS.
+launch one or more simulations. In Python lingo, this is called
+"extending" Python with a LAMMPS module.
Second, a lower-level Python interface can be used indirectly through
-provided PyLammps and IPyLammps wrapper classes, written in Python.
+the provided PyLammps and IPyLammps wrapper classes, written in Python.
These wrappers try to simplify the usage of LAMMPS in Python by
providing an object-based interface to common LAMMPS functionality.
They also reduces the amount of code necessary to parameterize LAMMPS
@@ -25,11 +25,12 @@ scripts through Python and make variables and computes directly
accessible.
Third, LAMMPS can use the Python interpreter, so that a LAMMPS
-input script can invoke Python code directly, and pass information
-back-and-forth between the input script and Python functions you
-write. This Python code can also callback to LAMMPS to query or change
-its attributes. In Python lingo, this is "embedding" Python in
-LAMMPS. When used in this mode, Python can perform operations that
-the simple LAMMPS input script syntax cannot.
+input script or styles can invoke Python code directly, and pass
+information back-and-forth between the input script and Python
+functions you write. This Python code can also callback to LAMMPS
+to query or change its attributes through the LAMMPS Python module
+mentioned above. In Python lingo, this is "embedding" Python in
+LAMMPS. When used in this mode, Python can perform script operations
+that the simple LAMMPS input script syntax can not.
diff --git a/doc/src/Speed_intel.txt b/doc/src/Speed_intel.txt
index da772f29fd..dc38cb0956 100644
--- a/doc/src/Speed_intel.txt
+++ b/doc/src/Speed_intel.txt
@@ -34,6 +34,10 @@ rebo, sw, tersoff :l
K-Space Styles: pppm, pppm/disp :l
:ule
+IMPORTANT NOTE: None of the styles in the USER-INTEL package currently
+support computing per-atom stress. If any compute or fix in your
+input requires it, LAMMPS will abort with an error message.
+
[Speed-ups to expect:]
The speedups will depend on your simulation, the hardware, which
diff --git a/doc/src/compute.txt b/doc/src/compute.txt
index 4886e73ab6..87dbee57d6 100644
--- a/doc/src/compute.txt
+++ b/doc/src/compute.txt
@@ -54,9 +54,10 @@ local quantities have the word "local" in their style,
e.g. {bond/local}. Styles with neither "atom" or "local" in their
style produce global quantities.
-Note that a single compute produces either global or per-atom or local
-quantities, but never more than one of these (with only a few
-exceptions, as documented by individual compute commands).
+Note that a single compute can produce either global or per-atom or
+local quantities, but not both global and per-atom. It can produce
+local quantities in tandem with global or per-atom quantities. The
+compute doc page will explain.
Global, per-atom, and local quantities each come in three kinds: a
single scalar value, a vector of values, or a 2d array of values. The
diff --git a/doc/src/fix.txt b/doc/src/fix.txt
index 395f2ad7a9..9b48ee13bf 100644
--- a/doc/src/fix.txt
+++ b/doc/src/fix.txt
@@ -83,8 +83,10 @@ not in the specified fix group. Local quantities are calculated by
each processor based on the atoms it owns, but there may be zero or
more per atoms.
-Note that a single fix may produces either global or per-atom or local
-quantities (or none at all), but never more than one of these.
+Note that a single fix can produce either global or per-atom or local
+quantities (or none at all), but not both global and per-atom. It can
+produce local quantities in tandem with global or per-atom quantities.
+The fix doc page will explain.
Global, per-atom, and local quantities each come in three kinds: a
single scalar value, a vector of values, or a 2d array of values. The
diff --git a/doc/src/fix_ave_histo.txt b/doc/src/fix_ave_histo.txt
index 79f4d53481..0a17813d21 100644
--- a/doc/src/fix_ave_histo.txt
+++ b/doc/src/fix_ave_histo.txt
@@ -35,6 +35,7 @@ keyword = {mode} or {file} or {ave} or {start} or {beyond} or {overwrite} or {ti
{mode} arg = {scalar} or {vector}
scalar = all input values are scalars
vector = all input values are vectors
+ {kind} arg = {global} or {peratom} or {local}
{file} arg = filename
filename = name of file to output histogram(s) to
{ave} args = {one} or {running} or {window}
@@ -92,7 +93,8 @@ either all global, all per-atom, or all local quantities. Inputs of
different kinds (e.g. global and per-atom) cannot be mixed. Atom
attributes are per-atom vector values. See the doc page for
individual "compute" and "fix" commands to see what kinds of
-quantities they generate.
+quantities they generate. See the optional {kind} keyword below for
+how to force the fix ave/histo command to disambiguate if necessary.
Note that the output of this command is a single histogram for all
input values combined together, not one histogram per input value.
@@ -231,6 +233,14 @@ keyword is set to {vector}, then all input values must be global or
per-atom or local vectors, or columns of global or per-atom or local
arrays.
+The {kind} keyword only needs to be set if a compute or fix produces
+more than one kind of output (global, per-atom, local). If this is
+not the case, then LAMMPS will determine what kind of input is
+provided and whether all the input arguments are consistent. If a
+compute or fix produces more than one kind of output, the {kind}
+keyword should be used to specify which output will be used. The
+remaining input arguments must still be consistent.
+
The {beyond} keyword determines how input values that fall outside the
{lo} to {hi} bounds are treated. Values such that {lo} <= value <=
{hi} are assigned to one bin. Values on a bin boundary are assigned
@@ -240,7 +250,7 @@ If {beyond} is set to {end} then values < {lo} are counted in the
first bin and values > {hi} are counted in the last bin. If {beyond}
is set to {extend} then two extra bins are created, so that there are
Nbins+2 total bins. Values < {lo} are counted in the first bin and
-values > {hi} are counted in the last bin (Nbins+1). Values between
+values > {hi} are counted in the last bin (Nbins+2). Values between
{lo} and {hi} (inclusive) are counted in bins 2 through Nbins+1. The
"coordinate" stored and printed for these two extra bins is {lo} and
{hi}.
@@ -354,5 +364,6 @@ ave/chunk"_fix_ave_chunk.html, "fix ave/time"_fix_ave_time.html,
[Default:] none
-The option defaults are mode = scalar, ave = one, start = 0, no file
-output, beyond = ignore, and title 1,2,3 = strings as described above.
+The option defaults are mode = scalar, kind = figured out from input
+arguments, ave = one, start = 0, no file output, beyond = ignore, and
+title 1,2,3 = strings as described above.
diff --git a/doc/src/fix_hyper_global.txt b/doc/src/fix_hyper_global.txt
index a7a938b144..81404ac6a2 100644
--- a/doc/src/fix_hyper_global.txt
+++ b/doc/src/fix_hyper_global.txt
@@ -102,7 +102,7 @@ Bi = exp(beta * Vij(max)) :pre
where beta = 1/kTequil, and {Tequil} is the temperature of the system
and an argument to this fix. Note that Bi >= 1 at every step.
-NOTE: To run GHD, the input script must also use the "fix
+NOTE: To run a GHD simulation, the input script must also use the "fix
langevin"_fix_langevin.html command to thermostat the atoms at the
same {Tequil} as specified by this fix, so that the system is running
constant-temperature (NVT) dynamics. LAMMPS does not check that this
@@ -166,9 +166,9 @@ correctly. There will just be fewer events because the hyper time
NOTE: If you have no physical intuition as to the smallest barrier
height in your system, a reasonable strategy to determine the largest
-{Vmax} you can use for an LHD model, is to run a sequence of
+{Vmax} you can use for a GHD model, is to run a sequence of
simulations with smaller and smaller {Vmax} values, until the event
-rate does not change.
+rate does not change (as a function of hyper time).
The {Tequil} argument is the temperature at which the system is
simulated; see the comment above about the "fix
@@ -177,7 +177,8 @@ beta term in the exponential factor that determines how much boost is
achieved as a function of the bias potential.
In general, the lower the value of {Tequil} and the higher the value
-of {Vmax}, the more boost will be achievable by the GHD algorithm.
+of {Vmax}, the more time boost will be achievable by the GHD
+algorithm.
:line
@@ -190,41 +191,43 @@ The "fix_modify"_fix_modify.html {energy} option is supported by this
fix to add the energy of the bias potential to the the system's
potential energy as part of "thermodynamic output"_thermo_style.html.
-This fix computes a global scalar and global vector of length 11, which
+This fix computes a global scalar and global vector of length 12, which
can be accessed by various "output commands"_Howto_output.html. The
scalar is the magnitude of the bias potential (energy units) applied on
the current timestep. The vector stores the following quantities:
1 = boost factor on this step (unitless)
-2 = max strain Eij of any bond on this step (unitless)
+2 = max strain Eij of any bond on this step (absolute value, unitless)
3 = ID of first atom in the max-strain bond
4 = ID of second atom in the max-strain bond
5 = average # of bonds/atom on this step :ul
-6 = fraction of timesteps with bias = 0.0 during this run
-7 = max drift distance of any atom during this run (distance units)
-8 = max bond length during this run (distance units) :ul
+6 = fraction of timesteps where the biased bond has bias = 0.0 during this run
+7 = fraction of timesteps where the biased bond has negative strain during this run
+8 = max drift distance of any atom during this run (distance units)
+9 = max bond length during this run (distance units) :ul
-9 = cumulative hyper time since fix was defined (time units)
-10 = cumulative count of event timesteps since fix was defined
-11 = cumulative count of atoms in events since fix was defined :ul
+10 = cumulative hyper time since fix was defined (time units)
+11 = cumulative count of event timesteps since fix was defined
+12 = cumulative count of atoms in events since fix was defined :ul
-The first 5 quantities are for the current timestep. Quantities 6-8
-are for the current hyper run. Quantities 9-11 are cumulative across
-multiple runs (since the fix was defined in the input script).
+The first 5 quantities are for the current timestep. Quantities 6-9
+are for the current hyper run. They are reset each time a new hyper
+run is performed. Quantities 19-12 are cumulative across multiple
+runs (since the point in the input script the fix was defined).
-For value 7, drift is the distance an atom moves between timesteps
-when the bond list is reset, i.e. between events. Atoms involved in
-an event will typically move the greatest distance since others are
-typically oscillating around their lattice site.
+For value 8, drift is the distance an atom moves between two quenched
+states when the second quench determines an event has occurred. Atoms
+involved in an event will typically move the greatest distance since
+others typically remain near their original quenched position.
-For value 10, events are checked for by the "hyper"_hyper.html command
+For value 11, events are checked for by the "hyper"_hyper.html command
once every {Nevent} timesteps. This value is the count of those
timesteps on which one (or more) events was detected. It is NOT the
number of distinct events, since more than one event may occur in the
same {Nevent} time window.
-For value 11, each time the "hyper"_hyper.html command checks for an
+For value 12, each time the "hyper"_hyper.html command checks for an
event, it invokes a compute to flag zero or more atoms as
participating in one or more events. E.g. atoms that have displaced
more than some distance from the previous quench state. Value 11 is
diff --git a/doc/src/fix_hyper_local.txt b/doc/src/fix_hyper_local.txt
index c34b9ba7da..185fa8f20b 100644
--- a/doc/src/fix_hyper_local.txt
+++ b/doc/src/fix_hyper_local.txt
@@ -22,10 +22,9 @@ Dcut = minimum distance between boosted bonds (distance units) :l
alpha = boostostat relaxation time (time units) :l
Btarget = desired time boost factor (unitless) :l
zero or more keyword/value pairs may be appended :l
-keyword = {lost} or {check/bias} or {check/coeff}
- {lostbond} value = error/warn/ignore
- {check/bias} values = Nevery error/warn/ignore
- {check/coeff} values = Nevery error/warn/ignore :pre
+keyword = {check/ghost} or {check/bias} :l
+ {check/ghost} values = none
+ {check/bias} values = Nevery error/warn/ignore :pre
:ule
[Examples:]
@@ -65,8 +64,8 @@ To understand this description, you should first read the description
of the GHD algorithm on the "fix hyper/global"_fix_hyper_global.html
doc page. This description of LHD builds on the GHD description.
-The definition of bonds, Eij, and Emax are the same for GHD and LHD.
-The formulas for Vij(max) and Fij(max) are also the same except for a
+The definition of bonds and Eij are the same for GHD and LHD. The
+formulas for Vij(max) and Fij(max) are also the same except for a
pre-factor Cij, explained below.
The bias energy Vij applied to a bond IJ with maximum strain is
@@ -117,11 +116,11 @@ where Vkl(max) is the bias energy of the maxstrain bond KL within bond
IJ's neighborhood, beta = 1/kTequil, and {Tequil} is the temperature
of the system and an argument to this fix.
-NOTE: To run LHD, the input script must also use the "fix
-langevin"_fix_langevin.html command to thermostat the atoms at the
-same {Tequil} as specified by this fix, so that the system is running
-constant-temperature (NVT) dynamics. LAMMPS does not check that this
-is done.
+NOTE: To run an LHD simulation, the input script must also use the
+"fix langevin"_fix_langevin.html command to thermostat the atoms at
+the same {Tequil} as specified by this fix, so that the system is
+running constant-temperature (NVT) dynamics. LAMMPS does not check
+that this is done.
Note that if IJ = KL, then bond IJ is a biased bond on that timestep,
otherwise it is not. But regardless, the boost factor Bij can be
@@ -216,20 +215,20 @@ each pair. E.g. something like 2x the cutoff of the interatomic
potential. In practice a {Dcut} value of ~10 Angstroms seems to work
well for many solid-state systems.
-NOTE: You must also insure that ghost atom communication is performed
-for a distance of at least {Dcut} + {cutevent} where {cutevent} = the
-distance one or more atoms move (between quenched states) to be
-considered an "event". It is an argument to the "compute
-event/displace" command used to detect events. By default the ghost
-communication distance is set by the pair_style cutoff, which will
-typically be < {Dcut}. The "comm_modify cutoff"_comm_modify.html
-command can be used to set the ghost cutoff explicitly, e.g.
+NOTE: You should insure that ghost atom communication is performed for
+a distance of at least {Dcut} + {cutevent} = the distance one or more
+atoms move (between quenched states) to be considered an "event". It
+is an argument to the "compute event/displace" command used to detect
+events. By default the ghost communication distance is set by the
+pair_style cutoff, which will typically be < {Dcut}. The "comm_modify
+cutoff"_comm_modify.html command should be used to override the ghost
+cutoff explicitly, e.g.
comm_modify cutoff 12.0 :pre
-This fix does not know the {cutevent} parameter, but uses half the
-bond length as an estimate to warn if the ghost cutoff is not long
-enough.
+Note that this fix does not know the {cutevent} parameter, but uses
+half the {cutbond} parameter as an estimate to warn if the ghost
+cutoff is not long enough.
As described above the {alpha} argument is a pre-factor in the
boostostat update equation for each bond's Cij prefactor. {Alpha} is
@@ -269,7 +268,30 @@ NOTE: If you have no physical intuition as to the smallest barrier
height in your system, a reasonable strategy to determine the largest
{Btarget} you can use for an LHD model, is to run a sequence of
simulations with smaller and smaller {Btarget} values, until the event
-rate does not change.
+rate does not change (as a function of hyper time).
+
+:line
+
+Here is additional information on the optional keywords for this fix.
+
+The {check/ghost} keyword turns on extra computation each timestep to
+compute statistics about ghost atoms used to determine which bonds to
+bias. The output of these stats are the vector values 14 and 15,
+described below. If this keyword is not enabled, the output
+of the stats will be zero.
+
+The {check/bias} keyword turns on extra computation and communication
+to check if any biased bonds are closer than {Dcut} to each other,
+which should not be the case if LHD is operating correctly. Thus it
+is a debugging check. The {Nevery} setting determines how often the
+check is made. The {error}, {warn}, or {ignore} setting determines
+what is done if the count of too-close bonds is not zero. Either the
+code will exit, or issue a warning, or silently tally the count. The
+count can be output as vector value 17, as described below. If this
+keyword is not enabled, the output of that statistic will be 0.
+
+Note that both of these computations are costly, hence they are only
+enabled by these keywords.
:line
@@ -282,95 +304,120 @@ The "fix_modify"_fix_modify.html {energy} option is supported by this
fix to add the energy of the bias potential to the the system's
potential energy as part of "thermodynamic output"_thermo_style.html.
-This fix computes a global scalar and global vector of length 23,
-which can be accessed by various "output
-commands"_Howto_output.html. The scalar is the magnitude of
-the bias potential (energy units) applied on the current timestep,
-summed over all biased bonds. The vector stores the following
-quantities:
+This fix computes a global scalar and global vector of length 21,
+which can be accessed by various "output commands"_Howto_output.html.
+The scalar is the magnitude of the bias potential (energy units)
+applied on the current timestep, summed over all biased bonds. The
+vector stores the following quantities:
1 = # of biased bonds on this step
-2 = max strain Eij of any bond on this step (unitless)
-3 = average bias potential for all biased bonds on this step (energy units)
+2 = max strain Eij of any bond on this step (absolute value, unitless)
+3 = average bias coeff for all bonds on this step (unitless)
4 = average # of bonds/atom on this step
5 = average neighbor bonds/bond on this step within {Dcut} :ul
-6 = fraction of steps and bonds with no bias during this run
-7 = max drift distance of any atom during this run (distance units)
-8 = max bond length during this run (distance units)
-9 = average # of biased bonds/step during this run
-10 = average bias potential for all biased bonds during this run (energy units)
-11 = max bias potential for any biased bond during this run (energy units)
-12 = min bias potential for any biased bond during this run (energy units)
-13 = max distance from my sub-box of any ghost atom with maxstrain < qfactor during this run (distance units)
-14 = max distance outside my box of any ghost atom with any maxstrain during this run (distance units)
-15 = count of ghost neighbor atoms not found on reneighbor steps during this run
-16 = count of lost bond partners during this run
-17 = average bias coeff for lost bond partners during this run
-18 = count of bias overlaps found during this run
-19 = count of non-matching bias coefficients found during this run :ul
+6 = max bond length during this run (distance units)
+7 = average # of biased bonds/step during this run
+8 = fraction of biased bonds with no bias during this run
+9 = fraction of biased bonds with negative strain during this run
+10 = average bias coeff for all bonds during this run (unitless)
+11 = min bias coeff for any bond during this run (unitless)
+12 = max bias coeff for any bond during this run (unitless)
-20 = cumulative hyper time since fix created (time units)
-21 = cumulative count of event timesteps since fix created
-22 = cumulative count of atoms in events since fix created
-23 = cumulative # of new bonds since fix created :ul
+13 = max drift distance of any bond atom during this run (distance units)
+14 = max distance from proc subbox of any ghost atom with maxstrain < qfactor during this run (distance units)
+15 = max distance outside my box of any ghost atom with any maxstrain during this run (distance units)
+16 = count of ghost atoms that could not be found on reneighbor steps during this run
+17 = count of bias overlaps (< Dcut) found during this run
+
+18 = cumulative hyper time since fix created (time units)
+19 = cumulative count of event timesteps since fix created
+20 = cumulative count of atoms in events since fix created
+21 = cumulative # of new bonds formed since fix created :ul
The first quantities (1-5) are for the current timestep. Quantities
-6-19 are for the current hyper run. They are reset each time a new
-hyper run is performed. Quantities 20-23 are cumulative across
-multiple runs (since the fix was defined in the input script).
+6-17 are for the current hyper run. They are reset each time a new
+hyper run is performed. Quantities 18-21 are cumulative across
+multiple runs (since the point in the input script the fix was
+defined).
-For value 6, the numerator is a count of all biased bonds on every
+For value 8, the numerator is a count of all biased bonds on each
timestep whose bias energy = 0.0 due to Eij >= {qfactor}. The
denominator is the count of all biased bonds on all timesteps.
-For value 7, drift is the distance an atom moves between timesteps
-when the bond list is reset, i.e. between events. Atoms involved in
-an event will typically move the greatest distance since others are
-typically oscillating around their lattice site.
+For value 9, the numerator is a count of all biased bonds on each
+timestep with negative strain. The denominator is the count of all
+biased bonds on all timesteps.
-For values 13 and 14, the maxstrain of a ghost atom is the maxstrain
-of any bond it is part of, and it is checked for ghost atoms within
-the bond neighbor cutoff.
+Values 13-17 are mostly useful for debugging and diagnostic purposes.
-Values 15-19 are mostly useful for debugging and diagnostic purposes.
+For value 13, drift is the distance an atom moves between two quenched
+states when the second quench determines an event has occurred. Atoms
+involved in an event will typically move the greatest distance since
+others typically remain near their original quenched position.
-For values 15-17, it is possible that a ghost atom owned by another
-processor will move far enough (e.g. as part of an event-in-progress)
-that it will no longer be within the communication cutoff distance for
-acquiring ghost atoms. Likewise it may be a ghost atom bond partner
-that cannot be found because it has moved too far. These values count
-those occurrences. Because they typically involve atoms that are part
-of events, they do not usually indicate bad dynamics. Value 16 is the
-average bias coefficient for bonds where a partner atom was lost.
+For values 14-16, neighbor atoms in the full neighbor list with cutoff
+{Dcut} may be ghost atoms outside a processor's sub-box. Before the
+next event occurs they may move further than {Dcut} away from the
+sub-box boundary. Value 14 is the furthest (from the sub-box) any
+ghost atom in the neighbor list with maxstrain < {qfactor} was
+accessed during the run. Value 15 is the same except that the ghost
+atom's maxstrain may be >= {qfactor}, which may mean it is about to
+participate in an event. Value 16 is a count of how many ghost atoms
+could not be found on reneighbor steps, presumably because they moved
+too far away due to their participation in an event (which will likely
+be detected at the next quench).
-For value 18, no two bonds should be biased if they are within a
+Typical values for 14 and 15 should be slightly larger than {Dcut},
+which accounts for ghost atoms initially at a {Dcut} distance moving
+thermally before the next event takes place.
+
+Note that for values 14 and 15 to be computed, the optional keyword
+{check/ghost} must be specified. Otherwise these values will be zero.
+This is because computing them incurs overhead, so the values are only
+computed if requested.
+
+Value 16 should be zero or small. As explained above a small count
+likely means some ghost atoms were participating in their own events
+and moved a longer distance. If the value is large, it likely means
+the communication cutoff for ghosts is too close to {Dcut} leading to
+many not-found ghost atoms before the next event. This may lead to a
+reduced number of bonds being selected for biasing, since the code
+assumes those atoms are part of highly strained bonds. As explained
+above, the "comm_modify cutoff"_comm_modify.html command can be used
+to set a longer cutoff.
+
+For value 17, no two bonds should be biased if they are within a
{Dcut} distance of each other. This value should be zero, indicating
-that no pair of bonds "overlap", meaning they are closer than {Dcut}
-from each other.
+that no pair of biased bonds are closer than {Dcut} from each other.
-For value 19, the same bias coefficient is stored by both atoms in an
-IJ bond. This value should be zero, indicating that for all bonds,
-each atom in the bond stores the a bias coefficient with the same
-value.
+Note that for values 17 to be computed, the optional keyword
+{check/bias} must be specified and it determines how often this check
+is performed. This is because performing the check incurs overhead,
+so if only computed as often as requested.
-Value 20 is simply the specified {boost} factor times the number of
-timestep times the timestep size.
+The result at the end of the run is the cumulative total from every
+timestep the check was made. Note that the value is a count of atoms
+in bonds which found other atoms in bonds too close, so it is almost
+always an over-count of the number of too-close bonds.
-For value 21, events are checked for by the "hyper"_hyper.html command
+Value 18 is simply the specified {boost} factor times the number of
+timesteps times the timestep size.
+
+For value 19, events are checked for by the "hyper"_hyper.html command
once every {Nevent} timesteps. This value is the count of those
timesteps on which one (or more) events was detected. It is NOT the
number of distinct events, since more than one event may occur in the
same {Nevent} time window.
-For value 22, each time the "hyper"_hyper.html command checks for an
+For value 20, each time the "hyper"_hyper.html command checks for an
event, it invokes a compute to flag zero or more atoms as
participating in one or more events. E.g. atoms that have displaced
-more than some distance from the previous quench state. Value 22 is
+more than some distance from the previous quench state. Value 20 is
the cumulative count of the number of atoms participating in any of
the events that were found.
-Value 23 tallies the number of new bonds created by the bond reset
+Value 21 tallies the number of new bonds created by the bond reset
operation. Bonds between a specific I,J pair of atoms may persist for
the entire hyperdynamics simulation if neither I or J are involved in
an event.
@@ -378,6 +425,16 @@ an event.
The scalar and vector values calculated by this fix are all
"intensive".
+This fix also computes a local vector of length the number of bonds
+currently in the system. The value for each bond is its Cij prefactor
+(bias coefficient). These values can be can be accessed by various
+"output commands"_Howto_output.html. A particularly useful one is the
+"fix ave/histo"_fix_ave_histo.html command which can be used to
+histogram the Cij values to see if they are distributed reasonably
+close to 1.0, which indicates a good choice of {Vmax}.
+
+The local values calculated by this fix are unitless.
+
No parameter of this fix can be used with the {start/stop} keywords of
the "run"_run.html command. This fix is not invoked during "energy
minimization"_minimize.html.
@@ -392,7 +449,9 @@ doc page for more info.
"hyper"_hyper.html, "fix hyper/global"_fix_hyper_global.html
-[Default:] None
+[Default:]
+
+The check/ghost and check/bias keywords are not enabled by default.
:line
diff --git a/doc/src/fix_wall_gran.txt b/doc/src/fix_wall_gran.txt
index 871ee2e5d1..b517d48cca 100644
--- a/doc/src/fix_wall_gran.txt
+++ b/doc/src/fix_wall_gran.txt
@@ -7,22 +7,24 @@
:line
fix wall/gran command :h3
-fix wall/gran/omp command :h3
[Syntax:]
-fix ID group-ID wall/gran fstyle Kn Kt gamma_n gamma_t xmu dampflag wallstyle args keyword values ... :pre
+fix ID group-ID wall/gran fstyle fstyle_params wallstyle args keyword values ... :pre
ID, group-ID are documented in "fix"_fix.html command :ulb,l
wall/gran = style name of this fix command :l
fstyle = style of force interactions between particles and wall :l
- possible choices: hooke, hooke/history, hertz/history :pre
-Kn = elastic constant for normal particle repulsion (force/distance units or pressure units - see discussion below) :l
-Kt = elastic constant for tangential contact (force/distance units or pressure units - see discussion below) :l
-gamma_n = damping coefficient for collisions in normal direction (1/time units or 1/time-distance units - see discussion below) :l
-gamma_t = damping coefficient for collisions in tangential direction (1/time units or 1/time-distance units - see discussion below) :l
-xmu = static yield criterion (unitless value between 0.0 and 1.0e4) :l
-dampflag = 0 or 1 if tangential damping force is excluded or included :l
+ possible choices: hooke, hooke/history, hertz/history, granular :pre
+fstyle_params = parameters associated with force interaction style :l
+ For {hooke}, {hooke/history}, and {hertz/history}, {fstyle_params} are:
+ Kn = elastic constant for normal particle repulsion (force/distance units or pressure units - see discussion below)
+ Kt = elastic constant for tangential contact (force/distance units or pressure units - see discussion below)
+ gamma_n = damping coefficient for collisions in normal direction (1/time units or 1/time-distance units - see discussion below)
+ gamma_t = damping coefficient for collisions in tangential direction (1/time units or 1/time-distance units - see discussion below)
+ xmu = static yield criterion (unitless value between 0.0 and 1.0e4)
+ dampflag = 0 or 1 if tangential damping force is excluded or included :pre
+ For {granular}, {fstyle_params} are set using the same syntax as for the {pair_coeff} command of "pair_style granular"_pair_granular.html :pre
wallstyle = {xplane} or {yplane} or {zplane} or {zcylinder} :l
args = list of arguments for a particular style :l
{xplane} or {yplane} or {zplane} args = lo hi
@@ -44,7 +46,10 @@ keyword = {wiggle} or {shear} :l
fix 1 all wall/gran hooke 200000.0 NULL 50.0 NULL 0.5 0 xplane -10.0 10.0
fix 1 all wall/gran hooke/history 200000.0 NULL 50.0 NULL 0.5 0 zplane 0.0 NULL
-fix 2 all wall/gran hooke 100000.0 20000.0 50.0 30.0 0.5 1 zcylinder 15.0 wiggle z 3.0 2.0 :pre
+fix 2 all wall/gran hooke 100000.0 20000.0 50.0 30.0 0.5 1 zcylinder 15.0 wiggle z 3.0 2.0
+fix 3 all wall/gran granular hooke 1000.0 50.0 tangential linear_nohistory 1.0 0.4 zplane 0.0 NULL
+fix 4 all wall/gran granular jkr 1000.0 50.0 0.3 5.0 tangential mindlin 800.0 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall zcylinder 15.0 wiggle z 3.0 2.0
+fix 5 all wall/gran granular dmt 1000.0 50.0 0.3 10.0 tangential mindlin 800.0 0.5 0.1 roll sds 500.0 200.0 0.1 twisting marshall zplane 0.0 NULL :pre
[Description:]
@@ -54,31 +59,40 @@ close enough to touch it.
The nature of the wall/particle interactions are determined by the
{fstyle} setting. It can be any of the styles defined by the
-"pair_style granular"_pair_gran.html commands. Currently this is
-{hooke}, {hooke/history}, or {hertz/history}. The equation for the
-force between the wall and particles touching it is the same as the
-corresponding equation on the "pair_style granular"_pair_gran.html doc
-page, in the limit of one of the two particles going to infinite
-radius and mass (flat wall). Specifically, delta = radius - r =
-overlap of particle with wall, m_eff = mass of particle, and the
-effective radius of contact = RiRj/Ri+Rj is just the radius of the
-particle.
+"pair_style gran/*"_pair_gran.html or the more general "pair_style
+granular"_pair_granular.html" commands. Currently the options are
+{hooke}, {hooke/history}, or {hertz/history} for the former, and
+{granular} with all the possible options of the associated
+{pair_coeff} command for the latter. The equation for the force
+between the wall and particles touching it is the same as the
+corresponding equation on the "pair_style gran/*"_pair_gran.html and
+"pair_style_granular"_pair_granular.html doc pages, in the limit of
+one of the two particles going to infinite radius and mass (flat
+wall). Specifically, delta = radius - r = overlap of particle with
+wall, m_eff = mass of particle, and the effective radius of contact =
+RiRj/Ri+Rj is set to the radius of the particle.
The parameters {Kn}, {Kt}, {gamma_n}, {gamma_t}, {xmu} and {dampflag}
have the same meaning and units as those specified with the
-"pair_style granular"_pair_gran.html commands. This means a NULL can
-be used for either {Kt} or {gamma_t} as described on that page. If a
+"pair_style gran/*"_pair_gran.html commands. This means a NULL can be
+used for either {Kt} or {gamma_t} as described on that page. If a
NULL is used for {Kt}, then a default value is used where {Kt} = 2/7
{Kn}. If a NULL is used for {gamma_t}, then a default value is used
where {gamma_t} = 1/2 {gamma_n}.
+All the model choices for cohesion, tangential friction, rolling
+friction and twisting friction supported by the "pair_style
+granular"_pair_granular.html through its {pair_coeff} command are also
+supported for walls. These are discussed in greater detail on the doc
+page for "pair_style granular"_pair_granular.html.
+
Note that you can choose a different force styles and/or different
-values for the 6 wall/particle coefficients than for particle/particle
+values for the wall/particle coefficients than for particle/particle
interactions. E.g. if you wish to model the wall as a different
material.
NOTE: As discussed on the doc page for "pair_style
-granular"_pair_gran.html, versions of LAMMPS before 9Jan09 used a
+gran/*"_pair_gran.html, versions of LAMMPS before 9Jan09 used a
different equation for Hertzian interactions. This means Hertizian
wall/particle interactions have also changed. They now include a
sqrt(radius) term which was not present before. Also the previous
@@ -108,14 +122,14 @@ Optionally, the wall can be moving, if the {wiggle} or {shear}
keywords are appended. Both keywords cannot be used together.
For the {wiggle} keyword, the wall oscillates sinusoidally, similar to
-the oscillations of particles which can be specified by the
-"fix move"_fix_move.html command. This is useful in packing
-simulations of granular particles. The arguments to the {wiggle}
-keyword specify a dimension for the motion, as well as it's
-{amplitude} and {period}. Note that if the dimension is in the plane
-of the wall, this is effectively a shearing motion. If the dimension
-is perpendicular to the wall, it is more of a shaking motion. A
-{zcylinder} wall can only be wiggled in the z dimension.
+the oscillations of particles which can be specified by the "fix
+move"_fix_move.html command. This is useful in packing simulations of
+granular particles. The arguments to the {wiggle} keyword specify a
+dimension for the motion, as well as it's {amplitude} and {period}.
+Note that if the dimension is in the plane of the wall, this is
+effectively a shearing motion. If the dimension is perpendicular to
+the wall, it is more of a shaking motion. A {zcylinder} wall can only
+be wiggled in the z dimension.
Each timestep, the position of a wiggled wall in the appropriate {dim}
is set according to this equation:
@@ -137,28 +151,6 @@ 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.
-:line
-
-Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are
-functionally the same as the corresponding style without the suffix.
-They have been optimized to run faster, depending on your available
-hardware, as discussed on the "Speed packages"_Speed_packages.html doc
-page. The accelerated styles take the same arguments and should
-produce the same results, except for round-off and precision issues.
-
-These accelerated styles are part of the GPU, USER-INTEL, KOKKOS,
-USER-OMP and OPT packages, respectively. They are only enabled if
-LAMMPS was built with those packages. See the "Build
-package"_Build_package.html doc page for more info.
-
-You can specify the accelerated styles explicitly in your input script
-by including their suffix, or you can use the "-suffix command-line
-switch"_Run_options.html when you invoke LAMMPS, or you can use the
-"suffix"_suffix.html command in your input script.
-
-See the "Speed packages"_Speed_packages.html doc page for more
-instructions on how to use the accelerated styles effectively.
-
[Restart, fix_modify, output, run start/stop, minimize info:]
This fix writes the shear friction state of atoms interacting with the
@@ -188,6 +180,7 @@ Any dimension (xyz) that has a granular wall must be non-periodic.
"fix move"_fix_move.html,
"fix wall/gran/region"_fix_wall_gran_region.html,
-"pair_style granular"_pair_gran.html
+"pair_style gran/*"_pair_gran.html
+"pair_style granular"_pair_granular.html
[Default:] none
diff --git a/doc/src/fix_wall_gran_region.txt b/doc/src/fix_wall_gran_region.txt
index e4145c003e..8a39d6b642 100644
--- a/doc/src/fix_wall_gran_region.txt
+++ b/doc/src/fix_wall_gran_region.txt
@@ -10,24 +10,30 @@ fix wall/gran/region command :h3
[Syntax:]
-fix ID group-ID wall/gran/region fstyle Kn Kt gamma_n gamma_t xmu dampflag wallstyle regionID :pre
+fix ID group-ID wall/gran/region fstyle fstyle_params wallstyle regionID :pre
ID, group-ID are documented in "fix"_fix.html command :ulb,l
wall/region = style name of this fix command :l
fstyle = style of force interactions between particles and wall :l
- possible choices: hooke, hooke/history, hertz/history :pre
-Kn = elastic constant for normal particle repulsion (force/distance units or pressure units - see discussion below) :l
-Kt = elastic constant for tangential contact (force/distance units or pressure units - see discussion below) :l
-gamma_n = damping coefficient for collisions in normal direction (1/time units or 1/time-distance units - see discussion below) :l
-gamma_t = damping coefficient for collisions in tangential direction (1/time units or 1/time-distance units - see discussion below) :l
-xmu = static yield criterion (unitless value between 0.0 and 1.0e4) :l
-dampflag = 0 or 1 if tangential damping force is excluded or included :l
+ possible choices: hooke, hooke/history, hertz/history, granular :pre
+fstyle_params = parameters associated with force interaction style :l
+ For {hooke}, {hooke/history}, and {hertz/history}, {fstyle_params} are:
+ Kn = elastic constant for normal particle repulsion (force/distance units or pressure units - see discussion below)
+ Kt = elastic constant for tangential contact (force/distance units or pressure units - see discussion below)
+ gamma_n = damping coefficient for collisions in normal direction (1/time units or 1/time-distance units - see discussion below)
+ gamma_t = damping coefficient for collisions in tangential direction (1/time units or 1/time-distance units - see discussion below)
+ xmu = static yield criterion (unitless value between 0.0 and 1.0e4)
+ dampflag = 0 or 1 if tangential damping force is excluded or included :pre
+ For {granular}, {fstyle_params} are set using the same syntax as for the {pair_coeff} command of "pair_style granular"_pair_granular.html :pre
wallstyle = region (see "fix wall/gran"_fix_wall_gran.html for options for other kinds of walls) :l
region-ID = region whose boundary will act as wall :l,ule
[Examples:]
-fix wall all wall/gran/region hooke/history 1000.0 200.0 200.0 100.0 0.5 1 region myCone :pre
+fix wall all wall/gran/region hooke/history 1000.0 200.0 200.0 100.0 0.5 1 region myCone
+fix 3 all wall/gran/region granular hooke 1000.0 50.0 tangential linear_nohistory 1.0 0.4 region myBox
+fix 4 all wall/gran/region granular jkr 1000.0 50.0 tangential linear_history 800.0 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall region myCone
+fix 5 all wall/gran/region granular dmt 1000.0 50.0 0.3 10.0 tangential linear_history 800.0 0.5 0.1 roll sds 500.0 200.0 0.1 twisting marshall region myCone :pre
[Description:]
@@ -42,8 +48,8 @@ Here are snapshots of example models using this command.
Corresponding input scripts can be found in examples/granregion.
Click on the images to see a bigger picture. Movies of these
simulations are "here on the Movies
-page"_http://lammps.sandia.gov/movies.html#granregion of the
-LAMMPS web site.
+page"_http://lammps.sandia.gov/movies.html#granregion of the LAMMPS
+web site.
:image(JPG/gran_funnel_small.jpg,JPG/gran_funnel.png)
:image(JPG/gran_mixer_small.jpg,JPG/gran_mixer.png)
@@ -123,12 +129,16 @@ to make the two faces differ by epsilon in their position.
The nature of the wall/particle interactions are determined by the
{fstyle} setting. It can be any of the styles defined by the
-"pair_style granular"_pair_gran.html commands. Currently this is
-{hooke}, {hooke/history}, or {hertz/history}. The equation for the
-force between the wall and particles touching it is the same as the
-corresponding equation on the "pair_style granular"_pair_gran.html doc
-page, but the effective radius is calculated using the radius of the
-particle and the radius of curvature of the wall at the contact point.
+"pair_style gran/*"_pair_gran.html or the more general "pair_style
+granular"_pair_granular.html" commands. Currently the options are
+{hooke}, {hooke/history}, or {hertz/history} for the former, and
+{granular} with all the possible options of the associated
+{pair_coeff} command for the latter. The equation for the force
+between the wall and particles touching it is the same as the
+corresponding equation on the "pair_style gran/*"_pair_gran.html and
+"pair_style_granular"_pair_granular.html doc pages, but the effective
+radius is calculated using the radius of the particle and the radius
+of curvature of the wall at the contact point.
Specifically, delta = radius - r = overlap of particle with wall,
m_eff = mass of particle, and RiRj/Ri+Rj is the effective radius, with
@@ -141,12 +151,18 @@ particle.
The parameters {Kn}, {Kt}, {gamma_n}, {gamma_t}, {xmu} and {dampflag}
have the same meaning and units as those specified with the
-"pair_style granular"_pair_gran.html commands. This means a NULL can
-be used for either {Kt} or {gamma_t} as described on that page. If a
+"pair_style gran/*"_pair_gran.html commands. This means a NULL can be
+used for either {Kt} or {gamma_t} as described on that page. If a
NULL is used for {Kt}, then a default value is used where {Kt} = 2/7
{Kn}. If a NULL is used for {gamma_t}, then a default value is used
where {gamma_t} = 1/2 {gamma_n}.
+All the model choices for cohesion, tangential friction, rolling
+friction and twisting friction supported by the "pair_style
+granular"_pair_granular.html through its {pair_coeff} command are also
+supported for walls. These are discussed in greater detail on the doc
+page for "pair_style granular"_pair_granular.html.
+
Note that you can choose a different force styles and/or different
values for the 6 wall/particle coefficients than for particle/particle
interactions. E.g. if you wish to model the wall as a different
@@ -154,9 +170,9 @@ material.
[Restart, fix_modify, output, run start/stop, minimize info:]
-Similar to "fix wall/gran"_fix_wall_gran.html command, this fix
-writes the shear friction state of atoms interacting with the wall to
-"binary restart files"_restart.html, so that a simulation can continue
+Similar to "fix wall/gran"_fix_wall_gran.html command, this fix writes
+the shear friction state of atoms interacting with the wall to "binary
+restart files"_restart.html, so that a simulation can continue
correctly if granular potentials with shear "history" effects are
being used. This fix also includes info about a moving region in the
restart file. See the "read_restart"_read_restart.html command for
@@ -170,14 +186,14 @@ So you must re-define your region and if it is a moving region, define
its motion attributes in a way that is consistent with the simulation
that wrote the restart file. In particular, if you want to change the
region motion attributes (e.g. its velocity), then you should ensure
-the position/orientation of the region at the initial restart
-timestep is the same as it was on the timestep the restart file was
-written. If this is not possible, you may need to ignore info in the
-restart file by defining a new fix wall/gran/region command in your
-restart script, e.g. with a different fix ID. Or if you want to keep
-the shear history info but discard the region motion information, you
-can use the same fix ID for fix wall/gran/region, but assign it a
-region with a different region ID.
+the position/orientation of the region at the initial restart timestep
+is the same as it was on the timestep the restart file was written.
+If this is not possible, you may need to ignore info in the restart
+file by defining a new fix wall/gran/region command in your restart
+script, e.g. with a different fix ID. Or if you want to keep the
+shear history info but discard the region motion information, you can
+use the same fix ID for fix wall/gran/region, but assign it a region
+with a different region ID.
None of the "fix_modify"_fix_modify.html options are relevant to this
fix. No global or per-atom quantities are stored by this fix for
diff --git a/doc/src/lammps.book b/doc/src/lammps.book
index eb8aa16968..4e64446ec1 100644
--- a/doc/src/lammps.book
+++ b/doc/src/lammps.book
@@ -580,6 +580,7 @@ pair_extep.html
pair_gauss.html
pair_gayberne.html
pair_gran.html
+pair_granular.html
pair_gromacs.html
pair_gw.html
pair_ilp_graphene_hbn.html
diff --git a/doc/src/pair_granular.txt b/doc/src/pair_granular.txt
new file mode 100644
index 0000000000..e4b9bb3250
--- /dev/null
+++ b/doc/src/pair_granular.txt
@@ -0,0 +1,765 @@
+
+
+
+"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
+
+:link(lws,http://lammps.sandia.gov)
+:link(ld,Manual.html)
+:link(lc,Commands_all.html)
+
+:line
+
+pair_style granular command :h3
+
+[Syntax:]
+
+pair_style granular cutoff :pre
+
+cutoff = global cutoff (optional). See discussion below. :l
+
+[Examples:]
+
+pair_style granular
+pair_coeff * * hooke 1000.0 50.0 tangential linear_nohistory 1.0 0.4 :pre
+
+pair_style granular
+pair_coeff * * hertz 1000.0 50.0 tangential mindlin NULL 1.0 0.4 :pre
+
+pair_style granular
+pair_coeff * * hertz/material 1e8 0.3 tangential mindlin_rescale NULL 1.0 0.4 damping tsuji :pre
+
+pair_style granular
+pair_coeff 1 1 jkr 1000.0 50.0 tangential mindlin 800.0 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall
+pair_coeff 2 2 hertz 200.0 20.0 tangential linear_history 300.0 1.0 0.1 rolling sds 200.0 100.0 0.1 twisting marshall :pre
+
+pair_style granular
+pair_coeff 1 1 hertz 1000.0 50.0 tangential mindlin 800.0 0.5 0.5 rolling sds 500.0 200.0 0.5 twisting marshall
+pair_coeff 2 2 dmt 1000.0 50.0 0.3 10.0 tangential mindlin 800.0 0.5 0.1 roll sds 500.0 200.0 0.1 twisting marshall
+pair_coeff 1 2 dmt 1000.0 50.0 0.3 10.0 tangential mindlin 800.0 0.5 0.1 roll sds 500.0 200.0 0.1 twisting marshall :pre
+
+[Description:]
+
+The {granular} styles support a variety of options for the normal,
+tangential, rolling and twisting forces resulting from contact between
+two granular particles. This expands on the options offered by the
+"pair gran/*"_pair_gran.html pair styles. The total computed forces
+and torques are the sum of various models selected for the normal,
+tangential, rolling and twisting modes of motion.
+
+All model choices and parameters are entered in the
+"pair_coeff"_pair_coeff.html command, as described below. Unlike
+e.g. "pair gran/hooke"_pair_gran.html, coefficient values are not
+global, but can be set to different values for different combinations
+of particle types, as determined by the "pair_coeff"_pair_coeff.html
+command. If the contact model choice is the same for two particle
+types, the mixing for the cross-coefficients can be carried out
+automatically. This is shown in the second example, where model
+choices are the same for type 1 - type 1 as for type 2 - type2
+interactions, but coefficients are different. In this case, the
+coefficients for type 2 - type interactions can be determined from
+mixing rules discussed below. For additional flexibility,
+coefficients as well as model forms can vary between particle types,
+as shown in the third example: type 1- type 1 interactions are based
+on a Hertzian normal contact model and 2-2 interactions are based on a
+DMT cohesive model (see below). In that example, 1-1 and 2-2
+interactions have different model forms, in which case mixing of
+coefficients cannot be determined, so 1-2 interactions must be
+explicitly defined via the {pair_coeff 1 2} command, otherwise an
+error would result.
+
+:line
+
+The first required keyword for the {pair_coeff} command is the normal
+contact model. Currently supported options for normal contact models
+and their required arguments are:
+
+{hooke} : \(k_n\), \(\eta_\{n0\}\) (or \(e\))
+{hertz} : \(k_n\), \(\eta_\{n0\}\) (or \(e\))
+{hertz/material} : E, \(\eta_\{n0\}\) (or \(e\)), \(\nu\)
+{dmt} : E, \(\eta_\{n0\}\) (or \(e\)), \(\nu\), \(\gamma\)
+{jkr} : E, \(\eta_\{n0\}\) (or \(e\)), \(\nu\), \(\gamma\) :ol
+
+Here, \(k_n\) is spring stiffness (with units that depend on model
+choice, see below); \(\eta_\{n0\}\) is a damping prefactor (or, in its
+place a coefficient of restitution \(e\), depending on the choice of
+damping mode, see below); E is Young's modulus in units of
+{force}/{length}^2, i.e. {pressure}; \(\nu\) is Poisson's ratio and
+\(\gamma\) is a surface energy density, in units of
+{energy}/{length}^2.
+
+For the {hooke} model, the normal, elastic component of force acting
+on particle {i} due to contact with particle {j} is given by:
+
+\begin\{equation\}
+\mathbf\{F\}_\{ne, Hooke\} = k_N \delta_\{ij\} \mathbf\{n\}
+\end\{equation\}
+
+Where \(\delta = R_i + R_j - \|\mathbf\{r\}_\{ij\}\|\) is the particle
+overlap, \(R_i, R_j\) are the particle radii, \(\mathbf\{r\}_\{ij\} =
+\mathbf\{r\}_i - \mathbf\{r\}_j\) is the vector separating the two
+particle centers (note the i-j ordering so that \(F_\{ne\}\) is
+positive for repulsion), and \(\mathbf\{n\} =
+\frac\{\mathbf\{r\}_\{ij\}\}\{\|\mathbf\{r\}_\{ij\}\|\}\). Therefore,
+for {hooke}, the units of the spring constant \(k_n\) are
+{force}/{distance}, or equivalently {mass}/{time^2}.
+
+For the {hertz} model, the normal component of force is given by:
+
+\begin\{equation\}
+\mathbf\{F\}_\{ne, Hertz\} = k_N R_\{eff\}^\{1/2\}\delta_\{ij\}^\{3/2\} \mathbf\{n\}
+\end\{equation\}
+
+Here, \(R_\{eff\} = \frac\{R_i R_j\}\{R_i + R_j\}\) is the effective
+radius, denoted for simplicity as {R} from here on. For {hertz}, the
+units of the spring constant \(k_n\) are {force}/{length}^2, or
+equivalently {pressure}.
+
+For the {hertz/material} model, the force is given by:
+
+\begin\{equation\}
+\mathbf\{F\}_\{ne, Hertz/material\} = \frac\{4\}\{3\} E_\{eff\} R_\{eff\}^\{1/2\}\delta_\{ij\}^\{3/2\} \mathbf\{n\}
+\end\{equation\}
+
+Here, \(E_\{eff\} = E = \left(\frac\{1-\nu_i^2\}\{E_i\} +
+\frac\{1-\nu_j^2\}\{E_j\}\right)^\{-1\}\) is the effective Young's
+modulus, with \(\nu_i, \nu_j \) the Poisson ratios of the particles of
+types {i} and {j}. Note that if the elastic modulus and the shear
+modulus of the two particles are the same, the {hertz/material} model
+is equivalent to the {hertz} model with \(k_N = 4/3 E_\{eff\}\)
+
+The {dmt} model corresponds to the
+"(Derjaguin-Muller-Toporov)"_#DMT1975 cohesive model, where the force
+is simply Hertz with an additional attractive cohesion term:
+
+\begin\{equation\}
+\mathbf\{F\}_\{ne, dmt\} = \left(\frac\{4\}\{3\} E R^\{1/2\}\delta_\{ij\}^\{3/2\} - 4\pi\gamma R\right)\mathbf\{n\}
+\end\{equation\}
+
+The {jkr} model is the "(Johnson-Kendall-Roberts)"_#JKR1971 model,
+where the force is computed as:
+
+\begin\{equation\}
+\label\{eq:force_jkr\}
+\mathbf\{F\}_\{ne, jkr\} = \left(\frac\{4Ea^3\}\{3R\} - 2\pi a^2\sqrt\{\frac\{4\gamma E\}\{\pi a\}\}\right)\mathbf\{n\}
+\end\{equation\}
+
+Here, {a} is the radius of the contact zone, related to the overlap
+\(\delta\) according to:
+
+\begin\{equation\}
+\delta = a^2/R - 2\sqrt\{\pi \gamma a/E\}
+\end\{equation\}
+
+LAMMPS internally inverts the equation above to solve for {a} in terms
+of \(\delta\), then solves for the force in the previous
+equation. Additionally, note that the JKR model allows for a tensile
+force beyond contact (i.e. for \(\delta < 0\)), up to a maximum of
+\(3\pi\gamma R\) (also known as the 'pull-off' force). Note that this
+is a hysteretic effect, where particles that are not contacting
+initially will not experience force until they come into contact
+\(\delta \geq 0\); as they move apart and (\(\delta < 0\)), they
+experience a tensile force up to \(3\pi\gamma R\), at which point they
+lose contact.
+
+:line
+
+In addition, the normal force is augmented by a damping term of the
+following general form:
+
+\begin\{equation\}
+\mathbf\{F\}_\{n,damp\} = -\eta_n \mathbf\{v\}_\{n,rel\}
+\end\{equation\}
+
+Here, \(\mathbf\{v\}_\{n,rel\} = (\mathbf\{v\}_j - \mathbf\{v\}_i)
+\cdot \mathbf\{n\}\) is the component of relative velocity along
+\(\mathbf\{n\}\).
+
+The optional {damping} keyword to the {pair_coeff} command followed by
+a keyword determines the model form of the damping factor \(\eta_n\),
+and the interpretation of the \(\eta_\{n0\}\) or \(e\) coefficients
+specified as part of the normal contact model settings. The {damping}
+keyword and corresponding model form selection may be appended
+anywhere in the {pair coeff} command. Note that the choice of damping
+model affects both the normal and tangential damping (and depending on
+other settings, potentially also the twisting damping). The options
+for the damping model currently supported are:
+
+{velocity}
+{viscoelastic}
+{tsuji} :ol
+
+If the {damping} keyword is not specified, the {viscoelastic} model is
+used by default.
+
+For {damping velocity}, the normal damping is simply equal to the
+user-specified damping coefficient in the {normal} model:
+
+\begin\{equation\}
+\eta_n = \eta_\{n0\}\
+\end\{equation\}
+
+Here, \(\gamma_n\) is the damping coefficient specified for the normal
+contact model, in units of {mass}/{time},
+
+The {damping viscoelastic} model is based on the viscoelastic
+treatment of "(Brilliantov et al)"_#Brill1996, where the normal
+damping is given by:
+
+\begin\{equation\}
+\eta_n = \eta_\{n0\}\ a m_\{eff\}
+\end\{equation\}
+
+Here, \(m_\{eff\} = m_i m_j/(m_i + m_j)\) is the effective mass, {a}
+is the contact radius, given by \(a =\sqrt\{R\delta\}\) for all models
+except {jkr}, for which it is given implicitly according to \(delta =
+a^2/R - 2\sqrt\{\pi \gamma a/E\}\). In this case, \eta_\{n0\}\ is in
+units of 1/({time}*{distance}).
+
+The {tsuji} model is based on the work of "(Tsuji et
+al)"_#Tsuji1992. Here, the damping coefficient specified as part of
+the normal model is interpreted as a restitution coefficient
+\(e\). The damping constant \(\eta_n\) is given by:
+
+\begin\{equation\}
+\eta_n = \alpha (m_\{eff\}k_n)^\{1/2\}
+\end\{equation\}
+
+For normal contact models based on material parameters, \(k_n =
+4/3Ea\). The parameter \(\alpha\) is related to the restitution
+coefficient {e} according to:
+
+\begin\{equation\}
+\alpha = 1.2728-4.2783e+11.087e^2-22.348e^3+27.467e^4-18.022e^5+4.8218e^6
+\end\{equation\}
+
+The dimensionless coefficient of restitution \(e\) specified as part
+of the normal contact model parameters should be between 0 and 1, but
+no error check is performed on this.
+
+The total normal force is computed as the sum of the elastic and
+damping components:
+
+\begin\{equation\}
+\mathbf\{F\}_n = \mathbf\{F\}_\{ne\} + \mathbf\{F\}_\{n,damp\}
+\end\{equation\}
+
+ :line
+
+The {pair_coeff} command also requires specification of the tangential
+contact model. The required keyword {tangential} is expected, followed
+by the model choice and associated parameters. Currently supported
+tangential model choices and their expected parameters are as follows:
+
+{linear_nohistory} : \(x_\{\gamma,t\}\), \(\mu_s\)
+{linear_history} : \(k_t\), \(x_\{\gamma,t\}\), \(\mu_s\)
+{mindlin} : \(k_t\) or NULL, \(x_\{\gamma,t\}\), \(\mu_s\)
+{mindlin_rescale} : \(k_t\) or NULL, \(x_\{\gamma,t\}\), \(\mu_s\) :ol
+
+Here, \(x_\{\gamma,t\}\) is a dimensionless multiplier for the normal
+damping \(\eta_n\) that determines the magnitude of the tangential
+damping, \(\mu_t\) is the tangential (or sliding) friction
+coefficient, and \(k_t\) is the tangential stiffness coefficient.
+
+For {tangential linear_nohistory}, a simple velocity-dependent Coulomb
+friction criterion is used, which mimics the behavior of the {pair
+gran/hooke} style. The tangential force (\mathbf\{F\}_t\) is given by:
+
+\begin\{equation\}
+\mathbf\{F\}_t = -min(\mu_t F_\{n0\}, \|\mathbf\{F\}_\mathrm\{t,damp\}\|) \mathbf\{t\}
+\end\{equation\}
+
+The tangential damping force \(\mathbf\{F\}_\mathrm\{t,damp\}\) is given by:
+
+\begin\{equation\}
+\mathbf\{F\}_\mathrm\{t,damp\} = -\eta_t \mathbf\{v\}_\{t,rel\}
+\end\{equation\}
+
+The tangential damping prefactor \(\eta_t\) is calculated by scaling
+the normal damping \(\eta_n\) (see above):
+
+\begin\{equation\}
+\eta_t = -x_\{\gamma,t\} \eta_n
+\end\{equation\}
+
+The normal damping prefactor \(\eta_n\) is determined by the choice of
+the {damping} keyword, as discussed above. Thus, the {damping}
+keyword also affects the tangential damping. The parameter
+\(x_\{\gamma,t\}\) is a scaling coefficient. Several works in the
+literature use \(x_\{\gamma,t\} = 1\) ("Marshall"_#Marshall2009,
+"Tsuji et al"_#Tsuji1992, "Silbert et al"_#Silbert2001). The relative
+tangential velocity at the point of contact is given by
+\(\mathbf\{v\}_\{t, rel\} = \mathbf\{v\}_\{t\} - (R_i\Omega_i +
+R_j\Omega_j) \times \mathbf\{n\}\), where \(\mathbf\{v\}_\{t\} =
+\mathbf\{v\}_r - \mathbf\{v\}_r\cdot\mathbf\{n\}\), \(\mathbf\{v\}_r =
+\mathbf\{v\}_j - \mathbf\{v\}_i\). The direction of the applied force
+is \(\mathbf\{t\} =
+\mathbf\{v_\{t,rel\}\}/\|\mathbf\{v_\{t,rel\}\}\|\).
+
+The normal force value \(F_\{n0\}\) used to compute the critical force
+depends on the form of the contact model. For non-cohesive models
+({hertz}, {hertz/material}, {hooke}), it is given by the magnitude of
+the normal force:
+
+\begin\{equation\}
+F_\{n0\} = \|\mathbf\{F\}_n\|
+\end\{equation\}
+
+For cohesive models such as {jkr} and {dmt}, the critical force is
+adjusted so that the critical tangential force approaches \(\mu_t
+F_\{pulloff\}\), see "Marshall"_#Marshall2009, equation 43, and
+"Thornton"_#Thornton1991. For both models, \(F_\{n0\}\) takes the
+form:
+
+\begin\{equation\}
+F_\{n0\} = \|\mathbf\{F\}_ne + 2 F_\{pulloff\}\|
+\end\{equation\}
+
+Where \(F_\{pulloff\} = 3\pi \gamma R \) for {jkr}, and
+\(F_\{pulloff\} = 4\pi \gamma R \) for {dmt}.
+
+The remaining tangential options all use accumulated tangential
+displacement (i.e. contact history). This is discussed below in the
+context of the {linear_history} option, but the same treatment of the
+accumulated displacement applies to the other options as well.
+
+For {tangential linear_history}, the tangential force is given by:
+
+\begin\{equation\}
+\mathbf\{F\}_t = -min(\mu_t F_\{n0\}, \|-k_t\mathbf\{\xi\} + \mathbf\{F\}_\mathrm\{t,damp\}\|) \mathbf\{t\}
+\end\{equation\}
+
+Here, \(\mathbf\{\xi\}\) is the tangential displacement accumulated
+during the entire duration of the contact:
+
+\begin\{equation\}
+\mathbf\{\xi\} = \int_\{t0\}^t \mathbf\{v\}_\{t,rel\}(\tau) \mathrm\{d\}\tau
+\end\{equation\}
+
+This accumulated tangential displacement must be adjusted to account
+for changes in the frame of reference of the contacting pair of
+particles during contact. This occurs due to the overall motion of the
+contacting particles in a rigid-body-like fashion during the duration
+of the contact. There are two modes of motion that are relevant: the
+'tumbling' rotation of the contacting pair, which changes the
+orientation of the plane in which tangential displacement occurs; and
+'spinning' rotation of the contacting pair about the vector connecting
+their centers of mass (\(\mathbf\{n\}\)). Corrections due to the
+former mode of motion are made by rotating the accumulated
+displacement into the plane that is tangential to the contact vector
+at each step, or equivalently removing any component of the tangential
+displacement that lies along \(\mathbf\{n\}\), and rescaling to
+preserve the magnitude. This follows the discussion in
+"Luding"_#Luding2008, see equation 17 and relevant discussion in that
+work:
+
+\begin\{equation\}
+\mathbf\{\xi\} = \left(\mathbf\{\xi'\} - (\mathbf\{n\} \cdot \mathbf\{\xi'\})\mathbf\{n\}\right) \frac\{\|\mathbf\{\xi'\}\|\}\{\|\mathbf\{\xi'\}\| - \mathbf\{n\}\cdot\mathbf\{\xi'\}\}
+\label\{eq:rotate_displacements\}
+\end\{equation\}
+
+Here, \(\mathbf\{\xi'\}\) is the accumulated displacement prior to the
+current time step and \(\mathbf\{\xi\}\) is the corrected
+displacement. Corrections to the displacement due to the second mode
+of motion described above (rotations about \(\mathbf\{n\}\)) are not
+currently implemented, but are expected to be minor for most
+simulations.
+
+Furthermore, when the tangential force exceeds the critical force, the
+tangential displacement is re-scaled to match the value for the
+critical force (see "Luding"_#Luding2008, equation 20 and related
+discussion):
+
+\begin\{equation\}
+\mathbf\{\xi\} = -\frac\{1\}\{k_t\}\left(\mu_t F_\{n0\}\mathbf\{t\} + \mathbf\{F\}_\{t,damp\}\right)
+\end\{equation\}
+
+The tangential force is added to the total normal force (elastic plus
+damping) to produce the total force on the particle. The tangential
+force also acts at the contact point (defined as the center of the
+overlap region) to induce a torque on each particle according to:
+
+\begin\{equation\}
+\mathbf\{\tau\}_i = -(R_i - 0.5 \delta) \mathbf\{n\} \times \mathbf\{F\}_t
+\end\{equation\}
+
+\begin\{equation\}
+\mathbf\{\tau\}_j = -(R_j - 0.5 \delta) \mathbf\{n\} \times \mathbf\{F\}_t
+\end\{equation\}
+
+For {tangential mindlin}, the "Mindlin"_#Mindlin1949 no-slip solution is used, which differs from the {linear_history}
+option by an additional factor of {a}, the radius of the contact region. The tangential force is given by:
+
+\begin\{equation\}
+\mathbf\{F\}_t = -min(\mu_t F_\{n0\}, \|-k_t a \mathbf\{\xi\} + \mathbf\{F\}_\mathrm\{t,damp\}\|) \mathbf\{t\}
+\end\{equation\}
+
+Here, {a} is the radius of the contact region, given by \(a = \delta
+R\) for all normal contact models, except for {jkr}, where it is given
+implicitly by \(\delta = a^2/R - 2\sqrt\{\pi \gamma a/E\}\), see
+discussion above. To match the Mindlin solution, one should set \(k_t
+= 8G\), where \(G\) is the shear modulus, related to Young's modulus
+\(E\) by \(G = E/(2(1+\nu))\), where \(\nu\) is Poisson's ratio. This
+can also be achieved by specifying {NULL} for \(k_t\), in which case a
+normal contact model that specifies material parameters \(E\) and
+\(\nu\) is required (e.g. {hertz/material}, {dmt} or {jkr}). In this
+case, mixing of the shear modulus for different particle types {i} and
+{j} is done according to:
+
+\begin\{equation\}
+1/G = 2(2-\nu_i)(1+\nu_i)/E_i + 2(2-\nu_j)(1+\nu_j)/E_j
+\end\{equation\}
+
+The {mindlin_rescale} option uses the same form as {mindlin}, but the
+magnitude of the tangential displacement is re-scaled as the contact
+unloads, i.e. if \(a < a_\{t_\{n-1\}\}\):
+
+\begin\{equation\}
+\mathbf\{\xi\} = \mathbf\{\xi_\{t_\{n-1\}\}\} \frac\{a\}\{a_\{t_\{n-1\}\}\}
+\end\{equation\}
+
+Here, \(t_\{n-1\}\) indicates the value at the previous time
+step. This rescaling accounts for the fact that a decrease in the
+contact area upon unloading leads to the contact being unable to
+support the previous tangential loading, and spurious energy is
+created without the rescaling above ("Walton"_#WaltonPC ). See also
+discussion in "Thornton et al, 2013"_#Thornton2013 , particularly
+equation 18(b) of that work and associated discussion.
+
+:line
+
+The optional {rolling} keyword enables rolling friction, which resists
+pure rolling motion of particles. The options currently supported are:
+
+{none}
+{sds} : \(k_\{roll\}\), \(\gamma_\{roll\}\), \(\mu_\{roll\}\) :ol
+
+If the {rolling} keyword is not specified, the model defaults to {none}.
+
+For {rolling sds}, rolling friction is computed via a
+spring-dashpot-slider, using a 'pseudo-force' formulation, as detailed
+by "Luding"_#Luding2008. Unlike the formulation in
+"Marshall"_#Marshall2009, this allows for the required adjustment of
+rolling displacement due to changes in the frame of reference of the
+contacting pair. The rolling pseudo-force is computed analogously to
+the tangential force:
+
+\begin\{equation\}
+\mathbf\{F\}_\{roll,0\} = k_\{roll\} \mathbf\{\xi\}_\{roll\} - \gamma_\{roll\} \mathbf\{v\}_\{roll\}
+\end\{equation\}
+
+Here, \(\mathbf\{v\}_\{roll\} = -R(\mathbf\{\Omega\}_i -
+\mathbf\{\Omega\}_j) \times \mathbf\{n\}\) is the relative rolling
+velocity, as given in "Wang et al"_#Wang2015 and
+"Luding"_#Luding2008. This differs from the expressions given by "Kuhn
+and Bagi"_#Kuhn2004 and used in "Marshall"_#Marshall2009; see "Wang et
+al"_#Wang2015 for details. The rolling displacement is given by:
+
+\begin\{equation\}
+\mathbf\{\xi\}_\{roll\} = \int_\{t_0\}^t \mathbf\{v\}_\{roll\} (\tau) \mathrm\{d\} \tau
+\end\{equation\}
+
+A Coulomb friction criterion truncates the rolling pseudo-force if it
+exceeds a critical value:
+
+\begin\{equation\}
+\mathbf\{F\}_\{roll\} = min(\mu_\{roll\} F_\{n,0\}, \|\mathbf\{F\}_\{roll,0\}\|)\mathbf\{k\}
+\end\{equation\}
+
+Here, \(\mathbf\{k\} =
+\mathbf\{v\}_\{roll\}/\|\mathbf\{v\}_\{roll\}\|\) is the direction of
+the pseudo-force. As with tangential displacement, the rolling
+displacement is rescaled when the critical force is exceeded, so that
+the spring length corresponds the critical force. Additionally, the
+displacement is adjusted to account for rotations of the frame of
+reference of the two contacting particles in a manner analogous to the
+tangential displacement.
+
+The rolling pseudo-force does not contribute to the total force on
+either particle (hence 'pseudo'), but acts only to induce an equal and
+opposite torque on each particle, according to:
+
+\begin\{equation\}
+\tau_\{roll,i\} = R_\{eff\} \mathbf\{n\} \times \mathbf\{F\}_\{roll\}
+\end\{equation\}
+
+\begin\{equation\}
+\tau_\{roll,j\} = -\tau_\{roll,i\}
+\end\{equation\}
+
+:line
+
+The optional {twisting} keyword enables twisting friction, which
+resists rotation of two contacting particles about the vector
+\(\mathbf\{n\}\) that connects their centers. The options currently
+supported are:
+
+{none}
+{sds} : \(k_\{twist\}\), \(\gamma_\{twist\}\), \(\mu_\{twist\}\)
+{marshall} :ol
+
+If the {twisting} keyword is not specified, the model defaults to {none}.
+
+For both {twisting sds} and {twisting marshall}, a history-dependent
+spring-dashpot-slider is used to compute the twisting torque. Because
+twisting displacement is a scalar, there is no need to adjust for
+changes in the frame of reference due to rotations of the particle
+pair. The formulation in "Marshall"_#Marshall2009 therefore provides
+the most straightforward treatment:
+
+\begin\{equation\}
+\tau_\{twist,0\} = -k_\{twist\}\xi_\{twist\} - \gamma_\{twist\}\Omega_\{twist\}
+\end\{equation\}
+
+Here \(\xi_\{twist\} = \int_\{t_0\}^t \Omega_\{twist\} (\tau)
+\mathrm\{d\}\tau\) is the twisting angular displacement, and
+\(\Omega_\{twist\} = (\mathbf\{\Omega\}_i - \mathbf\{\Omega\}_j) \cdot
+\mathbf\{n\}\) is the relative twisting angular velocity. The torque
+is then truncated according to:
+
+\begin\{equation\}
+\tau_\{twist\} = min(\mu_\{twist\} F_\{n,0\}, \tau_\{twist,0\})
+\end\{equation\}
+
+Similar to the sliding and rolling displacement, the angular
+displacement is rescaled so that it corresponds to the critical value
+if the twisting torque exceeds this critical value:
+
+\begin\{equation\}
+\xi_\{twist\} = \frac\{1\}\{k_\{twist\}\} (\mu_\{twist\} F_\{n,0\}sgn(\Omega_\{twist\}) - \gamma_\{twist\}\Omega_\{twist\})
+\end\{equation\}
+
+For {twisting sds}, the coefficients \(k_\{twist\}, \gamma_\{twist\}\)
+and \(\mu_\{twist\}\) are simply the user input parameters that follow
+the {twisting sds} keywords in the {pair_coeff} command.
+
+For {twisting_marshall}, the coefficients are expressed in terms of
+sliding friction coefficients, as discussed in
+"Marshall"_#Marshall2009 (see equations 32 and 33 of that work):
+
+\begin\{equation\}
+k_\{twist\} = 0.5k_ta^2
+\end\{equation\}
+
+\begin\{equation\}
+\eta_\{twist\} = 0.5\eta_ta^2
+\end\{equation\}
+
+\begin\{equation\}
+\mu_\{twist\} = \frac\{2\}\{3\}a\mu_t
+\end\{equation\}
+
+Finally, the twisting torque on each particle is given by:
+
+\begin\{equation\}
+\mathbf\{\tau\}_\{twist,i\} = \tau_\{twist\}\mathbf\{n\}
+\end\{equation\}
+
+\begin\{equation\}
+\mathbf\{\tau\}_\{twist,j\} = -\mathbf\{\tau\}_\{twist,i\}
+\end\{equation\}
+
+:line
+
+LAMMPS automatically sets pairwise cutoff values for {pair_style
+granular} based on particle radii (and in the case of {jkr} pull-off
+distances). In the vast majority of situations, this is adequate.
+However, a cutoff value can optionally be appended to the {pair_style
+granular} command to specify a global cutoff (i.e. a cutoff for all
+atom types). Additionally, the optional {cutoff} keyword can be passed
+to the {pair_coeff} command, followed by a cutoff value. This will
+set a pairwise cutoff for the atom types in the {pair_coeff} command.
+These options may be useful in some rare cases where the automatic
+cutoff determination is not sufficient, e.g. if particle diameters
+are being modified via the {fix adapt} command. In that case, the
+global cutoff specified as part of the {pair_style granular} command
+is applied to all atom types, unless it is overridden for a given atom
+type combination by the {cutoff} value specified in the {pair coeff}
+command. If {cutoff} is only specified in the {pair coeff} command
+and no global cutoff is appended to the {pair_style granular} command,
+then LAMMPS will use that cutoff for the specified atom type
+combination, and automatically set pairwise cutoffs for the remaining
+atom types.
+
+:line
+
+Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are
+functionally the same as the corresponding style without the suffix.
+They have been optimized to run faster, depending on your available
+hardware, as discussed on the "Speed packages"_Speed_packages.html doc
+page. The accelerated styles take the same arguments and should
+produce the same results, except for round-off and precision issues.
+
+These accelerated styles are part of the GPU, USER-INTEL, KOKKOS,
+USER-OMP and OPT packages, respectively. They are only enabled if
+LAMMPS was built with those packages. See the "Build
+package"_Build_package.html doc page for more info.
+
+You can specify the accelerated styles explicitly in your input script
+by including their suffix, or you can use the "-suffix command-line
+switch"_Run_options.html when you invoke LAMMPS, or you can use the
+"suffix"_suffix.html command in your input script.
+
+See the "Speed packages"_Speed_packages.html doc page for more
+instructions on how to use the accelerated styles effectively.
+
+:line
+
+[Mixing, shift, table, tail correction, restart, rRESPA info]:
+
+The "pair_modify"_pair_modify.html mix, shift, table, and tail options
+are not relevant for granular pair styles.
+
+Mixing of coefficients is carried out using geometric averaging for
+most quantities, e.g. if friction coefficient for type 1-type 1
+interactions is set to \(\mu_1\), and friction coefficient for type
+2-type 2 interactions is set to \(\mu_2\), the friction coefficient
+for type1-type2 interactions is computed as \(\sqrt\{\mu_1\mu_2\}\)
+(unless explicitly specified to a different value by a {pair_coeff 1 2
+...} command. The exception to this is elastic modulus, only
+applicable to {hertz/material}, {dmt} and {jkr} normal contact
+models. In that case, the effective elastic modulus is computed as:
+
+\begin\{equation\}
+E_\{eff,ij\} = \left(\frac\{1-\nu_i^2\}\{E_i\} + \frac\{1-\nu_j^2\}\{E_j\}\right)^\{-1\}
+\end\{equation\}
+
+If the {i-j} coefficients \(E_\{ij\}\) and \(\nu_\{ij\}\) are
+explicitly specified, the effective modulus is computed as:
+
+\begin\{equation\}
+E_\{eff,ij\} = \left(\frac\{1-\nu_\{ij\}^2\}\{E_\{ij\}\} + \frac\{1-\nu_\{ij\}^2\}\{E_\{ij\}\}\right)^\{-1\}
+\end\{equation\}
+
+or
+
+\begin\{equation\}
+E_\{eff,ij\} = \frac\{E_\{ij\}\}\{2(1-\nu_\{ij\})\}
+\end\{equation\}
+
+These pair styles write their information to "binary restart
+files"_restart.html, so a pair_style command does not need to be
+specified in an input script that reads a restart file.
+
+These pair styles can only be used via the {pair} keyword of the
+"run_style respa"_run_style.html command. They do not support the
+{inner}, {middle}, {outer} keywords.
+
+The single() function of these pair styles returns 0.0 for the energy
+of a pairwise interaction, since energy is not conserved in these
+dissipative potentials. It also returns only the normal component of
+the pairwise interaction force. However, the single() function also
+calculates 10 extra pairwise quantities. The first 3 are the
+components of the tangential force between particles I and J, acting
+on particle I. The 4th is the magnitude of this tangential force.
+The next 3 (5-7) are the components of the rolling torque acting on
+particle I. The next entry (8) is the magnitude of the rolling torque.
+The next entry (9) is the magnitude of the twisting torque acting
+about the vector connecting the two particle centers.
+The last 3 (10-12) are the components of the vector connecting
+the centers of the two particles (x_I - x_J).
+
+These extra quantities can be accessed by the "compute
+pair/local"_compute_pair_local.html command, as {p1}, {p2}, ...,
+{p12}.
+
+:line
+
+[Restrictions:]
+
+All the granular pair styles are part of the GRANULAR package. It is
+only enabled if LAMMPS was built with that package. See the "Build
+package"_Build_package.html doc page for more info.
+
+These pair styles require that atoms store torque and angular velocity
+(omega) as defined by the "atom_style"_atom_style.html. They also
+require a per-particle radius is stored. The {sphere} atom style does
+all of this.
+
+This pair style requires you to use the "comm_modify vel
+yes"_comm_modify.html command so that velocities are stored by ghost
+atoms.
+
+These pair styles will not restart exactly when using the
+"read_restart"_read_restart.html command, though they should provide
+statistically similar results. This is because the forces they
+compute depend on atom velocities. See the
+"read_restart"_read_restart.html command for more details.
+
+[Related commands:]
+
+"pair_coeff"_pair_coeff.html
+"pair gran/*"_pair_gran.html
+
+[Default:]
+
+For the {pair_coeff} settings: {damping viscoelastic}, {rolling none},
+{twisting none}.
+
+[References:]
+
+:link(Brill1996)
+[(Brilliantov et al, 1996)] Brilliantov, N. V., Spahn, F., Hertzsch,
+J. M., & Poschel, T. (1996). Model for collisions in granular
+gases. Physical review E, 53(5), 5382.
+
+:link(Tsuji1992)
+[(Tsuji et al, 1992)] Tsuji, Y., Tanaka, T., & Ishida,
+T. (1992). Lagrangian numerical simulation of plug flow of
+cohesionless particles in a horizontal pipe. Powder technology, 71(3),
+239-250.
+
+:link(JKR1971)
+[(Johnson et al, 1971)] Johnson, K. L., Kendall, K., & Roberts,
+A. D. (1971). Surface energy and the contact of elastic
+solids. Proc. R. Soc. Lond. A, 324(1558), 301-313.
+
+:link(DMT1975)
+[Derjaguin et al, 1975)] Derjaguin, B. V., Muller, V. M., & Toporov,
+Y. P. (1975). Effect of contact deformations on the adhesion of
+particles. Journal of Colloid and interface science, 53(2), 314-326.
+
+:link(Luding2008)
+[(Luding, 2008)] Luding, S. (2008). Cohesive, frictional powders:
+contact models for tension. Granular matter, 10(4), 235.
+
+:link(Marshall2009)
+[(Marshall, 2009)] Marshall, J. S. (2009). Discrete-element modeling
+of particulate aerosol flows. Journal of Computational Physics,
+228(5), 1541-1561.
+
+:link(Silbert2001)
+[(Silbert, 2001)] Silbert, L. E., Ertas, D., Grest, G. S., Halsey,
+T. C., Levine, D., & Plimpton, S. J. (2001). Granular flow down an
+inclined plane: Bagnold scaling and rheology. Physical Review E,
+64(5), 051302.
+
+:link(Kuhn2004)
+[(Kuhn and Bagi, 2005)] Kuhn, M. R., & Bagi, K. (2004). Contact
+rolling and deformation in granular media. International journal of
+solids and structures, 41(21), 5793-5820.
+
+:link(Wang2015)
+[(Wang et al, 2015)] Wang, Y., Alonso-Marroquin, F., & Guo,
+W. W. (2015). Rolling and sliding in 3-D discrete element
+models. Particuology, 23, 49-55.
+
+:link(Thornton1991)
+[(Thornton, 1991)] Thornton, C. (1991). Interparticle sliding in the
+presence of adhesion. J. Phys. D: Appl. Phys. 24 1942
+
+:link(Mindlin1949)
+[(Mindlin, 1949)] Mindlin, R. D. (1949). Compliance of elastic bodies
+in contact. J. Appl. Mech., ASME 16, 259-268.
+
+:link(Thornton2013)
+[(Thornton et al, 2013)] Thornton, C., Cummins, S. J., & Cleary,
+P. W. (2013). An investigation of the comparative behaviour of
+alternative contact force models during inelastic collisions. Powder
+Technology, 233, 30-46.
+
+:link(WaltonPC)
+[(Otis R. Walton)] Walton, O.R., Personal Communication
diff --git a/doc/src/pairs.txt b/doc/src/pairs.txt
index 09c310a110..30dcc8fd4b 100644
--- a/doc/src/pairs.txt
+++ b/doc/src/pairs.txt
@@ -42,6 +42,7 @@ Pair Styles :h1
pair_gauss
pair_gayberne
pair_gran
+ pair_granular
pair_gromacs
pair_gw
pair_hbond_dreiding
diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt
index 6eb158396f..8c2ff43c3c 100644
--- a/doc/utils/sphinx-config/false_positives.txt
+++ b/doc/utils/sphinx-config/false_positives.txt
@@ -156,6 +156,8 @@ ba
Babadi
backcolor
Baczewski
+Bagi
+Bagnold
Bal
balancer
Balankura
@@ -250,6 +252,7 @@ Boresch
Botero
Botu
Bouguet
+Bourne
boxcolor
bp
bpls
@@ -346,6 +349,7 @@ Cij
cis
civ
clearstore
+Cleary
Clebsch
clemson
Clermont
@@ -372,6 +376,7 @@ Coeff
CoefficientN
coeffs
Coeffs
+cohesionless
Coker
Colberg
coleman
@@ -449,6 +454,7 @@ cuda
Cuda
CUDA
CuH
+Cummins
Curk
customIDs
cutbond
@@ -492,6 +498,7 @@ darkturquoise
darkviolet
Das
Dasgupta
+dashpot
dat
datafile
datums
@@ -529,6 +536,7 @@ Dequidt
der
derekt
Derjagin
+Derjaguin
Derlet
Deserno
Destree
@@ -627,6 +635,7 @@ dVx
dW
dx
dy
+dylib
dyn
dyne
dynes
@@ -1079,6 +1088,7 @@ Hyoungki
hyperdynamics
hyperradius
hyperspherical
+hysteretic
Ibanez
ibar
ibm
@@ -1138,6 +1148,7 @@ interconvert
interial
interlayer
intermolecular
+Interparticle
interstitials
Intr
intra
@@ -1156,6 +1167,7 @@ IPython
Isele
isenthalpic
ish
+Ishida
iso
isodemic
isoenergetic
@@ -1265,6 +1277,7 @@ kcl
Kd
KDevelop
ke
+kepler
KE
Keblinski
keflag
@@ -1298,6 +1311,7 @@ Kondor
konglt
Koning
Kooser
+Korn
Koskinen
Koster
Kosztin
@@ -1450,6 +1464,7 @@ logfile
logfreq
logicals
Lomdahl
+Lond
lookups
Lookups
LoopVar
@@ -1465,6 +1480,7 @@ lsfftw
ltbbmalloc
lubricateU
lucy
+Luding
Lussetti
Lustig
lwsock
@@ -1503,6 +1519,7 @@ manybody
MANYBODY
Maras
Marrink
+Marroquin
Marsaglia
Marseille
Martyna
@@ -1514,6 +1531,7 @@ masstotal
Masuhiro
Matchett
Materias
+mathbf
matlab
matplotlib
Mattox
@@ -1602,6 +1620,7 @@ Mie
Mikami
Militzer
Minary
+Mindlin
mincap
mingw
minima
@@ -1672,6 +1691,7 @@ mpiexec
mpiio
mpirun
mplayer
+mps
Mryglod
mscg
MSCG
@@ -1955,6 +1975,7 @@ oneway
onn
ons
OO
+opencl
openKIM
OpenMP
openmp
@@ -2287,6 +2308,7 @@ rg
Rg
Rhaphson
rheological
+rheology
rhodo
Rhodo
rhodopsin
@@ -2603,6 +2625,7 @@ Tait
taitwater
Tajkhorshid
Tamaskovics
+Tanaka
tanh
Tartakovsky
taskset
@@ -2690,6 +2713,7 @@ tokyo
tol
toolchain
topologies
+Toporov
Torder
torsions
Tosi
@@ -2734,6 +2758,7 @@ Tsrd
Tstart
tstat
Tstop
+Tsuji
Tsuzuki
tt
Tt
diff --git a/examples/hyper/global.000000.jpg b/examples/hyper/global.000000.jpg
new file mode 100644
index 0000000000..3064ece7f1
Binary files /dev/null and b/examples/hyper/global.000000.jpg differ
diff --git a/examples/hyper/global.041000.jpg b/examples/hyper/global.041000.jpg
new file mode 100644
index 0000000000..1f5253865e
Binary files /dev/null and b/examples/hyper/global.041000.jpg differ
diff --git a/examples/hyper/global.045000.jpg b/examples/hyper/global.045000.jpg
new file mode 100644
index 0000000000..fb545052cb
Binary files /dev/null and b/examples/hyper/global.045000.jpg differ
diff --git a/examples/hyper/global.048000.jpg b/examples/hyper/global.048000.jpg
new file mode 100644
index 0000000000..506ea4a4bb
Binary files /dev/null and b/examples/hyper/global.048000.jpg differ
diff --git a/examples/hyper/global.089000.jpg b/examples/hyper/global.089000.jpg
new file mode 100644
index 0000000000..094e8b5328
Binary files /dev/null and b/examples/hyper/global.089000.jpg differ
diff --git a/examples/hyper/global.10Oct18.000000.jpg b/examples/hyper/global.10Oct18.000000.jpg
deleted file mode 100644
index b462983f6a..0000000000
Binary files a/examples/hyper/global.10Oct18.000000.jpg and /dev/null differ
diff --git a/examples/hyper/global.10Oct18.003000.jpg b/examples/hyper/global.10Oct18.003000.jpg
deleted file mode 100644
index ef28d78d78..0000000000
Binary files a/examples/hyper/global.10Oct18.003000.jpg and /dev/null differ
diff --git a/examples/hyper/global.10Oct18.038000.jpg b/examples/hyper/global.10Oct18.038000.jpg
deleted file mode 100644
index 444531312b..0000000000
Binary files a/examples/hyper/global.10Oct18.038000.jpg and /dev/null differ
diff --git a/examples/hyper/global.10Oct18.059000.jpg b/examples/hyper/global.10Oct18.059000.jpg
deleted file mode 100644
index b77a9e3454..0000000000
Binary files a/examples/hyper/global.10Oct18.059000.jpg and /dev/null differ
diff --git a/examples/hyper/in.hyper.global b/examples/hyper/in.hyper.global
index 22b3b4251b..eba5c7bf89 100644
--- a/examples/hyper/in.hyper.global
+++ b/examples/hyper/in.hyper.global
@@ -12,6 +12,8 @@ variable cutevent index 1.1
variable steps index 100000
variable nevent index 1000
variable zoom index 1.8
+variable seed index 826626413
+variable tol index 1.0e-15
units metal
atom_style atomic
@@ -45,7 +47,7 @@ neighbor 0.5 bin
neigh_modify every 1 delay 5 check yes
fix 1 mobile nve
-fix 2 mobile langevin ${Tequil} ${Tequil} 1.0 858872873 zero yes
+fix 2 mobile langevin ${Tequil} ${Tequil} 1.0 ${seed} zero yes
timestep 0.005
@@ -92,4 +94,4 @@ dump_modify 1 pad 6 amap 1 3 sa 1 3 blue red green
# run
-hyper ${steps} ${nevent} HG event min 1.0e-6 1.0e-6 100 100 dump 1
+hyper ${steps} ${nevent} HG event min ${tol} ${tol} 1000 1000 dump 1
diff --git a/examples/hyper/in.hyper.local b/examples/hyper/in.hyper.local
index ef8ed4d042..cdf478ac38 100644
--- a/examples/hyper/in.hyper.local
+++ b/examples/hyper/in.hyper.local
@@ -107,6 +107,12 @@ 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_modify 1 pad 6 amap 1 3 sa 1 3 blue red green
+# test of histogramming and dump output of bias coeffs
+
+#fix histo all ave/histo 10 100 1000 0.9 1.1 100 f_HL &
+# mode vector kind local file tmp.histo
+#dump 2 all local 1000 tmp.local f_HL
+
# run
hyper ${steps} ${nevent} HL event min ${tol} ${tol} 1000 1000 dump 1
diff --git a/examples/hyper/local.10Oct18.000000.jpg b/examples/hyper/local.000000.jpg
similarity index 100%
rename from examples/hyper/local.10Oct18.000000.jpg
rename to examples/hyper/local.000000.jpg
diff --git a/examples/hyper/local.001200.jpg b/examples/hyper/local.001200.jpg
new file mode 100644
index 0000000000..36bc9cd7bc
Binary files /dev/null and b/examples/hyper/local.001200.jpg differ
diff --git a/examples/hyper/local.10Oct18.000700.jpg b/examples/hyper/local.10Oct18.000700.jpg
deleted file mode 100644
index e1e61dd6aa..0000000000
Binary files a/examples/hyper/local.10Oct18.000700.jpg and /dev/null differ
diff --git a/examples/hyper/local.10Oct18.000800.jpg b/examples/hyper/local.10Oct18.000800.jpg
deleted file mode 100644
index a1e2fbc66a..0000000000
Binary files a/examples/hyper/local.10Oct18.000800.jpg and /dev/null differ
diff --git a/examples/hyper/local.10Oct18.001100.jpg b/examples/hyper/local.10Oct18.001100.jpg
deleted file mode 100644
index dea7fd4eaf..0000000000
Binary files a/examples/hyper/local.10Oct18.001100.jpg and /dev/null differ
diff --git a/examples/hyper/log.10Oct18.hyper.global.g++.4 b/examples/hyper/log.10Oct18.hyper.global.g++.4
deleted file mode 100644
index de08541583..0000000000
--- a/examples/hyper/log.10Oct18.hyper.global.g++.4
+++ /dev/null
@@ -1,1243 +0,0 @@
-LAMMPS (10 Oct 2018)
-# 3d EAM surface for global 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 500.0
-variable Vmax index 0.5
-variable qfactor index 0.3
-variable cutbond index 3.2
-variable cutevent index 1.1
-variable steps index 100000
-variable nevent index 1000
-variable zoom index 1.8
-
-units metal
-atom_style atomic
-atom_modify map array
-boundary p p p
-
-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 3 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
- Time spent = 0.000782013 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)
-create_atoms 2 single 3.5 3.5 4
-Created 1 atoms
- Time spent = 4.69685e-05 secs
-
-# define frozen substrate and mobile atoms
-
-group adatom type 2
-1 atoms in group adatom
-region base block INF INF INF INF 0 1.8
-set region base type 3
- 288 settings made for type
-group base type 3
-288 atoms in group base
-group mobile type 1 2
-289 atoms in group mobile
-
-# pair style
-
-pair_style eam/alloy
-pair_coeff * * ptvoterlammps.eam Pt 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 858872873 zero yes
-fix 2 mobile langevin 500.0 ${Tequil} 1.0 858872873 zero yes
-fix 2 mobile langevin 500.0 500.0 1.0 858872873 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:488)
-
-# 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 = 6.07583
- binsize = 3.03792, bins = 8 8 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.327 | 3.327 | 3.327 Mbytes
-Step Temp E_pair E_mol TotEng Press
- 0 0 -3213.9136 0 -3213.9136 -51843.125
- 100 211.06271 -3209.3285 0 -3201.4713 -27323.825
- 200 320.80707 -3205.3715 0 -3193.4289 -39370.402
- 300 393.66139 -3202.607 0 -3187.9522 -32163.403
- 400 401.11987 -3200.2795 0 -3185.347 -35961.543
- 500 472.27798 -3200.7267 0 -3183.1452 -33044.974
- 600 485.16253 -3199.818 0 -3181.7569 -34242.615
- 700 464.85129 -3199.865 0 -3182.56 -35327.179
- 800 518.91236 -3199.4098 0 -3180.0923 -32088.2
- 900 502.76061 -3199.3972 0 -3180.681 -36944.263
- 1000 522.64479 -3200.0627 0 -3180.6063 -32801.856
-Loop time of 0.333434 on 4 procs for 1000 steps with 577 atoms
-
-Performance: 1295.607 ns/day, 0.019 hours/ns, 2999.091 timesteps/s
-99.5% CPU use with 4 MPI tasks x no OpenMP threads
-
-MPI task timing breakdown:
-Section | min time | avg time | max time |%varavg| %total
----------------------------------------------------------------
-Pair | 0.25639 | 0.2636 | 0.2708 | 1.0 | 79.06
-Neigh | 0.017381 | 0.017991 | 0.018988 | 0.4 | 5.40
-Comm | 0.026086 | 0.034315 | 0.042505 | 3.2 | 10.29
-Output | 0.00022078 | 0.00023323 | 0.00026107 | 0.0 | 0.07
-Modify | 0.013295 | 0.013709 | 0.014107 | 0.2 | 4.11
-Other | | 0.003584 | | | 1.07
-
-Nlocal: 144.25 ave 149 max 139 min
-Histogram: 1 0 0 1 0 0 0 0 1 1
-Nghost: 530.5 ave 536 max 526 min
-Histogram: 1 1 0 0 0 0 0 1 0 1
-Neighs: 3471.75 ave 3626 max 3292 min
-Histogram: 1 0 0 0 1 0 1 0 0 1
-
-Total # of neighbors = 13887
-Ave neighs/atom = 24.0676
-Neighbor list builds = 88
-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/global
-
-fix HG mobile hyper/global ${cutbond} ${qfactor} ${Vmax} ${Tequil}
-fix HG mobile hyper/global 3.2 ${qfactor} ${Vmax} ${Tequil}
-fix HG mobile hyper/global 3.2 0.3 ${Vmax} ${Tequil}
-fix HG mobile hyper/global 3.2 0.3 0.5 ${Tequil}
-fix HG mobile hyper/global 3.2 0.3 0.5 500.0
-
-# thermo output
-
-thermo_style custom step temp pe f_HG f_HG[*]
-WARNING: New thermo_style command, previous thermo_modify settings will be lost (../output.cpp:705)
-
-thermo_modify lost ignore
-thermo_modify temp tmobile
-WARNING: Temperature for thermo pressure is not for group all (../thermo.cpp:488)
-
-thermo ${nevent}
-thermo 1000
-
-# dump output options
-
-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 1000000 global.*.jpg v_acolor type zoom ${zoom} adiam 2.5 view 0.0 0.0 up 0 1 0 axes yes 0.9 0.01
-dump 1 all image 1000000 global.*.jpg v_acolor type 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} HG event min 1.0e-6 1.0e-6 100 100 dump 1
-hyper 100000 ${nevent} HG event min 1.0e-6 1.0e-6 100 100 dump 1
-hyper 100000 1000 HG event min 1.0e-6 1.0e-6 100 100 dump 1
-WARNING: Resetting reneighboring criteria during hyper (../hyper.cpp:133)
-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 = 6.07583
- binsize = 3.03792, bins = 8 8 7
- 2 neighbor lists, perpetual/occasional/extra = 1 1 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/global, occasional, copy from (1)
- attributes: half, newton on
- pair build: copy
- stencil: none
- bin: none
-Per MPI rank memory allocation (min/avg/max) = 6.015 | 6.015 | 6.015 Mbytes
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 0 522.64479 -3200.0627 0 0 0 0 0 0 0 0 0 0 0 0
- 13 522.64479 -3217.9151 0 0 0 0 0 0 0 0 0 0 0 0
-Loop time of 0.0106812 on 4 procs for 13 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 0 522.64479 -3200.0627 0.39402008 9365.7631 0.13811729 429 426 6.0069324 0 0.36151295 3.1652084 0 0 0
- 1000 512.35059 -3198.5556 0.32845525 2044.9347 0.17572153 257 259 6.0069324 0.137 0.77425934 3.8913771 5302.7599 0 0
-Loop time of 0.314234 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 1000 512.35059 -3198.5556 0.32845525 2044.9347 0.17572153 257 259 6.0069324 0.137 0.77425934 3.8913771 5302.7599 0 0
- 1014 512.35059 -3217.9161 0.32845525 2044.9347 0.17572153 257 259 6.0069324 0.13510848 0.77425934 3.8913771 5302.7599 0 0
-Loop time of 0.0071606 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 1000 512.35059 -3198.5556 0.32845525 2044.9347 0.17572153 257 259 6.0069324 0.137 0.77425934 3.8913771 5302.7599 0 0
- 2000 502.60215 -3197.7892 0.01351505 1.3684394 0.29591771 116 127 6.0069324 0.103 0.77425934 3.8913771 11603.458 0 0
-Loop time of 0.33185 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 2000 502.60215 -3197.7892 0.01351505 1.3684394 0.29591771 116 127 6.0069324 0.103 0.77425934 3.8913771 11603.458 0 0
- 2015 502.60215 -3217.9155 0.01351505 1.3684394 0.29591771 116 127 6.0069324 0.10223325 0.77425934 3.8913771 11603.458 0 0
-Loop time of 0.00889879 on 4 procs for 15 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 2000 502.60215 -3197.7892 0.01351505 1.3684394 0.29591771 116 127 6.0069324 0.103 0.77425934 3.8913771 11603.458 0 0
- 3000 481.01481 -3199.1324 0 1 1.0289113 542 544 6.0069324 0.212 2.8308749 5.5814852 12488.613 0 0
-Loop time of 0.334598 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 3000 481.01481 -3199.1324 0 1 1.0289113 542 544 6.0069324 0.212 2.8308749 5.5814852 12488.613 0 0
- 3014 481.01481 -3217.916 0 1 1.0289113 542 544 6.0069324 0.21101526 2.8308749 5.5814852 12488.613 0 0
-Loop time of 0.0103227 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 3000 481.01481 -3199.1324 0.25134819 341.56656 0.21155927 277 539 6.0069324 0.212 2.8308749 5.5814852 12488.613 1 2
- 4000 474.51721 -3197.9082 0.26384891 456.53799 0.20617274 361 83 6.0069324 0.18325 2.8308749 5.5814852 22776.39 1 2
-Loop time of 0.302547 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 4000 474.51721 -3197.9082 0.26384891 456.53799 0.20617274 361 83 6.0069324 0.18325 2.8308749 5.5814852 22776.39 1 2
- 4014 474.51721 -3217.9172 0.26384891 456.53799 0.20617274 361 83 6.0069324 0.18261086 2.8308749 5.5814852 22776.39 1 2
-Loop time of 0.00868511 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 4000 474.51721 -3197.9082 0.26384891 456.53799 0.20617274 361 83 6.0069324 0.18325 2.8308749 5.5814852 22776.39 1 2
- 5000 478.08772 -3199.6792 0.043886568 2.7692147 0.2865317 275 577 6.0069324 0.1586 2.8308749 5.5814852 35085.309 1 2
-Loop time of 0.300419 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 5000 478.08772 -3199.6792 0.043886568 2.7692147 0.2865317 275 577 6.0069324 0.1586 2.8308749 5.5814852 35085.309 1 2
- 5015 478.08772 -3217.9131 0.043886568 2.7692147 0.2865317 275 577 6.0069324 0.15812562 2.8308749 5.5814852 35085.309 1 2
-Loop time of 0.00705171 on 4 procs for 15 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 5000 478.08772 -3199.6792 0.043886568 2.7692147 0.2865317 275 577 6.0069324 0.1586 2.8308749 5.5814852 35085.309 1 2
- 6000 458.77612 -3197.8588 0.27710376 620.98321 0.20030308 511 546 6.0069324 0.171 2.8308749 5.5814852 38747.284 1 2
-Loop time of 0.287999 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 6000 458.77612 -3197.8588 0.27710376 620.98321 0.20030308 511 546 6.0069324 0.171 2.8308749 5.5814852 38747.284 1 2
- 6015 458.77612 -3217.9165 0.27710376 620.98321 0.20030308 511 546 6.0069324 0.17057357 2.8308749 5.5814852 38747.284 1 2
-Loop time of 0.00888014 on 4 procs for 15 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 6000 458.77612 -3197.8588 0.27710376 620.98321 0.20030308 511 546 6.0069324 0.171 2.8308749 5.5814852 38747.284 1 2
- 7000 476.88452 -3198.3269 0.0828164 6.8352063 0.27403111 264 275 6.0069324 0.17714286 2.8308749 5.5814852 45612.389 1 2
-Loop time of 0.29168 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 7000 476.88452 -3198.3269 0.0828164 6.8352063 0.27403111 264 275 6.0069324 0.17714286 2.8308749 5.5814852 45612.389 1 2
- 7015 476.88452 -3217.9146 0.0828164 6.8352063 0.27403111 264 275 6.0069324 0.17676408 2.8308749 5.5814852 45612.389 1 2
-Loop time of 0.00871038 on 4 procs for 15 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 7000 476.88452 -3198.3269 0.0828164 6.8352063 0.27403111 264 275 6.0069324 0.17714286 2.8308749 5.5814852 45612.389 1 2
- 8000 521.60584 -3199.0138 0.22715857 194.82964 0.22161105 419 124 6.0069324 0.191875 2.8308749 5.5814852 46748.053 1 2
-Loop time of 0.284021 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 8000 521.60584 -3199.0138 0.22715857 194.82964 0.22161105 419 124 6.0069324 0.191875 2.8308749 5.5814852 46748.053 1 2
- 8015 521.60584 -3217.9163 0.22715857 194.82964 0.22161105 419 124 6.0069324 0.19151591 2.8308749 5.5814852 46748.053 1 2
-Loop time of 0.00697637 on 4 procs for 15 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 8000 521.60584 -3199.0138 0.22715857 194.82964 0.22161105 419 124 6.0069324 0.191875 2.8308749 5.5814852 46748.053 1 2
- 9000 496.87475 -3198.4928 0.13677449 23.912479 0.25569629 264 275 6.0069324 0.18388889 2.8308749 5.5814852 49596.596 1 2
-Loop time of 0.238759 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 9000 496.87475 -3198.4928 0.13677449 23.912479 0.25569629 264 275 6.0069324 0.18388889 2.8308749 5.5814852 49596.596 1 2
- 9014 496.87475 -3217.9149 0.13677449 23.912479 0.25569629 264 275 6.0069324 0.18360328 2.8308749 5.5814852 49596.596 1 2
-Loop time of 0.00677681 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 9000 496.87475 -3198.4928 0.13677449 23.912479 0.25569629 264 275 6.0069324 0.18388889 2.8308749 5.5814852 49596.596 1 2
- 10000 478.6826 -3199.6673 0.37406677 5894.1727 0.1505589 127 132 6.0069324 0.1982 2.8308749 5.5814852 54170.476 1 2
-Loop time of 0.23881 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 10000 478.6826 -3199.6673 0.37406677 5894.1727 0.1505589 127 132 6.0069324 0.1982 2.8308749 5.5814852 54170.476 1 2
- 10013 478.6826 -3217.9144 0.37406677 5894.1727 0.1505589 127 132 6.0069324 0.19794267 2.8308749 5.5814852 54170.476 1 2
-Loop time of 0.00627023 on 4 procs for 13 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 10000 478.6826 -3199.6673 0.37406677 5894.1727 0.1505589 127 132 6.0069324 0.1982 2.8308749 5.5814852 54170.476 1 2
- 11000 518.40222 -3199.3332 0.34753231 3183.9595 0.16566286 383 418 6.0069324 0.18809091 2.8308749 5.5814852 58304.709 1 2
-Loop time of 0.238288 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 11000 518.40222 -3199.3332 0.34753231 3183.9595 0.16566286 383 418 6.0069324 0.18809091 2.8308749 5.5814852 58304.709 1 2
- 11013 518.40222 -3217.915 0.34753231 3183.9595 0.16566286 383 418 6.0069324 0.18786888 2.8308749 5.5814852 58304.709 1 2
-Loop time of 0.00599569 on 4 procs for 13 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 11000 518.40222 -3199.3332 0.34753231 3183.9595 0.16566286 383 418 6.0069324 0.18809091 2.8308749 5.5814852 58304.709 1 2
- 12000 552.07348 -3197.6675 0.0063435549 1.1586177 0.29809086 144 143 6.0069324 0.18016667 2.8308749 5.5814852 66990.451 1 2
-Loop time of 0.23842 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 12000 552.07348 -3197.6675 0.0063435549 1.1586177 0.29809086 144 143 6.0069324 0.18016667 2.8308749 5.5814852 66990.451 1 2
- 12013 552.07348 -3217.9165 0.0063435549 1.1586177 0.29809086 144 143 6.0069324 0.1799717 2.8308749 5.5814852 66990.451 1 2
-Loop time of 0.00602174 on 4 procs for 13 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 12000 552.07348 -3197.6675 0.0063435549 1.1586177 0.29809086 144 143 6.0069324 0.18016667 2.8308749 5.5814852 66990.451 1 2
- 13000 471.13412 -3198.1314 0.30918747 1307.5821 0.18532743 116 123 6.0069324 0.17338462 2.8308749 5.5814852 74345.114 1 2
-Loop time of 0.237671 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 13000 471.13412 -3198.1314 0.30918747 1307.5821 0.18532743 116 123 6.0069324 0.17338462 2.8308749 5.5814852 74345.114 1 2
- 13014 471.13412 -3217.9158 0.30918747 1307.5821 0.18532743 116 123 6.0069324 0.17319809 2.8308749 5.5814852 74345.114 1 2
-Loop time of 0.00647223 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 13000 471.13412 -3198.1314 0.30918747 1307.5821 0.18532743 116 123 6.0069324 0.17338462 2.8308749 5.5814852 74345.114 1 2
- 14000 470.81692 -3198.8871 0.10763953 12.160669 0.26575343 275 577 6.0069324 0.18235714 2.8308749 5.5814852 76252.748 1 2
-Loop time of 0.238789 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 14000 470.81692 -3198.8871 0.10763953 12.160669 0.26575343 275 577 6.0069324 0.18235714 2.8308749 5.5814852 76252.748 1 2
- 14015 470.81692 -3217.9147 0.10763953 12.160669 0.26575343 275 577 6.0069324 0.18216197 2.8308749 5.5814852 76252.748 1 2
-Loop time of 0.00651169 on 4 procs for 15 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 14000 470.81692 -3198.8871 0.10763953 12.160669 0.26575343 275 577 6.0069324 0.18235714 2.8308749 5.5814852 76252.748 1 2
- 15000 473.2435 -3199.0907 0.20712247 122.37713 0.22960391 569 570 6.0069324 0.18553333 2.8308749 5.5814852 81659.641 1 2
-Loop time of 0.23755 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 15000 473.2435 -3199.0907 0.20712247 122.37713 0.22960391 569 570 6.0069324 0.18553333 2.8308749 5.5814852 81659.641 1 2
- 15014 473.2435 -3217.9161 0.20712247 122.37713 0.22960391 569 570 6.0069324 0.18536033 2.8308749 5.5814852 81659.641 1 2
-Loop time of 0.00644851 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 15000 473.2435 -3199.0907 0.20712247 122.37713 0.22960391 569 570 6.0069324 0.18553333 2.8308749 5.5814852 81659.641 1 2
- 16000 504.33627 -3199.1713 0.036898146 2.3545967 0.28871843 264 275 6.0069324 0.199875 2.8308749 5.5814852 82224.366 1 2
-Loop time of 0.240195 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 16000 504.33627 -3199.1713 0.036898146 2.3545967 0.28871843 264 275 6.0069324 0.199875 2.8308749 5.5814852 82224.366 1 2
- 16015 504.33627 -3217.9137 0.036898146 2.3545967 0.28871843 264 275 6.0069324 0.19968779 2.8308749 5.5814852 82224.366 1 2
-Loop time of 0.00684911 on 4 procs for 15 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 16000 504.33627 -3199.1713 0.036898146 2.3545967 0.28871843 264 275 6.0069324 0.199875 2.8308749 5.5814852 82224.366 1 2
- 17000 497.60607 -3198.212 0.0067178767 1.1687272 0.29797782 264 275 6.0069324 0.217 2.8308749 5.5814852 82242.51 1 2
-Loop time of 0.240567 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 17000 497.60607 -3198.212 0.0067178767 1.1687272 0.29797782 264 275 6.0069324 0.217 2.8308749 5.5814852 82242.51 1 2
- 17016 497.60607 -3217.9161 0.0067178767 1.1687272 0.29797782 264 275 6.0069324 0.21679596 2.8308749 5.5814852 82242.51 1 2
-Loop time of 0.00708336 on 4 procs for 16 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 17000 497.60607 -3198.212 0.0067178767 1.1687272 0.29797782 264 275 6.0069324 0.217 2.8308749 5.5814852 82242.51 1 2
- 18000 523.92168 -3199.831 0.21046671 132.25396 0.22828927 264 275 6.0069324 0.22444444 2.8308749 5.5814852 82304.143 1 2
-Loop time of 0.240636 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 18000 523.92168 -3199.831 0.21046671 132.25396 0.22828927 264 275 6.0069324 0.22444444 2.8308749 5.5814852 82304.143 1 2
- 18014 523.92168 -3217.9153 0.21046671 132.25396 0.22828927 264 275 6.0069324 0.22427001 2.8308749 5.5814852 82304.143 1 2
-Loop time of 0.00646216 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 18000 523.92168 -3199.831 0.21046671 132.25396 0.22828927 264 275 6.0069324 0.22444444 2.8308749 5.5814852 82304.143 1 2
- 19000 538.76557 -3198.7203 0.036295998 2.3219194 0.28890608 397 400 6.0069324 0.228 2.8308749 5.5814852 83487.232 1 2
-Loop time of 0.239259 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 19000 538.76557 -3198.7203 0.036295998 2.3219194 0.28890608 397 400 6.0069324 0.228 2.8308749 5.5814852 83487.232 1 2
- 19014 538.76557 -3217.9141 0.036295998 2.3219194 0.28890608 397 400 6.0069324 0.22783212 2.8308749 5.5814852 83487.232 1 2
-Loop time of 0.0061307 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 19000 538.76557 -3198.7203 0.036295998 2.3219194 0.28890608 397 400 6.0069324 0.228 2.8308749 5.5814852 83487.232 1 2
- 20000 483.9598 -3198.1166 0.13750177 24.319538 0.25544017 400 131 6.0069324 0.2187 2.8308749 5.5814852 91177.618 1 2
-Loop time of 0.241751 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 20000 483.9598 -3198.1166 0.13750177 24.319538 0.25544017 400 131 6.0069324 0.2187 2.8308749 5.5814852 91177.618 1 2
- 20014 483.9598 -3217.9137 0.13750177 24.319538 0.25544017 400 131 6.0069324 0.21854702 2.8308749 5.5814852 91177.618 1 2
-Loop time of 0.00646776 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 20000 483.9598 -3198.1166 0.13750177 24.319538 0.25544017 400 131 6.0069324 0.2187 2.8308749 5.5814852 91177.618 1 2
- 21000 518.44073 -3199.7932 0.30241436 1117.3756 0.18858795 553 577 6.0069324 0.21271429 2.8308749 5.5814852 99740.17 1 2
-Loop time of 0.239403 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 21000 518.44073 -3199.7932 0.30241436 1117.3756 0.18858795 553 577 6.0069324 0.21271429 2.8308749 5.5814852 99740.17 1 2
- 21014 518.44073 -3217.9126 0.30241436 1117.3756 0.18858795 553 577 6.0069324 0.21257257 2.8308749 5.5814852 99740.17 1 2
-Loop time of 0.00643963 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 21000 518.44073 -3199.7932 0.30241436 1117.3756 0.18858795 553 577 6.0069324 0.21271429 2.8308749 5.5814852 99740.17 1 2
- 22000 518.95823 -3198.6693 0 1 0.4887755 262 263 6.0069324 0.22327273 2.8308749 5.5814852 103304.87 1 2
-Loop time of 0.241227 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 22000 518.95823 -3198.6693 0 1 0.4887755 262 263 6.0069324 0.22327273 2.8308749 5.5814852 103304.87 1 2
- 22033 518.95823 -3217.916 0 1 0.4887755 262 263 6.0069324 0.22293832 2.8308749 5.5814852 103304.87 1 2
-Loop time of 0.015579 on 4 procs for 33 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 22000 518.95823 -3198.6693 0 1 0.4887755 262 263 6.0069324 0.22327273 2.8308749 5.5814852 103304.87 1 2
- 23000 534.01428 -3197.6551 0.10264812 10.830446 0.26743848 136 431 6.0069324 0.22469565 2.8308749 5.5814852 108159.84 1 2
-Loop time of 0.240257 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 23000 534.01428 -3197.6551 0.10264812 10.830446 0.26743848 136 431 6.0069324 0.22469565 2.8308749 5.5814852 108159.84 1 2
- 23015 534.01428 -3217.9147 0.10264812 10.830446 0.26743848 136 431 6.0069324 0.22454921 2.8308749 5.5814852 108159.84 1 2
-Loop time of 0.0067718 on 4 procs for 15 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 23000 534.01428 -3197.6551 0.10264812 10.830446 0.26743848 136 431 6.0069324 0.22469565 2.8308749 5.5814852 108159.84 1 2
- 24000 502.61915 -3198.9796 0.22019457 165.75289 0.22442143 132 143 6.0069324 0.21883333 2.8308749 5.5814852 115124.63 1 2
-Loop time of 0.241014 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 24000 502.61915 -3198.9796 0.22019457 165.75289 0.22442143 132 143 6.0069324 0.21883333 2.8308749 5.5814852 115124.63 1 2
- 24014 502.61915 -3217.9149 0.22019457 165.75289 0.22442143 132 143 6.0069324 0.21870575 2.8308749 5.5814852 115124.63 1 2
-Loop time of 0.006706 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 24000 502.61915 -3198.9796 0.22019457 165.75289 0.22442143 132 143 6.0069324 0.21883333 2.8308749 5.5814852 115124.63 1 2
- 25000 510.27664 -3200.7431 0.34609419 3079.4414 0.16644232 120 119 6.0069324 0.21512 2.8308749 5.5814852 118042.99 1 2
-Loop time of 0.239452 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 25000 510.27664 -3200.7431 0.34609419 3079.4414 0.16644232 120 119 6.0069324 0.21512 2.8308749 5.5814852 118042.99 1 2
- 25013 510.27664 -3217.9127 0.34609419 3079.4414 0.16644232 120 119 6.0069324 0.2150082 2.8308749 5.5814852 118042.99 1 2
-Loop time of 0.00622821 on 4 procs for 13 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 25000 510.27664 -3200.7431 0.34609419 3079.4414 0.16644232 120 119 6.0069324 0.21512 2.8308749 5.5814852 118042.99 1 2
- 26000 511.79717 -3198.2999 0.19492582 92.206933 0.23433598 263 577 6.0069324 0.21273077 2.8308749 5.5814852 124902.88 1 2
-Loop time of 0.271219 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 26000 511.79717 -3198.2999 0.19492582 92.206933 0.23433598 263 577 6.0069324 0.21273077 2.8308749 5.5814852 124902.88 1 2
- 26015 511.79717 -3217.9147 0.19492582 92.206933 0.23433598 263 577 6.0069324 0.21260811 2.8308749 5.5814852 124902.88 1 2
-Loop time of 0.0105773 on 4 procs for 15 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 26000 511.79717 -3198.2999 0.19492582 92.206933 0.23433598 263 577 6.0069324 0.21273077 2.8308749 5.5814852 124902.88 1 2
- 27000 487.73368 -3197.4904 0.19560731 93.67693 0.2340741 401 572 6.0069324 0.20814815 2.8308749 5.5814852 130713.79 1 2
-Loop time of 0.293879 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 27000 487.73368 -3197.4904 0.19560731 93.67693 0.2340741 401 572 6.0069324 0.20814815 2.8308749 5.5814852 130713.79 1 2
- 27015 487.73368 -3217.9161 0.19560731 93.67693 0.2340741 401 572 6.0069324 0.20803257 2.8308749 5.5814852 130713.79 1 2
-Loop time of 0.00895333 on 4 procs for 15 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 27000 487.73368 -3197.4904 0.19560731 93.67693 0.2340741 401 572 6.0069324 0.20814815 2.8308749 5.5814852 130713.79 1 2
- 28000 468.95408 -3198.4177 0.3457758 3056.7694 0.1666144 549 515 6.0069324 0.204 2.8308749 5.5814852 135376.2 1 2
-Loop time of 0.286141 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 28000 468.95408 -3198.4177 0.3457758 3056.7694 0.1666144 549 515 6.0069324 0.204 2.8308749 5.5814852 135376.2 1 2
- 28014 468.95408 -3217.9167 0.3457758 3056.7694 0.1666144 549 515 6.0069324 0.20389805 2.8308749 5.5814852 135376.2 1 2
-Loop time of 0.00648469 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 28000 468.95408 -3198.4177 0.3457758 3056.7694 0.1666144 549 515 6.0069324 0.204 2.8308749 5.5814852 135376.2 1 2
- 29000 518.03534 -3198.1622 0.029706116 1.9926184 0.29095171 267 260 6.0069324 0.20031034 2.8308749 5.5814852 143604.35 1 2
-Loop time of 0.24066 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 29000 518.03534 -3198.1622 0.029706116 1.9926184 0.29095171 267 260 6.0069324 0.20031034 2.8308749 5.5814852 143604.35 1 2
- 29014 518.03534 -3217.9137 0.029706116 1.9926184 0.29095171 267 260 6.0069324 0.20021369 2.8308749 5.5814852 143604.35 1 2
-Loop time of 0.0063417 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 29000 518.03534 -3198.1622 0.029706116 1.9926184 0.29095171 267 260 6.0069324 0.20031034 2.8308749 5.5814852 143604.35 1 2
- 30000 535.78782 -3198.3125 0.33831746 2570.9054 0.17059559 122 124 6.0069324 0.19596667 2.8308749 5.5814852 150106.09 1 2
-Loop time of 0.259515 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 30000 535.78782 -3198.3125 0.33831746 2570.9054 0.17059559 122 124 6.0069324 0.19596667 2.8308749 5.5814852 150106.09 1 2
- 30014 535.78782 -3217.9119 0.33831746 2570.9054 0.17059559 122 124 6.0069324 0.19587526 2.8308749 5.5814852 150106.09 1 2
-Loop time of 0.0123347 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 30000 535.78782 -3198.3125 0.33831746 2570.9054 0.17059559 122 124 6.0069324 0.19596667 2.8308749 5.5814852 150106.09 1 2
- 31000 547.06872 -3198.3217 0.21707776 154.18603 0.22566791 275 577 6.0069324 0.19987097 2.8308749 5.5814852 151076.53 1 2
-Loop time of 0.321976 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 31000 547.06872 -3198.3217 0.21707776 154.18603 0.22566791 275 577 6.0069324 0.19987097 2.8308749 5.5814852 151076.53 1 2
- 31014 547.06872 -3217.9165 0.21707776 154.18603 0.22566791 275 577 6.0069324 0.19978074 2.8308749 5.5814852 151076.53 1 2
-Loop time of 0.00811768 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 31000 547.06872 -3198.3217 0.21707776 154.18603 0.22566791 275 577 6.0069324 0.19987097 2.8308749 5.5814852 151076.53 1 2
- 32000 469.53603 -3199.325 0.35776457 4037.4217 0.16000743 563 268 6.0069324 0.20171875 2.8308749 5.5814852 152526.06 1 2
-Loop time of 0.290834 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 32000 469.53603 -3199.325 0.35776457 4037.4217 0.16000743 563 268 6.0069324 0.20171875 2.8308749 5.5814852 152526.06 1 2
- 32013 469.53603 -3217.9147 0.35776457 4037.4217 0.16000743 563 268 6.0069324 0.20163684 2.8308749 5.5814852 152526.06 1 2
-Loop time of 0.00746775 on 4 procs for 13 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 32000 469.53603 -3199.325 0.35776457 4037.4217 0.16000743 563 268 6.0069324 0.20171875 2.8308749 5.5814852 152526.06 1 2
- 33000 491.33889 -3199.1986 0.32620326 1940.7983 0.17687118 258 228 6.0069324 0.19833333 2.8308749 5.5814852 156385.66 1 2
-Loop time of 0.243351 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 33000 491.33889 -3199.1986 0.32620326 1940.7983 0.17687118 258 228 6.0069324 0.19833333 2.8308749 5.5814852 156385.66 1 2
- 33014 491.33889 -3217.9155 0.32620326 1940.7983 0.17687118 258 228 6.0069324 0.19824923 2.8308749 5.5814852 156385.66 1 2
-Loop time of 0.00658584 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 33000 491.33889 -3199.1986 0.32620326 1940.7983 0.17687118 258 228 6.0069324 0.19833333 2.8308749 5.5814852 156385.66 1 2
- 34000 503.19322 -3198.8767 0.050333006 3.2161315 0.28449966 275 577 6.0069324 0.19794118 2.8308749 5.5814852 161964.99 1 2
-Loop time of 0.238415 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 34000 503.19322 -3198.8767 0.050333006 3.2161315 0.28449966 275 577 6.0069324 0.19794118 2.8308749 5.5814852 161964.99 1 2
- 34016 503.19322 -3217.9158 0.050333006 3.2161315 0.28449966 275 577 6.0069324 0.19784807 2.8308749 5.5814852 161964.99 1 2
-Loop time of 0.00771642 on 4 procs for 16 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 34000 503.19322 -3198.8767 0.050333006 3.2161315 0.28449966 275 577 6.0069324 0.19794118 2.8308749 5.5814852 161964.99 1 2
- 35000 513.68037 -3197.8169 0.26004762 417.98593 0.20782548 264 275 6.0069324 0.199 2.8308749 5.5814852 164995.25 1 2
-Loop time of 0.240164 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 35000 513.68037 -3197.8169 0.26004762 417.98593 0.20782548 264 275 6.0069324 0.199 2.8308749 5.5814852 164995.25 1 2
- 35015 513.68037 -3217.9147 0.26004762 417.98593 0.20782548 264 275 6.0069324 0.19891475 2.8308749 5.5814852 164995.25 1 2
-Loop time of 0.00711012 on 4 procs for 15 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 35000 513.68037 -3197.8169 0.26004762 417.98593 0.20782548 264 275 6.0069324 0.199 2.8308749 5.5814852 164995.25 1 2
- 36000 508.23462 -3199.0337 0.009260286 1.2397653 0.29720893 563 564 6.0069324 0.20069444 2.8308749 5.5814852 167465.14 1 2
-Loop time of 0.240289 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 36000 508.23462 -3199.0337 0.009260286 1.2397653 0.29720893 563 564 6.0069324 0.20069444 2.8308749 5.5814852 167465.14 1 2
- 36014 508.23462 -3217.9163 0.009260286 1.2397653 0.29720893 563 564 6.0069324 0.20061643 2.8308749 5.5814852 167465.14 1 2
-Loop time of 0.00642586 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 36000 508.23462 -3199.0337 0.009260286 1.2397653 0.29720893 563 564 6.0069324 0.20069444 2.8308749 5.5814852 167465.14 1 2
- 37000 500.95069 -3199.7129 0.024475083 1.764809 0.29256535 275 577 6.0069324 0.19783784 2.8308749 5.5814852 169290.01 1 2
-Loop time of 0.239462 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 37000 500.95069 -3199.7129 0.024475083 1.764809 0.29256535 275 577 6.0069324 0.19783784 2.8308749 5.5814852 169290.01 1 2
- 37015 500.95069 -3217.916 0.024475083 1.764809 0.29256535 275 577 6.0069324 0.19775767 2.8308749 5.5814852 169290.01 1 2
-Loop time of 0.00713468 on 4 procs for 15 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 37000 500.95069 -3199.7129 0.024475083 1.764809 0.29256535 275 577 6.0069324 0.19783784 2.8308749 5.5814852 169290.01 1 2
- 38000 495.41803 -3199.6385 0 1 1.0152866 262 275 6.0069324 0.21794737 2.8308749 5.5814852 169297.9 1 2
-Loop time of 0.239667 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 38000 495.41803 -3199.6385 0 1 1.0152866 262 275 6.0069324 0.21794737 2.8308749 5.5814852 169297.9 1 2
- 38013 495.41803 -3217.9157 0 1 1.0152866 262 275 6.0069324 0.21787283 2.8308749 5.5814852 169297.9 1 2
-Loop time of 0.00627661 on 4 procs for 13 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 38000 495.41803 -3199.6385 0.39298625 9143.7129 0.13878932 430 431 6.0069324 0.21794737 2.8308749 5.5814852 169297.9 2 4
- 39000 469.05202 -3196.0515 0.10638057 11.810485 0.26617945 408 415 6.0069324 0.21410256 2.8308749 5.5814852 175842.05 2 4
-Loop time of 0.238329 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 39000 469.05202 -3196.0515 0.10638057 11.810485 0.26617945 408 415 6.0069324 0.21410256 2.8308749 5.5814852 175842.05 2 4
- 39015 469.05202 -3217.917 0.10638057 11.810485 0.26617945 408 415 6.0069324 0.21402025 2.8308749 5.5814852 175842.05 2 4
-Loop time of 0.00683451 on 4 procs for 15 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 39000 469.05202 -3196.0515 0.10638057 11.810485 0.26617945 408 415 6.0069324 0.21410256 2.8308749 5.5814852 175842.05 2 4
- 40000 542.78328 -3198.4918 0.18612218 75.166934 0.2376931 567 560 6.0069324 0.214275 2.8308749 5.5814852 179412.45 2 4
-Loop time of 0.23954 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 40000 542.78328 -3198.4918 0.18612218 75.166934 0.2376931 567 560 6.0069324 0.214275 2.8308749 5.5814852 179412.45 2 4
- 40014 542.78328 -3217.9148 0.18612218 75.166934 0.2376931 567 560 6.0069324 0.21420003 2.8308749 5.5814852 179412.45 2 4
-Loop time of 0.00652599 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 40000 542.78328 -3198.4918 0.18612218 75.166934 0.2376931 567 560 6.0069324 0.214275 2.8308749 5.5814852 179412.45 2 4
- 41000 548.99015 -3197.5893 0.30318345 1137.4995 0.18822056 124 135 6.0069324 0.21114634 2.8308749 5.5814852 184564.49 2 4
-Loop time of 0.239863 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 41000 548.99015 -3197.5893 0.30318345 1137.4995 0.18822056 124 135 6.0069324 0.21114634 2.8308749 5.5814852 184564.49 2 4
- 41014 548.99015 -3217.9174 0.30318345 1137.4995 0.18822056 124 135 6.0069324 0.21107427 2.8308749 5.5814852 184564.49 2 4
-Loop time of 0.00668764 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 41000 548.99015 -3197.5893 0.30318345 1137.4995 0.18822056 124 135 6.0069324 0.21114634 2.8308749 5.5814852 184564.49 2 4
- 42000 492.4929 -3198.0535 0.31406773 1464.4003 0.18294209 262 264 6.0069324 0.20954762 2.8308749 5.5814852 187620.86 2 4
-Loop time of 0.238458 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 42000 492.4929 -3198.0535 0.31406773 1464.4003 0.18294209 262 264 6.0069324 0.20954762 2.8308749 5.5814852 187620.86 2 4
- 42014 492.4929 -3217.9154 0.31406773 1464.4003 0.18294209 262 264 6.0069324 0.20947779 2.8308749 5.5814852 187620.86 2 4
-Loop time of 0.00658375 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 42000 492.4929 -3198.0535 0.31406773 1464.4003 0.18294209 262 264 6.0069324 0.20954762 2.8308749 5.5814852 187620.86 2 4
- 43000 524.32334 -3199.9723 0.171134 53.082676 0.24330204 287 276 6.0069324 0.20893023 2.8308749 5.5814852 189618.98 2 4
-Loop time of 0.240476 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 43000 524.32334 -3199.9723 0.171134 53.082676 0.24330204 287 276 6.0069324 0.20893023 2.8308749 5.5814852 189618.98 2 4
- 43015 524.32334 -3217.9151 0.171134 53.082676 0.24330204 287 276 6.0069324 0.20885738 2.8308749 5.5814852 189618.98 2 4
-Loop time of 0.00655174 on 4 procs for 15 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 43000 524.32334 -3199.9723 0.171134 53.082676 0.24330204 287 276 6.0069324 0.20893023 2.8308749 5.5814852 189618.98 2 4
- 44000 490.60365 -3198.9839 0.12604882 18.642955 0.25944404 544 276 6.0069324 0.21018182 2.8308749 5.5814852 193452.76 2 4
-Loop time of 0.240179 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 44000 490.60365 -3198.9839 0.12604882 18.642955 0.25944404 544 276 6.0069324 0.21018182 2.8308749 5.5814852 193452.76 2 4
- 44015 490.60365 -3217.9148 0.12604882 18.642955 0.25944404 544 276 6.0069324 0.21011019 2.8308749 5.5814852 193452.76 2 4
-Loop time of 0.00717342 on 4 procs for 15 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 44000 490.60365 -3198.9839 0.12604882 18.642955 0.25944404 544 276 6.0069324 0.21018182 2.8308749 5.5814852 193452.76 2 4
- 45000 516.91704 -3198.746 0.30358614 1148.1804 0.18802791 114 120 6.0069324 0.2092 2.8308749 5.5814852 194591.87 2 4
-Loop time of 0.24121 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 45000 516.91704 -3198.746 0.30358614 1148.1804 0.18802791 114 120 6.0069324 0.2092 2.8308749 5.5814852 194591.87 2 4
- 45013 516.91704 -3217.9155 0.30358614 1148.1804 0.18802791 114 120 6.0069324 0.20913958 2.8308749 5.5814852 194591.87 2 4
-Loop time of 0.00649601 on 4 procs for 13 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 45000 516.91704 -3198.746 0.30358614 1148.1804 0.18802791 114 120 6.0069324 0.2092 2.8308749 5.5814852 194591.87 2 4
- 46000 511.1774 -3196.9369 0.25070338 336.49294 0.21183341 138 259 6.0069324 0.20769565 2.8308749 5.5814852 199937.52 2 4
-Loop time of 0.239441 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 46000 511.1774 -3196.9369 0.25070338 336.49294 0.21183341 138 259 6.0069324 0.20769565 2.8308749 5.5814852 199937.52 2 4
- 46015 511.1774 -3217.9159 0.25070338 336.49294 0.21183341 138 259 6.0069324 0.20762795 2.8308749 5.5814852 199937.52 2 4
-Loop time of 0.00681973 on 4 procs for 15 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 46000 511.1774 -3196.9369 0.25070338 336.49294 0.21183341 138 259 6.0069324 0.20769565 2.8308749 5.5814852 199937.52 2 4
- 47000 480.5069 -3198.8501 0.071646863 5.2743358 0.27767529 544 556 6.0069324 0.20602128 2.8308749 5.5814852 202107.88 2 4
-Loop time of 0.24022 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 47000 480.5069 -3198.8501 0.071646863 5.2743358 0.27767529 544 556 6.0069324 0.20602128 2.8308749 5.5814852 202107.88 2 4
- 47016 480.5069 -3217.9167 0.071646863 5.2743358 0.27767529 544 556 6.0069324 0.20595117 2.8308749 5.5814852 202107.88 2 4
-Loop time of 0.007438 on 4 procs for 16 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 47000 480.5069 -3198.8501 0.071646863 5.2743358 0.27767529 544 556 6.0069324 0.20602128 2.8308749 5.5814852 202107.88 2 4
- 48000 540.51895 -3198.5792 0.04754734 3.0147795 0.28537953 544 556 6.0069324 0.2085 2.8308749 5.5814852 202899.91 2 4
-Loop time of 0.241529 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 48000 540.51895 -3198.5792 0.04754734 3.0147795 0.28537953 544 556 6.0069324 0.2085 2.8308749 5.5814852 202899.91 2 4
- 48015 540.51895 -3217.9148 0.04754734 3.0147795 0.28537953 544 556 6.0069324 0.20843486 2.8308749 5.5814852 202899.91 2 4
-Loop time of 0.00695753 on 4 procs for 15 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 48000 540.51895 -3198.5792 0.04754734 3.0147795 0.28537953 544 556 6.0069324 0.2085 2.8308749 5.5814852 202899.91 2 4
- 49000 527.63013 -3199.0384 0.28400417 728.84104 0.19717822 544 577 6.0069324 0.20961224 2.8308749 5.5814852 210926.93 2 4
-Loop time of 0.241009 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 49000 527.63013 -3199.0384 0.28400417 728.84104 0.19717822 544 577 6.0069324 0.20961224 2.8308749 5.5814852 210926.93 2 4
- 49013 527.63013 -3217.9157 0.28400417 728.84104 0.19717822 544 577 6.0069324 0.20955665 2.8308749 5.5814852 210926.93 2 4
-Loop time of 0.00608408 on 4 procs for 13 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 49000 527.63013 -3199.0384 0.28400417 728.84104 0.19717822 544 577 6.0069324 0.20961224 2.8308749 5.5814852 210926.93 2 4
- 50000 516.69962 -3198.3346 0.35295929 3611.3455 0.16268782 266 243 6.0069324 0.20898 2.8308749 5.5814852 215664.98 2 4
-Loop time of 0.239941 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 50000 516.69962 -3198.3346 0.35295929 3611.3455 0.16268782 266 243 6.0069324 0.20898 2.8308749 5.5814852 215664.98 2 4
- 50013 516.69962 -3217.9156 0.35295929 3611.3455 0.16268782 266 243 6.0069324 0.20892568 2.8308749 5.5814852 215664.98 2 4
-Loop time of 0.00602353 on 4 procs for 13 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 50000 516.69962 -3198.3346 0.35295929 3611.3455 0.16268782 266 243 6.0069324 0.20898 2.8308749 5.5814852 215664.98 2 4
- 51000 533.05598 -3198.0432 0.17474232 57.719563 0.2419636 123 128 6.0069324 0.2065098 2.8308749 5.5814852 221609.1 2 4
-Loop time of 0.240274 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 51000 533.05598 -3198.0432 0.17474232 57.719563 0.2419636 123 128 6.0069324 0.2065098 2.8308749 5.5814852 221609.1 2 4
- 51015 533.05598 -3217.9143 0.17474232 57.719563 0.2419636 123 128 6.0069324 0.20644908 2.8308749 5.5814852 221609.1 2 4
-Loop time of 0.00743866 on 4 procs for 15 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 51000 533.05598 -3198.0432 0.17474232 57.719563 0.2419636 123 128 6.0069324 0.2065098 2.8308749 5.5814852 221609.1 2 4
- 52000 545.98999 -3198.2633 0 1 0.30964409 287 276 6.0069324 0.20332692 2.8308749 5.5814852 230246.21 2 4
-Loop time of 0.239709 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 52000 545.98999 -3198.2633 0 1 0.30964409 287 276 6.0069324 0.20332692 2.8308749 5.5814852 230246.21 2 4
- 52017 545.98999 -3217.9153 0 1 0.30964409 287 276 6.0069324 0.20326047 2.8308749 5.5814852 230246.21 2 4
-Loop time of 0.00786757 on 4 procs for 17 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 52000 545.98999 -3198.2633 0 1 0.30964409 287 276 6.0069324 0.20332692 2.8308749 5.5814852 230246.21 2 4
- 53000 453.58658 -3199.3577 0.23959479 260.0198 0.21650159 278 279 6.0069324 0.20366038 2.8308749 5.5814852 233492.88 2 4
-Loop time of 0.240351 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 53000 453.58658 -3199.3577 0.23959479 260.0198 0.21650159 278 279 6.0069324 0.20366038 2.8308749 5.5814852 233492.88 2 4
- 53014 453.58658 -3217.9131 0.23959479 260.0198 0.21650159 278 279 6.0069324 0.20360659 2.8308749 5.5814852 233492.88 2 4
-Loop time of 0.0067966 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 53000 453.58658 -3199.3577 0.23959479 260.0198 0.21650159 278 279 6.0069324 0.20366038 2.8308749 5.5814852 233492.88 2 4
- 54000 502.12681 -3199.1712 0.28827435 804.7747 0.19521941 550 563 6.0069324 0.20264815 2.8308749 5.5814852 239627.25 2 4
-Loop time of 0.238634 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 54000 502.12681 -3199.1712 0.28827435 804.7747 0.19521941 550 563 6.0069324 0.20264815 2.8308749 5.5814852 239627.25 2 4
- 54014 502.12681 -3217.9165 0.28827435 804.7747 0.19521941 550 563 6.0069324 0.20259562 2.8308749 5.5814852 239627.25 2 4
-Loop time of 0.00671387 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 54000 502.12681 -3199.1712 0.28827435 804.7747 0.19521941 550 563 6.0069324 0.20264815 2.8308749 5.5814852 239627.25 2 4
- 55000 470.7967 -3197.4136 0.31075641 1356.0734 0.18456394 285 283 6.0069324 0.20041818 2.8308749 5.5814852 246248.56 2 4
-Loop time of 0.240888 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 55000 470.7967 -3197.4136 0.31075641 1356.0734 0.18456394 285 283 6.0069324 0.20041818 2.8308749 5.5814852 246248.56 2 4
- 55013 470.7967 -3217.9136 0.31075641 1356.0734 0.18456394 285 283 6.0069324 0.20037082 2.8308749 5.5814852 246248.56 2 4
-Loop time of 0.00596166 on 4 procs for 13 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 55000 470.7967 -3197.4136 0.31075641 1356.0734 0.18456394 285 283 6.0069324 0.20041818 2.8308749 5.5814852 246248.56 2 4
- 56000 533.34641 -3198.1323 0.16761369 48.918113 0.24460077 287 276 6.0069324 0.19926786 2.8308749 5.5814852 252499.61 2 4
-Loop time of 0.239487 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 56000 533.34641 -3198.1323 0.16761369 48.918113 0.24460077 287 276 6.0069324 0.19926786 2.8308749 5.5814852 252499.61 2 4
- 56014 533.34641 -3217.9162 0.16761369 48.918113 0.24460077 287 276 6.0069324 0.19921805 2.8308749 5.5814852 252499.61 2 4
-Loop time of 0.00619745 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 56000 533.34641 -3198.1323 0.16761369 48.918113 0.24460077 287 276 6.0069324 0.19926786 2.8308749 5.5814852 252499.61 2 4
- 57000 516.06876 -3197.7671 0 1 0.33139119 287 276 6.0069324 0.19807018 2.8308749 5.5814852 255923.67 2 4
-Loop time of 0.241093 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 57000 516.06876 -3197.7671 0 1 0.33139119 287 276 6.0069324 0.19807018 2.8308749 5.5814852 255923.67 2 4
- 57016 516.06876 -3217.9146 0 1 0.33139119 287 276 6.0069324 0.19801459 2.8308749 5.5814852 255923.67 2 4
-Loop time of 0.00772929 on 4 procs for 16 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 57000 516.06876 -3197.7671 0 1 0.33139119 287 276 6.0069324 0.19807018 2.8308749 5.5814852 255923.67 2 4
- 58000 489.18902 -3198.6347 0.20937806 128.95422 0.22871806 544 276 6.0069324 0.20094828 2.8308749 5.5814852 256132.07 2 4
-Loop time of 0.239761 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 58000 489.18902 -3198.6347 0.20937806 128.95422 0.22871806 544 276 6.0069324 0.20094828 2.8308749 5.5814852 256132.07 2 4
- 58014 489.18902 -3217.9165 0.20937806 128.95422 0.22871806 544 276 6.0069324 0.20089978 2.8308749 5.5814852 256132.07 2 4
-Loop time of 0.00660753 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 58000 489.18902 -3198.6347 0.20937806 128.95422 0.22871806 544 276 6.0069324 0.20094828 2.8308749 5.5814852 256132.07 2 4
- 59000 522.75445 -3197.4454 0 1 0.91317104 274 556 6.0069324 0.20305085 2.8308749 5.5814852 259828.37 2 4
-Loop time of 0.241627 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 59000 522.75445 -3197.4454 0 1 0.91317104 274 556 6.0069324 0.20305085 2.8308749 5.5814852 259828.37 2 4
- 59013 522.75445 -3217.9138 0 1 0.91317104 274 556 6.0069324 0.20300612 2.8308749 5.5814852 259828.37 2 4
-Loop time of 0.00618345 on 4 procs for 13 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 59000 522.75445 -3197.4454 0.40114631 11050.253 0.1333929 547 548 6.0069324 0.20305085 2.8308749 5.5814852 259828.37 3 6
- 60000 552.18712 -3197.1906 0.21473769 146.03543 0.22659924 559 564 6.0069324 0.20126667 2.8308749 5.5814852 263208.58 3 6
-Loop time of 0.239681 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 60000 552.18712 -3197.1906 0.21473769 146.03543 0.22659924 559 564 6.0069324 0.20126667 2.8308749 5.5814852 263208.58 3 6
- 60015 552.18712 -3217.9157 0.21473769 146.03543 0.22659924 559 564 6.0069324 0.20121636 2.8308749 5.5814852 263208.58 3 6
-Loop time of 0.00685382 on 4 procs for 15 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 60000 552.18712 -3197.1906 0.21473769 146.03543 0.22659924 559 564 6.0069324 0.20126667 2.8308749 5.5814852 263208.58 3 6
- 61000 450.24979 -3197.259 0.20870055 126.94235 0.2289845 412 411 6.0069324 0.20103279 2.8308749 5.5814852 267126.63 3 6
-Loop time of 0.239598 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 61000 450.24979 -3197.259 0.20870055 126.94235 0.2289845 412 411 6.0069324 0.20103279 2.8308749 5.5814852 267126.63 3 6
- 61014 450.24979 -3217.9146 0.20870055 126.94235 0.2289845 412 411 6.0069324 0.20098666 2.8308749 5.5814852 267126.63 3 6
-Loop time of 0.00683248 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 61000 450.24979 -3197.259 0.20870055 126.94235 0.2289845 412 411 6.0069324 0.20103279 2.8308749 5.5814852 267126.63 3 6
- 62000 506.89399 -3197.4659 0.20762728 123.81933 0.22940595 256 267 6.0069324 0.20074194 2.8308749 5.5814852 270687.24 3 6
-Loop time of 0.238224 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 62000 506.89399 -3197.4659 0.20762728 123.81933 0.22940595 256 267 6.0069324 0.20074194 2.8308749 5.5814852 270687.24 3 6
- 62014 506.89399 -3217.9156 0.20762728 123.81933 0.22940595 256 267 6.0069324 0.20069662 2.8308749 5.5814852 270687.24 3 6
-Loop time of 0.00685287 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 62000 506.89399 -3197.4659 0.20762728 123.81933 0.22940595 256 267 6.0069324 0.20074194 2.8308749 5.5814852 270687.24 3 6
- 63000 510.04068 -3196.8255 0.063053561 4.320671 0.28044671 112 123 6.0069324 0.19930159 2.8308749 5.5814852 274694.1 3 6
-Loop time of 0.238676 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 63000 510.04068 -3196.8255 0.063053561 4.320671 0.28044671 112 123 6.0069324 0.19930159 2.8308749 5.5814852 274694.1 3 6
- 63014 510.04068 -3217.9141 0.063053561 4.320671 0.28044671 112 123 6.0069324 0.19925731 2.8308749 5.5814852 274694.1 3 6
-Loop time of 0.00670481 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 63000 510.04068 -3196.8255 0.063053561 4.320671 0.28044671 112 123 6.0069324 0.19930159 2.8308749 5.5814852 274694.1 3 6
- 64000 501.25574 -3197.7101 0.083024533 6.8683042 0.27396274 286 119 6.0069324 0.2 2.8308749 5.5814852 276114.67 3 6
-Loop time of 0.238342 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 64000 501.25574 -3197.7101 0.083024533 6.8683042 0.27396274 286 119 6.0069324 0.2 2.8308749 5.5814852 276114.67 3 6
- 64014 501.25574 -3217.9141 0.083024533 6.8683042 0.27396274 286 119 6.0069324 0.19995626 2.8308749 5.5814852 276114.67 3 6
-Loop time of 0.00604939 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 64000 501.25574 -3197.7101 0.083024533 6.8683042 0.27396274 286 119 6.0069324 0.2 2.8308749 5.5814852 276114.67 3 6
- 65000 476.31749 -3199.3383 0.15323867 35.04097 0.24983402 267 260 6.0069324 0.19838462 2.8308749 5.5814852 282281.34 3 6
-Loop time of 0.239458 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 65000 476.31749 -3199.3383 0.15323867 35.04097 0.24983402 267 260 6.0069324 0.19838462 2.8308749 5.5814852 282281.34 3 6
- 65014 476.31749 -3217.913 0.15323867 35.04097 0.24983402 267 260 6.0069324 0.1983419 2.8308749 5.5814852 282281.34 3 6
-Loop time of 0.00661784 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 65000 476.31749 -3199.3383 0.15323867 35.04097 0.24983402 267 260 6.0069324 0.19838462 2.8308749 5.5814852 282281.34 3 6
- 66000 515.81365 -3198.7056 0.21680106 153.19903 0.22577823 416 415 6.0069324 0.19919697 2.8308749 5.5814852 284618.61 3 6
-Loop time of 0.239712 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 66000 515.81365 -3198.7056 0.21680106 153.19903 0.22577823 416 415 6.0069324 0.19919697 2.8308749 5.5814852 284618.61 3 6
- 66014 515.81365 -3217.9165 0.21680106 153.19903 0.22577823 416 415 6.0069324 0.19915472 2.8308749 5.5814852 284618.61 3 6
-Loop time of 0.00680089 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 66000 515.81365 -3198.7056 0.21680106 153.19903 0.22577823 416 415 6.0069324 0.19919697 2.8308749 5.5814852 284618.61 3 6
- 67000 484.31519 -3197.7852 0.13298902 21.901246 0.25702524 275 567 6.0069324 0.19846269 2.8308749 5.5814852 289586.09 3 6
-Loop time of 0.239938 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 67000 484.31519 -3197.7852 0.13298902 21.901246 0.25702524 275 567 6.0069324 0.19846269 2.8308749 5.5814852 289586.09 3 6
- 67014 484.31519 -3217.9146 0.13298902 21.901246 0.25702524 275 567 6.0069324 0.19842123 2.8308749 5.5814852 289586.09 3 6
-Loop time of 0.00659657 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 67000 484.31519 -3197.7852 0.13298902 21.901246 0.25702524 275 567 6.0069324 0.19846269 2.8308749 5.5814852 289586.09 3 6
- 68000 484.02912 -3199.084 0.23443259 230.66083 0.21863699 412 423 6.0069324 0.19722059 2.8308749 5.5814852 298036.66 3 6
-Loop time of 0.240483 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 68000 484.02912 -3199.084 0.23443259 230.66083 0.21863699 412 423 6.0069324 0.19722059 2.8308749 5.5814852 298036.66 3 6
- 68014 484.02912 -3217.9156 0.23443259 230.66083 0.21863699 412 423 6.0069324 0.19717999 2.8308749 5.5814852 298036.66 3 6
-Loop time of 0.00666052 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 68000 484.02912 -3199.084 0.23443259 230.66083 0.21863699 412 423 6.0069324 0.19722059 2.8308749 5.5814852 298036.66 3 6
- 69000 516.84151 -3198.3447 0.20394137 113.66746 0.23084747 119 400 6.0069324 0.19605797 2.8308749 5.5814852 302894.58 3 6
-Loop time of 0.23984 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 69000 516.84151 -3198.3447 0.20394137 113.66746 0.23084747 119 400 6.0069324 0.19605797 2.8308749 5.5814852 302894.58 3 6
- 69015 516.84151 -3217.9163 0.20394137 113.66746 0.23084747 119 400 6.0069324 0.19601536 2.8308749 5.5814852 302894.58 3 6
-Loop time of 0.0070501 on 4 procs for 15 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 69000 516.84151 -3198.3447 0.20394137 113.66746 0.23084747 119 400 6.0069324 0.19605797 2.8308749 5.5814852 302894.58 3 6
- 70000 521.52008 -3198.1925 0.26533657 472.57625 0.2055223 128 139 6.0069324 0.19471429 2.8308749 5.5814852 308489.53 3 6
-Loop time of 0.240016 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 70000 521.52008 -3198.1925 0.26533657 472.57625 0.2055223 128 139 6.0069324 0.19471429 2.8308749 5.5814852 308489.53 3 6
- 70014 521.52008 -3217.9145 0.26533657 472.57625 0.2055223 128 139 6.0069324 0.19467535 2.8308749 5.5814852 308489.53 3 6
-Loop time of 0.00656152 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 70000 521.52008 -3198.1925 0.26533657 472.57625 0.2055223 128 139 6.0069324 0.19471429 2.8308749 5.5814852 308489.53 3 6
- 71000 456.91639 -3199.2364 0.030609593 2.0348424 0.29067211 555 275 6.0069324 0.19753521 2.8308749 5.5814852 308872.53 3 6
-Loop time of 0.238921 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 71000 456.91639 -3199.2364 0.030609593 2.0348424 0.29067211 555 275 6.0069324 0.19753521 2.8308749 5.5814852 308872.53 3 6
- 71016 456.91639 -3217.9154 0.030609593 2.0348424 0.29067211 555 275 6.0069324 0.19749071 2.8308749 5.5814852 308872.53 3 6
-Loop time of 0.00665921 on 4 procs for 16 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 71000 456.91639 -3199.2364 0.030609593 2.0348424 0.29067211 555 275 6.0069324 0.19753521 2.8308749 5.5814852 308872.53 3 6
- 72000 505.77427 -3198.8053 0.011213996 1.2972748 0.29661672 275 567 6.0069324 0.20022222 2.8308749 5.5814852 308922.44 3 6
-Loop time of 0.238494 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 72000 505.77427 -3198.8053 0.011213996 1.2972748 0.29661672 275 567 6.0069324 0.20022222 2.8308749 5.5814852 308922.44 3 6
- 72014 505.77427 -3217.9154 0.011213996 1.2972748 0.29661672 275 567 6.0069324 0.2001833 2.8308749 5.5814852 308922.44 3 6
-Loop time of 0.00666285 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 72000 505.77427 -3198.8053 0.011213996 1.2972748 0.29661672 275 567 6.0069324 0.20022222 2.8308749 5.5814852 308922.44 3 6
- 73000 505.42011 -3198.5745 0.241922 274.45031 0.21553199 262 544 6.0069324 0.19989041 2.8308749 5.5814852 312318.94 3 6
-Loop time of 0.240884 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 73000 505.42011 -3198.5745 0.241922 274.45031 0.21553199 262 544 6.0069324 0.19989041 2.8308749 5.5814852 312318.94 3 6
- 73014 505.42011 -3217.9145 0.241922 274.45031 0.21553199 262 544 6.0069324 0.19985208 2.8308749 5.5814852 312318.94 3 6
-Loop time of 0.00641418 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 73000 505.42011 -3198.5745 0.241922 274.45031 0.21553199 262 544 6.0069324 0.19989041 2.8308749 5.5814852 312318.94 3 6
- 74000 525.14325 -3197.1366 0.091100202 8.2841621 0.27129682 403 404 6.0069324 0.19893243 2.8308749 5.5814852 316054.12 3 6
-Loop time of 0.239838 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 74000 525.14325 -3197.1366 0.091100202 8.2841621 0.27129682 403 404 6.0069324 0.19893243 2.8308749 5.5814852 316054.12 3 6
- 74014 525.14325 -3217.9164 0.091100202 8.2841621 0.27129682 403 404 6.0069324 0.1988948 2.8308749 5.5814852 316054.12 3 6
-Loop time of 0.00640178 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 74000 525.14325 -3197.1366 0.091100202 8.2841621 0.27129682 403 404 6.0069324 0.19893243 2.8308749 5.5814852 316054.12 3 6
- 75000 529.75357 -3196.8628 0.27468673 587.107 0.20138617 262 553 6.0069324 0.1974 2.8308749 5.5814852 320757.39 3 6
-Loop time of 0.241485 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 75000 529.75357 -3196.8628 0.27468673 587.107 0.20138617 262 553 6.0069324 0.1974 2.8308749 5.5814852 320757.39 3 6
- 75015 529.75357 -3217.9131 0.27468673 587.107 0.20138617 262 553 6.0069324 0.19736053 2.8308749 5.5814852 320757.39 3 6
-Loop time of 0.00727272 on 4 procs for 15 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 75000 529.75357 -3196.8628 0.27468673 587.107 0.20138617 262 553 6.0069324 0.1974 2.8308749 5.5814852 320757.39 3 6
- 76000 494.67435 -3197.324 0.026840032 1.8643837 0.29183693 555 275 6.0069324 0.19744737 2.8308749 5.5814852 321584.51 3 6
-Loop time of 0.246189 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 76000 494.67435 -3197.324 0.026840032 1.8643837 0.29183693 555 275 6.0069324 0.19744737 2.8308749 5.5814852 321584.51 3 6
- 76015 494.67435 -3217.9124 0.026840032 1.8643837 0.29183693 555 275 6.0069324 0.19740841 2.8308749 5.5814852 321584.51 3 6
-Loop time of 0.00856209 on 4 procs for 15 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 76000 494.67435 -3197.324 0.026840032 1.8643837 0.29183693 555 275 6.0069324 0.19744737 2.8308749 5.5814852 321584.51 3 6
- 77000 478.4265 -3198.3778 0.099536255 10.075814 0.26848366 283 272 6.0069324 0.19802597 2.8308749 5.5814852 323214.67 3 6
-Loop time of 0.244489 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 77000 478.4265 -3198.3778 0.099536255 10.075814 0.26848366 283 272 6.0069324 0.19802597 2.8308749 5.5814852 323214.67 3 6
- 77014 478.4265 -3217.9158 0.099536255 10.075814 0.26848366 283 272 6.0069324 0.19798998 2.8308749 5.5814852 323214.67 3 6
-Loop time of 0.00662231 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 77000 478.4265 -3198.3778 0.099536255 10.075814 0.26848366 283 272 6.0069324 0.19802597 2.8308749 5.5814852 323214.67 3 6
- 78000 501.53059 -3199.1386 0.013408722 1.3650665 0.29595005 420 431 6.0069324 0.19646154 2.8308749 5.5814852 328321.34 3 6
-Loop time of 0.238902 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 78000 501.53059 -3199.1386 0.013408722 1.3650665 0.29595005 420 431 6.0069324 0.19646154 2.8308749 5.5814852 328321.34 3 6
- 78014 501.53059 -3217.9148 0.013408722 1.3650665 0.29595005 420 431 6.0069324 0.19642628 2.8308749 5.5814852 328321.34 3 6
-Loop time of 0.00632596 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 78000 501.53059 -3199.1386 0.013408722 1.3650665 0.29595005 420 431 6.0069324 0.19646154 2.8308749 5.5814852 328321.34 3 6
- 79000 500.93975 -3198.0923 0.116093 14.796691 0.26287499 428 543 6.0069324 0.19506329 2.8308749 5.5814852 333018.93 3 6
-Loop time of 0.238987 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 79000 500.93975 -3198.0923 0.116093 14.796691 0.26287499 428 543 6.0069324 0.19506329 2.8308749 5.5814852 333018.93 3 6
- 79014 500.93975 -3217.9148 0.116093 14.796691 0.26287499 428 543 6.0069324 0.19502873 2.8308749 5.5814852 333018.93 3 6
-Loop time of 0.00644779 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 79000 500.93975 -3198.0923 0.116093 14.796691 0.26287499 428 543 6.0069324 0.19506329 2.8308749 5.5814852 333018.93 3 6
- 80000 521.43512 -3199.0487 0.15540998 36.852069 0.2490506 253 136 6.0069324 0.193625 2.8308749 5.5814852 337716.24 3 6
-Loop time of 0.238806 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 80000 521.43512 -3199.0487 0.15540998 36.852069 0.2490506 253 136 6.0069324 0.193625 2.8308749 5.5814852 337716.24 3 6
- 80014 521.43512 -3217.9164 0.15540998 36.852069 0.2490506 253 136 6.0069324 0.19359112 2.8308749 5.5814852 337716.24 3 6
-Loop time of 0.00644064 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 80000 521.43512 -3199.0487 0.15540998 36.852069 0.2490506 253 136 6.0069324 0.193625 2.8308749 5.5814852 337716.24 3 6
- 81000 533.69561 -3197.1168 0.24520241 296.1616 0.21415781 575 280 6.0069324 0.19222222 2.8308749 5.5814852 343062.81 3 6
-Loop time of 0.240714 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 81000 533.69561 -3197.1168 0.24520241 296.1616 0.21415781 575 280 6.0069324 0.19222222 2.8308749 5.5814852 343062.81 3 6
- 81015 533.69561 -3217.9142 0.24520241 296.1616 0.21415781 575 280 6.0069324 0.19218663 2.8308749 5.5814852 343062.81 3 6
-Loop time of 0.00675607 on 4 procs for 15 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 81000 533.69561 -3197.1168 0.24520241 296.1616 0.21415781 575 280 6.0069324 0.19222222 2.8308749 5.5814852 343062.81 3 6
- 82000 522.58314 -3197.6951 0.34607713 3078.2225 0.16645154 569 570 6.0069324 0.19130488 2.8308749 5.5814852 347897.31 3 6
-Loop time of 0.239094 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 82000 522.58314 -3197.6951 0.34607713 3078.2225 0.16645154 569 570 6.0069324 0.19130488 2.8308749 5.5814852 347897.31 3 6
- 82014 522.58314 -3217.917 0.34607713 3078.2225 0.16645154 569 570 6.0069324 0.19127222 2.8308749 5.5814852 347897.31 3 6
-Loop time of 0.00662041 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 82000 522.58314 -3197.6951 0.34607713 3078.2225 0.16645154 569 570 6.0069324 0.19130488 2.8308749 5.5814852 347897.31 3 6
- 83000 518.24081 -3196.6457 0.27556929 599.25687 0.20099136 512 523 6.0069324 0.18978313 2.8308749 5.5814852 355870.51 3 6
-Loop time of 0.240335 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 83000 518.24081 -3196.6457 0.27556929 599.25687 0.20099136 512 523 6.0069324 0.18978313 2.8308749 5.5814852 355870.51 3 6
- 83015 518.24081 -3217.9151 0.27556929 599.25687 0.20099136 512 523 6.0069324 0.18974884 2.8308749 5.5814852 355870.51 3 6
-Loop time of 0.00710487 on 4 procs for 15 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 83000 518.24081 -3196.6457 0.27556929 599.25687 0.20099136 512 523 6.0069324 0.18978313 2.8308749 5.5814852 355870.51 3 6
- 84000 524.77376 -3198.1195 0.32714869 1983.8549 0.17638944 275 567 6.0069324 0.189 2.8308749 5.5814852 358623.76 3 6
-Loop time of 0.239069 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 84000 524.77376 -3198.1195 0.32714869 1983.8549 0.17638944 275 567 6.0069324 0.189 2.8308749 5.5814852 358623.76 3 6
- 84014 524.77376 -3217.9145 0.32714869 1983.8549 0.17638944 275 567 6.0069324 0.18896851 2.8308749 5.5814852 358623.76 3 6
-Loop time of 0.00662088 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 84000 524.77376 -3198.1195 0.32714869 1983.8549 0.17638944 275 567 6.0069324 0.189 2.8308749 5.5814852 358623.76 3 6
- 85000 485.77334 -3199.2545 0.0027767134 1.0665667 0.29916583 275 567 6.0069324 0.19102353 2.8308749 5.5814852 362933.93 3 6
-Loop time of 0.240117 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 85000 485.77334 -3199.2545 0.0027767134 1.0665667 0.29916583 275 567 6.0069324 0.19102353 2.8308749 5.5814852 362933.93 3 6
- 85014 485.77334 -3217.9148 0.0027767134 1.0665667 0.29916583 275 567 6.0069324 0.19099207 2.8308749 5.5814852 362933.93 3 6
-Loop time of 0.00642967 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 85000 485.77334 -3199.2545 0.0027767134 1.0665667 0.29916583 275 567 6.0069324 0.19102353 2.8308749 5.5814852 362933.93 3 6
- 86000 520.32504 -3197.8586 0.34074416 2719.857 0.16931052 572 403 6.0069324 0.19181395 2.8308749 5.5814852 366756.98 3 6
-Loop time of 0.23899 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 86000 520.32504 -3197.8586 0.34074416 2719.857 0.16931052 572 403 6.0069324 0.19181395 2.8308749 5.5814852 366756.98 3 6
- 86014 520.32504 -3217.9156 0.34074416 2719.857 0.16931052 572 403 6.0069324 0.19178273 2.8308749 5.5814852 366756.98 3 6
-Loop time of 0.00667548 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 86000 520.32504 -3197.8586 0.34074416 2719.857 0.16931052 572 403 6.0069324 0.19181395 2.8308749 5.5814852 366756.98 3 6
- 87000 492.06505 -3198.9245 0.35508545 3794.0215 0.16150733 282 284 6.0069324 0.19096552 2.8308749 5.5814852 370757.69 3 6
-Loop time of 0.241176 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 87000 492.06505 -3198.9245 0.35508545 3794.0215 0.16150733 282 284 6.0069324 0.19096552 2.8308749 5.5814852 370757.69 3 6
- 87014 492.06505 -3217.9141 0.35508545 3794.0215 0.16150733 282 284 6.0069324 0.19093479 2.8308749 5.5814852 370757.69 3 6
-Loop time of 0.00634283 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 87000 492.06505 -3198.9245 0.35508545 3794.0215 0.16150733 282 284 6.0069324 0.19096552 2.8308749 5.5814852 370757.69 3 6
- 88000 519.1972 -3199.3527 0.27684477 617.26171 0.20041941 411 416 6.0069324 0.19025 2.8308749 5.5814852 375119.46 3 6
-Loop time of 0.239888 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 88000 519.1972 -3199.3527 0.27684477 617.26171 0.20041941 411 416 6.0069324 0.19025 2.8308749 5.5814852 375119.46 3 6
- 88014 519.1972 -3217.9152 0.27684477 617.26171 0.20041941 411 416 6.0069324 0.19021974 2.8308749 5.5814852 375119.46 3 6
-Loop time of 0.00669366 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 88000 519.1972 -3199.3527 0.27684477 617.26171 0.20041941 411 416 6.0069324 0.19025 2.8308749 5.5814852 375119.46 3 6
- 89000 524.26014 -3198.5355 0.3001416 1059.9631 0.18966948 432 431 6.0069324 0.19220225 2.8308749 5.5814852 375708.76 3 6
-Loop time of 0.241238 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 89000 524.26014 -3198.5355 0.3001416 1059.9631 0.18966948 432 431 6.0069324 0.19220225 2.8308749 5.5814852 375708.76 3 6
- 89014 524.26014 -3217.9158 0.3001416 1059.9631 0.18966948 432 431 6.0069324 0.19217202 2.8308749 5.5814852 375708.76 3 6
-Loop time of 0.00632095 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 89000 524.26014 -3198.5355 0.3001416 1059.9631 0.18966948 432 431 6.0069324 0.19220225 2.8308749 5.5814852 375708.76 3 6
- 90000 498.11952 -3200.0434 0.2737435 574.39407 0.20180726 96 141 6.0069324 0.19212222 2.8308749 5.5814852 380021.68 3 6
-Loop time of 0.240092 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 90000 498.11952 -3200.0434 0.2737435 574.39407 0.20180726 96 141 6.0069324 0.19212222 2.8308749 5.5814852 380021.68 3 6
- 90013 498.11952 -3217.9105 0.2737435 574.39407 0.20180726 96 141 6.0069324 0.19209448 2.8308749 5.5814852 380021.68 3 6
-Loop time of 0.00614023 on 4 procs for 13 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 90000 498.11952 -3200.0434 0.2737435 574.39407 0.20180726 96 141 6.0069324 0.19212222 2.8308749 5.5814852 380021.68 3 6
- 91000 518.719 -3198.4974 0 1 0.38452588 128 139 6.0069324 0.19137363 2.8308749 5.5814852 386325.64 3 6
-Loop time of 0.240887 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 91000 518.719 -3198.4974 0 1 0.38452588 128 139 6.0069324 0.19137363 2.8308749 5.5814852 386325.64 3 6
- 91015 518.719 -3217.9166 0 1 0.38452588 128 139 6.0069324 0.19134209 2.8308749 5.5814852 386325.64 3 6
-Loop time of 0.00709724 on 4 procs for 15 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 91000 518.719 -3198.4974 0 1 0.38452588 128 139 6.0069324 0.19137363 2.8308749 5.5814852 386325.64 3 6
- 92000 489.88256 -3197.3306 0.22381505 180.28261 0.22296478 554 556 6.0069324 0.19186957 2.8308749 5.5814852 387621.28 3 6
-Loop time of 0.241415 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 92000 489.88256 -3197.3306 0.22381505 180.28261 0.22296478 554 556 6.0069324 0.19186957 2.8308749 5.5814852 387621.28 3 6
- 92014 489.88256 -3217.9165 0.22381505 180.28261 0.22296478 554 556 6.0069324 0.19184037 2.8308749 5.5814852 387621.28 3 6
-Loop time of 0.00761282 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 92000 489.88256 -3197.3306 0.22381505 180.28261 0.22296478 554 556 6.0069324 0.19186957 2.8308749 5.5814852 387621.28 3 6
- 93000 470.86218 -3199.1842 0 1 0.35506745 275 567 6.0069324 0.19339785 2.8308749 5.5814852 388253.6 3 6
-Loop time of 0.242326 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 93000 470.86218 -3199.1842 0 1 0.35506745 275 567 6.0069324 0.19339785 2.8308749 5.5814852 388253.6 3 6
- 93015 470.86218 -3217.9141 0 1 0.35506745 275 567 6.0069324 0.19336666 2.8308749 5.5814852 388253.6 3 6
-Loop time of 0.006814 on 4 procs for 15 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 93000 470.86218 -3199.1842 0 1 0.35506745 275 567 6.0069324 0.19339785 2.8308749 5.5814852 388253.6 3 6
- 94000 500.15102 -3200.7696 0.21997392 164.90621 0.2245099 547 552 6.0069324 0.19425532 2.8308749 5.5814852 390879.44 3 6
-Loop time of 0.239427 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 94000 500.15102 -3200.7696 0.21997392 164.90621 0.2245099 547 552 6.0069324 0.19425532 2.8308749 5.5814852 390879.44 3 6
- 94014 500.15102 -3217.9143 0.21997392 164.90621 0.2245099 547 552 6.0069324 0.19422639 2.8308749 5.5814852 390879.44 3 6
-Loop time of 0.00671053 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 94000 500.15102 -3200.7696 0.21997392 164.90621 0.2245099 547 552 6.0069324 0.19425532 2.8308749 5.5814852 390879.44 3 6
- 95000 490.13908 -3196.2455 0.24009629 263.06397 0.21629301 404 411 6.0069324 0.19329474 2.8308749 5.5814852 393723.55 3 6
-Loop time of 0.240334 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 95000 490.13908 -3196.2455 0.24009629 263.06397 0.21629301 404 411 6.0069324 0.19329474 2.8308749 5.5814852 393723.55 3 6
- 95014 490.13908 -3217.9156 0.24009629 263.06397 0.21629301 404 411 6.0069324 0.19326626 2.8308749 5.5814852 393723.55 3 6
-Loop time of 0.00659347 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 95000 490.13908 -3196.2455 0.24009629 263.06397 0.21629301 404 411 6.0069324 0.19329474 2.8308749 5.5814852 393723.55 3 6
- 96000 487.33226 -3198.9357 0 1 0.37635306 275 567 6.0069324 0.19283333 2.8308749 5.5814852 397503.57 3 6
-Loop time of 0.239501 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 96000 487.33226 -3198.9357 0 1 0.37635306 275 567 6.0069324 0.19283333 2.8308749 5.5814852 397503.57 3 6
- 96016 487.33226 -3217.9155 0 1 0.37635306 275 567 6.0069324 0.1928012 2.8308749 5.5814852 397503.57 3 6
-Loop time of 0.00752759 on 4 procs for 16 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 96000 487.33226 -3198.9357 0 1 0.37635306 275 567 6.0069324 0.19283333 2.8308749 5.5814852 397503.57 3 6
- 97000 474.12539 -3199.8196 0.35035926 3399.8667 0.16411988 543 577 6.0069324 0.19291753 2.8308749 5.5814852 402607.83 3 6
-Loop time of 0.241445 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 97000 474.12539 -3199.8196 0.35035926 3399.8667 0.16411988 543 577 6.0069324 0.19291753 2.8308749 5.5814852 402607.83 3 6
- 97014 474.12539 -3217.9109 0.35035926 3399.8667 0.16411988 543 577 6.0069324 0.19288969 2.8308749 5.5814852 402607.83 3 6
-Loop time of 0.00657606 on 4 procs for 14 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 97000 474.12539 -3199.8196 0.35035926 3399.8667 0.16411988 543 577 6.0069324 0.19291753 2.8308749 5.5814852 402607.83 3 6
- 98000 529.81368 -3198.9595 0.31966379 1667.4989 0.18016803 219 257 6.0069324 0.19226531 2.8308749 5.5814852 408103.05 3 6
-Loop time of 0.239002 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 98000 529.81368 -3198.9595 0.31966379 1667.4989 0.18016803 219 257 6.0069324 0.19226531 2.8308749 5.5814852 408103.05 3 6
- 98013 529.81368 -3217.9152 0.31966379 1667.4989 0.18016803 219 257 6.0069324 0.1922398 2.8308749 5.5814852 408103.05 3 6
-Loop time of 0.00612688 on 4 procs for 13 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 98000 529.81368 -3198.9595 0.31966379 1667.4989 0.18016803 219 257 6.0069324 0.19226531 2.8308749 5.5814852 408103.05 3 6
- 99000 521.70465 -3199.4429 0.069318452 4.9968747 0.27842895 404 399 6.0069324 0.19121212 2.8308749 5.5814852 410506.47 3 6
-Loop time of 0.239787 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 99000 521.70465 -3199.4429 0.069318452 4.9968747 0.27842895 404 399 6.0069324 0.19121212 2.8308749 5.5814852 410506.47 3 6
- 99015 521.70465 -3217.9162 0.069318452 4.9968747 0.27842895 404 399 6.0069324 0.19118315 2.8308749 5.5814852 410506.47 3 6
-Loop time of 0.00708294 on 4 procs for 15 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 99000 521.70465 -3199.4429 0.069318452 4.9968747 0.27842895 404 399 6.0069324 0.19121212 2.8308749 5.5814852 410506.47 3 6
- 100000 513.67972 -3199.6382 0.37912459 6628.3181 0.14750449 554 556 6.0069324 0.19018 2.8308749 5.5814852 415873.98 3 6
-Loop time of 0.239291 on 4 procs for 1000 steps with 577 atoms
-
-Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11]
- 100000 513.67972 -3199.6382 0.37912459 6628.3181 0.14750449 554 556 6.0069324 0.19018 2.8308749 5.5814852 415873.98 3 6
- 100015 513.67972 -3217.9139 0.37912459 6628.3181 0.14750449 554 556 6.0069324 0.19015148 2.8308749 5.5814852 415873.98 3 6
-Loop time of 0.00685054 on 4 procs for 15 steps with 577 atoms
-
-Final hyper stats ...
-
-Cummulative quantities for fix hyper:
- hyper time = 415874
- event timesteps = 3
- # of atoms in events = 6
-Quantities for this hyper run:
- event timesteps = 3
- # of atoms in events = 6
- max length of any bond = 5.58149
- max drift distance of any atom = 2.83087
- fraction of steps & bonds with zero bias = 0.19018
-Current quantities:
- ave bonds/atom = 6.00693
-
-Loop time of 25.9832 on 4 procs for 100000 steps with 577 atoms
-
-Performance: 1662.613 ns/day, 0.014 hours/ns, 3848.641 timesteps/s
-100.4% CPU use with 4 MPI tasks x no OpenMP threads
-
-Hyper stats:
- Dynamics time (%) = 24.8121 (95.4928)
- Quench time (%) = 0.715868 (2.75512)
- Other time (%) = 0.879782 (3.38596)
-
-MPI task timing breakdown:
-Section | min time | avg time | max time |%varavg| %total
----------------------------------------------------------------
-Pair | 17.954 | 18.433 | 18.794 | 8.4 | 70.94
-Neigh | 1.4147 | 1.4662 | 1.5092 | 2.9 | 5.64
-Comm | 2.0975 | 2.2026 | 2.3076 | 5.6 | 8.48
-Output | 0.0030999 | 0.0031937 | 0.003444 | 0.3 | 0.01
-Modify | 2.6366 | 2.9984 | 3.4835 | 19.3 | 11.54
-Other | | 0.8798 | | | 3.39
-
-Nlocal: 144.25 ave 150 max 139 min
-Histogram: 1 0 1 0 0 0 1 0 0 1
-Nghost: 533.25 ave 538 max 527 min
-Histogram: 1 0 0 0 1 0 0 0 1 1
-Neighs: 3359.25 ave 3495 max 3245 min
-Histogram: 1 0 1 0 0 1 0 0 0 1
-
-Total # of neighbors = 13437
-Ave neighs/atom = 23.2877
-Neighbor list builds = 10069
-Dangerous builds = 0
-Total wall time: 0:00:26
diff --git a/examples/hyper/log.10Oct18.hyper.local.g++.16 b/examples/hyper/log.10Oct18.hyper.local.g++.16
deleted file mode 100644
index 480fcf0248..0000000000
--- a/examples/hyper/log.10Oct18.hyper.local.g++.16
+++ /dev/null
@@ -1,993 +0,0 @@
-LAMMPS (10 Oct 2018)
-# 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 1500
-variable nevent index 100
-variable nx index 8
-variable ny index 8
-variable zoom index 1.8
-variable seed index 826626413
-variable tol index 1.0e-15
-variable add index 37K
-
-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 4 by 2 MPI processor grid
-create_atoms 1 box
-Created 576 atoms
- Time spent = 0.00108504 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 8 ${ny} 1
-replicate 8 8 1
- orthogonal box = (0 0 -0.392) to (188.16 188.16 19.6)
- 4 by 4 by 1 MPI processor grid
- 36864 atoms
- Time spent = 0.0028758 secs
-
-# add adatoms
-
-include adatoms.list.${add}
-include adatoms.list.37K
-create_atoms 1 single 27.5 9.5 4
-Created 1 atoms
- Time spent = 0.000183105 secs
-create_atoms 1 single 16 9 4
-Created 1 atoms
- Time spent = 0.000178099 secs
-create_atoms 1 single 10 12 4
-Created 1 atoms
- Time spent = 0.000179768 secs
-create_atoms 1 single 31 44 4
-Created 1 atoms
- Time spent = 0.000184059 secs
-create_atoms 1 single 13 17 4
-Created 1 atoms
- Time spent = 0.000173807 secs
-create_atoms 1 single 8.5 28.5 4
-Created 1 atoms
- Time spent = 0.000167847 secs
-create_atoms 1 single 23 26 4
-Created 1 atoms
- Time spent = 0.000179052 secs
-create_atoms 1 single 38 27 4
-Created 1 atoms
- Time spent = 0.000169992 secs
-create_atoms 1 single 37.5 4.5 4
-Created 1 atoms
- Time spent = 0.000166178 secs
-create_atoms 1 single 41.5 47.5 4
-Created 1 atoms
- Time spent = 0.000172138 secs
-create_atoms 1 single 20.5 37.5 4
-Created 1 atoms
- Time spent = 0.000165939 secs
-create_atoms 1 single 5 8 4
-Created 1 atoms
- Time spent = 0.00018096 secs
-create_atoms 1 single 2.5 16.5 4
-Created 1 atoms
- Time spent = 0.000165939 secs
-create_atoms 1 single 38.5 45.5 4
-Created 1 atoms
- Time spent = 0.000164986 secs
-create_atoms 1 single 9 0 4
-Created 1 atoms
- Time spent = 0.000168085 secs
-create_atoms 1 single 39 32 4
-Created 1 atoms
- Time spent = 0.000170946 secs
-create_atoms 1 single 45.5 11.5 4
-Created 1 atoms
- Time spent = 0.00018096 secs
-create_atoms 1 single 40 0 4
-Created 1 atoms
- Time spent = 0.000168085 secs
-create_atoms 1 single 44.5 2.5 4
-Created 1 atoms
- Time spent = 0.000165939 secs
-create_atoms 1 single 4.5 44.5 4
-Created 1 atoms
- Time spent = 0.000168085 secs
-create_atoms 1 single 24.5 13.5 4
-Created 1 atoms
- Time spent = 0.000165939 secs
-create_atoms 1 single 47.5 23.5 4
-Created 1 atoms
- Time spent = 0.00018096 secs
-create_atoms 1 single 1 20 4
-Created 1 atoms
- Time spent = 0.000166893 secs
-create_atoms 1 single 38.5 31.5 4
-Created 1 atoms
- Time spent = 0.000168085 secs
-create_atoms 1 single 12.5 12.5 4
-Created 1 atoms
- Time spent = 0.000169992 secs
-create_atoms 1 single 2 27 4
-Created 1 atoms
- Time spent = 0.000188828 secs
-create_atoms 1 single 21 5 4
-Created 1 atoms
- Time spent = 0.000174999 secs
-create_atoms 1 single 47 12 4
-Created 1 atoms
- Time spent = 0.000164986 secs
-create_atoms 1 single 32.5 46.5 4
-Created 1 atoms
- Time spent = 0.000165939 secs
-create_atoms 1 single 9.5 40.5 4
-Created 1 atoms
- Time spent = 0.000166893 secs
-create_atoms 1 single 8.5 2.5 4
-Created 1 atoms
- Time spent = 0.000164986 secs
-create_atoms 1 single 41.5 22.5 4
-Created 1 atoms
- Time spent = 0.000174046 secs
-create_atoms 1 single 29 11 4
-Created 1 atoms
- Time spent = 0.000166893 secs
-create_atoms 1 single 3.5 3.5 4
-Created 1 atoms
- Time spent = 0.000165224 secs
-create_atoms 1 single 5 21 4
-Created 1 atoms
- Time spent = 0.000164986 secs
-create_atoms 1 single 46.5 31.5 4
-Created 1 atoms
- Time spent = 0.000166178 secs
-create_atoms 1 single 35 46 4
-Created 1 atoms
- Time spent = 0.000183105 secs
-create_atoms 1 single 40.5 41.5 4
-Created 1 atoms
- Time spent = 0.000164986 secs
-create_atoms 1 single 10 22 4
-Created 1 atoms
- Time spent = 0.000164986 secs
-create_atoms 1 single 43.5 14.5 4
-Created 1 atoms
- Time spent = 0.000169992 secs
-create_atoms 1 single 42 42 4
-Created 1 atoms
- Time spent = 0.000165939 secs
-create_atoms 1 single 4 26 4
-Created 1 atoms
- Time spent = 0.000174999 secs
-create_atoms 1 single 19 34 4
-Created 1 atoms
- Time spent = 0.000163078 secs
-create_atoms 1 single 33 9 4
-Created 1 atoms
- Time spent = 0.000164986 secs
-create_atoms 1 single 0.5 45.5 4
-Created 1 atoms
- Time spent = 0.000163078 secs
-create_atoms 1 single 30.5 32.5 4
-Created 1 atoms
- Time spent = 0.000164986 secs
-create_atoms 1 single 25.5 5.5 4
-Created 1 atoms
- Time spent = 0.000178099 secs
-create_atoms 1 single 47.5 39.5 4
-Created 1 atoms
- Time spent = 0.000165939 secs
-create_atoms 1 single 15 13 4
-Created 1 atoms
- Time spent = 0.000164986 secs
-create_atoms 1 single 21 21 4
-Created 1 atoms
- Time spent = 0.000164986 secs
-create_atoms 1 single 14 28 4
-Created 1 atoms
- Time spent = 0.000164986 secs
-create_atoms 1 single 9 34 4
-Created 1 atoms
- Time spent = 0.000174999 secs
-create_atoms 1 single 7 38 4
-Created 1 atoms
- Time spent = 0.000175953 secs
-create_atoms 1 single 11 35 4
-Created 1 atoms
- Time spent = 0.000154972 secs
-create_atoms 1 single 20.5 45.5 4
-Created 1 atoms
- Time spent = 0.000156879 secs
-create_atoms 1 single 30.5 31.5 4
-Created 1 atoms
- Time spent = 0.000159979 secs
-create_atoms 1 single 32.5 2.5 4
-Created 1 atoms
- Time spent = 0.000166178 secs
-create_atoms 1 single 21.5 3.5 4
-Created 1 atoms
- Time spent = 0.000157833 secs
-create_atoms 1 single 23 12 4
-Created 1 atoms
- Time spent = 0.000155926 secs
-create_atoms 1 single 4.5 33.5 4
-Created 1 atoms
- Time spent = 0.000156879 secs
-create_atoms 1 single 46 43 4
-Created 1 atoms
- Time spent = 0.000155926 secs
-create_atoms 1 single 42.5 45.5 4
-Created 1 atoms
- Time spent = 0.000156879 secs
-create_atoms 1 single 4.5 10.5 4
-Created 1 atoms
- Time spent = 0.000158072 secs
-create_atoms 1 single 33.5 15.5 4
-Created 1 atoms
- Time spent = 0.000157833 secs
-create_atoms 1 single 24 5 4
-Created 1 atoms
- Time spent = 0.000154018 secs
-create_atoms 1 single 13 16 4
-Created 1 atoms
- Time spent = 0.000158072 secs
-create_atoms 1 single 16.5 23.5 4
-Created 1 atoms
- Time spent = 0.000156164 secs
-create_atoms 1 single 45.5 28.5 4
-Created 1 atoms
- Time spent = 0.000247002 secs
-create_atoms 1 single 44.5 5.5 4
-Created 1 atoms
- Time spent = 0.000156164 secs
-create_atoms 1 single 27.5 46.5 4
-Created 1 atoms
- Time spent = 0.000155926 secs
-create_atoms 1 single 44.5 12.5 4
-Created 1 atoms
- Time spent = 0.000157833 secs
-create_atoms 1 single 12 41 4
-Created 1 atoms
- Time spent = 0.000156879 secs
-create_atoms 1 single 6 4 4
-Created 1 atoms
- Time spent = 0.0001688 secs
-create_atoms 1 single 31.5 10.5 4
-Created 1 atoms
- Time spent = 0.00015521 secs
-create_atoms 1 single 1 44 4
-Created 1 atoms
- Time spent = 0.000154972 secs
-create_atoms 1 single 31 4 4
-Created 1 atoms
- Time spent = 0.000156879 secs
-create_atoms 1 single 21 33 4
-Created 1 atoms
- Time spent = 0.000156879 secs
-create_atoms 1 single 3 33 4
-Created 1 atoms
- Time spent = 0.000164032 secs
-create_atoms 1 single 15 10 4
-Created 1 atoms
- Time spent = 0.0001719 secs
-create_atoms 1 single 28.5 22.5 4
-Created 1 atoms
- Time spent = 0.000153065 secs
-create_atoms 1 single 43 1 4
-Created 1 atoms
- Time spent = 0.000155926 secs
-create_atoms 1 single 3.5 0.5 4
-Created 1 atoms
- Time spent = 0.000154972 secs
-create_atoms 1 single 41 37 4
-Created 1 atoms
- Time spent = 0.000153065 secs
-create_atoms 1 single 18.5 43.5 4
-Created 1 atoms
- Time spent = 0.000213146 secs
-create_atoms 1 single 17 27 4
-Created 1 atoms
- Time spent = 0.000159979 secs
-create_atoms 1 single 3 5 4
-Created 1 atoms
- Time spent = 0.000153065 secs
-create_atoms 1 single 18.5 23.5 4
-Created 1 atoms
- Time spent = 0.000154972 secs
-create_atoms 1 single 31.5 14.5 4
-Created 1 atoms
- Time spent = 0.000154972 secs
-create_atoms 1 single 41 31 4
-Created 1 atoms
- Time spent = 0.000155926 secs
-create_atoms 1 single 22 3 4
-Created 1 atoms
- Time spent = 0.00015521 secs
-create_atoms 1 single 14.5 40.5 4
-Created 1 atoms
- Time spent = 0.000154018 secs
-create_atoms 1 single 9 38 4
-Created 1 atoms
- Time spent = 0.000154018 secs
-create_atoms 1 single 36 42 4
-Created 1 atoms
- Time spent = 0.000155926 secs
-create_atoms 1 single 33 22 4
-Created 1 atoms
- Time spent = 0.000163078 secs
-create_atoms 1 single 15.5 47.5 4
-Created 1 atoms
- Time spent = 0.000154972 secs
-create_atoms 1 single 3 0 4
-Created 1 atoms
- Time spent = 0.000154972 secs
-create_atoms 1 single 25.5 27.5 4
-Created 1 atoms
- Time spent = 0.000176907 secs
-create_atoms 1 single 2.5 28.5 4
-Created 1 atoms
- Time spent = 0.000154972 secs
-create_atoms 1 single 29.5 28.5 4
-Created 1 atoms
- Time spent = 0.000162125 secs
-create_atoms 1 single 44.5 18.5 4
-Created 1 atoms
- Time spent = 0.000152826 secs
-create_atoms 1 single 26 40 4
-Created 1 atoms
- Time spent = 0.000155926 secs
-create_atoms 1 single 41 27 4
-Created 1 atoms
- Time spent = 0.000158072 secs
-create_atoms 1 single 39.5 5.5 4
-Created 1 atoms
- Time spent = 0.000155926 secs
-create_atoms 1 single 3 38 4
-Created 1 atoms
- Time spent = 0.000152826 secs
-create_atoms 1 single 35 29 4
-Created 1 atoms
- Time spent = 0.000164986 secs
-create_atoms 1 single 11 19 4
-Created 1 atoms
- Time spent = 0.000164986 secs
-create_atoms 1 single 18 1 4
-Created 1 atoms
- Time spent = 0.000146866 secs
-create_atoms 1 single 39.5 40.5 4
-Created 1 atoms
- Time spent = 0.000146866 secs
-create_atoms 1 single 46 17 4
-Created 1 atoms
- Time spent = 0.000146151 secs
-create_atoms 1 single 1.5 23.5 4
-Created 1 atoms
- Time spent = 0.000154018 secs
-create_atoms 1 single 28.5 23.5 4
-Created 1 atoms
- Time spent = 0.000145912 secs
-create_atoms 1 single 10 28 4
-Created 1 atoms
- Time spent = 0.000159979 secs
-create_atoms 1 single 19 47 4
-Created 1 atoms
- Time spent = 0.000148058 secs
-create_atoms 1 single 10.5 16.5 4
-Created 1 atoms
- Time spent = 0.000147104 secs
-create_atoms 1 single 38 45 4
-Created 1 atoms
- Time spent = 0.000144958 secs
-create_atoms 1 single 42.5 41.5 4
-Created 1 atoms
- Time spent = 0.000161886 secs
-create_atoms 1 single 47.5 42.5 4
-Created 1 atoms
- Time spent = 0.000147104 secs
-create_atoms 1 single 38 7 4
-Created 1 atoms
- Time spent = 0.000146151 secs
-create_atoms 1 single 10 44 4
-Created 1 atoms
- Time spent = 0.000145912 secs
-create_atoms 1 single 29.5 27.5 4
-Created 1 atoms
- Time spent = 0.000146151 secs
-create_atoms 1 single 45 30 4
-Created 1 atoms
- Time spent = 0.000145912 secs
-create_atoms 1 single 3 9 4
-Created 1 atoms
- Time spent = 0.000154018 secs
-create_atoms 1 single 8.5 35.5 4
-Created 1 atoms
- Time spent = 0.000146151 secs
-create_atoms 1 single 24 44 4
-Created 1 atoms
- Time spent = 0.000145912 secs
-create_atoms 1 single 47 4 4
-Created 1 atoms
- Time spent = 0.000144958 secs
-create_atoms 1 single 7.5 8.5 4
-Created 1 atoms
- Time spent = 0.000144958 secs
-create_atoms 1 single 32.5 41.5 4
-Created 1 atoms
- Time spent = 0.000157833 secs
-create_atoms 1 single 0.5 34.5 4
-Created 1 atoms
- Time spent = 0.000145912 secs
-create_atoms 1 single 11 8 4
-Created 1 atoms
- Time spent = 0.000147104 secs
-create_atoms 1 single 2 40 4
-Created 1 atoms
- Time spent = 0.000144958 secs
-create_atoms 1 single 25 24 4
-Created 1 atoms
- Time spent = 0.000146151 secs
-create_atoms 1 single 47.5 6.5 4
-Created 1 atoms
- Time spent = 0.000147104 secs
-create_atoms 1 single 39.5 28.5 4
-Created 1 atoms
- Time spent = 0.000154972 secs
-create_atoms 1 single 17 21 4
-Created 1 atoms
- Time spent = 0.000164032 secs
-create_atoms 1 single 32 43 4
-Created 1 atoms
- Time spent = 0.000146151 secs
-create_atoms 1 single 16.5 29.5 4
-Created 1 atoms
- Time spent = 0.000146151 secs
-create_atoms 1 single 34 34 4
-Created 1 atoms
- Time spent = 0.000145912 secs
-create_atoms 1 single 11.5 3.5 4
-Created 1 atoms
- Time spent = 0.000154018 secs
-create_atoms 1 single 39 22 4
-Created 1 atoms
- Time spent = 0.000144958 secs
-create_atoms 1 single 24.5 36.5 4
-Created 1 atoms
- Time spent = 0.000144958 secs
-create_atoms 1 single 33 31 4
-Created 1 atoms
- Time spent = 0.000144958 secs
-create_atoms 1 single 35.5 35.5 4
-Created 1 atoms
- Time spent = 0.000146151 secs
-create_atoms 1 single 14.5 34.5 4
-Created 1 atoms
- Time spent = 0.000146866 secs
-create_atoms 1 single 34 28 4
-Created 1 atoms
- Time spent = 0.000153065 secs
-create_atoms 1 single 37 41 4
-Created 1 atoms
- Time spent = 0.000145912 secs
-create_atoms 1 single 33 46 4
-Created 1 atoms
- Time spent = 0.000144958 secs
-create_atoms 1 single 27.5 28.5 4
-Created 1 atoms
- Time spent = 0.000145197 secs
-create_atoms 1 single 40.5 22.5 4
-Created 1 atoms
- Time spent = 0.000150919 secs
-create_atoms 1 single 27.5 1.5 4
-Created 1 atoms
- Time spent = 0.000146151 secs
-create_atoms 1 single 12 2 4
-Created 1 atoms
- Time spent = 0.000151873 secs
-create_atoms 1 single 36 43 4
-Created 1 atoms
- Time spent = 0.000144005 secs
-create_atoms 1 single 28.5 9.5 4
-Created 1 atoms
- Time spent = 0.000146151 secs
-create_atoms 1 single 20.5 25.5 4
-Created 1 atoms
- Time spent = 0.000144958 secs
-create_atoms 1 single 3 3 4
-Created 1 atoms
- Time spent = 0.000144005 secs
-create_atoms 1 single 38 33 4
-Created 1 atoms
- Time spent = 0.000146151 secs
-create_atoms 1 single 3 20 4
-Created 1 atoms
- Time spent = 0.000154972 secs
-create_atoms 1 single 35 11 4
-Created 1 atoms
- Time spent = 0.000145912 secs
-create_atoms 1 single 5 25 4
-Created 1 atoms
- Time spent = 0.000144005 secs
-create_atoms 1 single 36.5 6.5 4
-Created 1 atoms
- Time spent = 0.000144005 secs
-create_atoms 1 single 19.5 24.5 4
-Created 1 atoms
- Time spent = 0.000236988 secs
-create_atoms 1 single 27 41 4
-Created 1 atoms
- Time spent = 0.000169992 secs
-create_atoms 1 single 39.5 11.5 4
-Created 1 atoms
- Time spent = 0.000138998 secs
-create_atoms 1 single 21.5 2.5 4
-Created 1 atoms
- Time spent = 0.000136852 secs
-create_atoms 1 single 46.5 15.5 4
-Created 1 atoms
- Time spent = 0.000138998 secs
-create_atoms 1 single 13 24 4
-Created 1 atoms
- Time spent = 0.000137091 secs
-create_atoms 1 single 11 37 4
-Created 1 atoms
- Time spent = 0.000144005 secs
-create_atoms 1 single 11.5 31.5 4
-Created 1 atoms
- Time spent = 0.000144958 secs
-create_atoms 1 single 47 0 4
-Created 1 atoms
- Time spent = 0.000138044 secs
-create_atoms 1 single 25.5 17.5 4
-Created 1 atoms
- Time spent = 0.00014019 secs
-create_atoms 1 single 32 11 4
-Created 1 atoms
- Time spent = 0.000138044 secs
-create_atoms 1 single 8 17 4
-Created 1 atoms
- Time spent = 0.000138044 secs
-create_atoms 1 single 27.5 12.5 4
-Created 1 atoms
- Time spent = 0.000137806 secs
-create_atoms 1 single 25 7 4
-Created 1 atoms
- Time spent = 0.000146151 secs
-create_atoms 1 single 25.5 37.5 4
-Created 1 atoms
- Time spent = 0.000139952 secs
-create_atoms 1 single 12 15 4
-Created 1 atoms
- Time spent = 0.000138044 secs
-create_atoms 1 single 1 7 4
-Created 1 atoms
- Time spent = 0.000138998 secs
-create_atoms 1 single 18.5 47.5 4
-Created 1 atoms
- Time spent = 0.000138044 secs
-create_atoms 1 single 5 38 4
-Created 1 atoms
- Time spent = 0.000136852 secs
-create_atoms 1 single 42 19 4
-Created 1 atoms
- Time spent = 0.000149012 secs
-create_atoms 1 single 30.5 7.5 4
-Created 1 atoms
- Time spent = 0.000138044 secs
-create_atoms 1 single 42.5 7.5 4
-Created 1 atoms
- Time spent = 0.000138998 secs
-create_atoms 1 single 26.5 18.5 4
-Created 1 atoms
- Time spent = 0.000153065 secs
-create_atoms 1 single 18.5 1.5 4
-Created 1 atoms
- Time spent = 0.000137091 secs
-create_atoms 1 single 41.5 10.5 4
-Created 1 atoms
- Time spent = 0.000140905 secs
-
-# define frozen substrate and mobile atoms
-
-region base block INF INF INF INF 0 1.8
-set region base type 2
- 18432 settings made for type
-group base type 2
-18432 atoms in group base
-group mobile type 1
-18616 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 826626413 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:488)
-
-# 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 = 62 62 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.359 | 3.359 | 3.36 Mbytes
-Step Temp E_pair E_mol TotEng Press
- 0 0 -206220.22 0 -206220.22 -52155.664
- 100 188.18127 -206044.43 0 -205591.63 -25068.83
- 200 274.34464 -205860.78 0 -205200.66 -40191.797
- 300 325.66286 -205750.01 0 -204966.4 -31510.222
- 400 352.48242 -205675.42 0 -204827.28 -35058.064
- 500 370.88571 -205619.66 0 -204727.25 -32735.022
- 600 388.62129 -205592.87 0 -204657.78 -33904.556
- 700 389.54874 -205579.73 0 -204642.4 -32769.852
- 800 395.56074 -205576.82 0 -204625.03 -33755.948
- 900 398.03458 -205564.48 0 -204606.74 -32777.103
- 1000 401.24089 -205562.85 0 -204597.4 -33785.341
-Loop time of 4.3687 on 16 procs for 1000 steps with 37048 atoms
-
-Performance: 98.885 ns/day, 0.243 hours/ns, 228.901 timesteps/s
-98.4% CPU use with 16 MPI tasks x no OpenMP threads
-
-MPI task timing breakdown:
-Section | min time | avg time | max time |%varavg| %total
----------------------------------------------------------------
-Pair | 3.2988 | 3.3828 | 3.4667 | 2.3 | 77.43
-Neigh | 0.20856 | 0.23127 | 0.24382 | 1.9 | 5.29
-Comm | 0.33313 | 0.45075 | 0.55485 | 9.2 | 10.32
-Output | 0.00042987 | 0.00044042 | 0.00049591 | 0.0 | 0.01
-Modify | 0.18811 | 0.28363 | 0.36798 | 9.7 | 6.49
-Other | | 0.01983 | | | 0.45
-
-Nlocal: 2315.5 ave 2332 max 2297 min
-Histogram: 2 0 0 3 4 0 2 1 2 2
-Nghost: 3186.31 ave 3205 max 3170 min
-Histogram: 2 1 3 0 2 3 2 1 0 2
-Neighs: 55590.9 ave 56174 max 55103 min
-Histogram: 2 2 1 1 4 1 3 0 0 2
-
-Total # of neighbors = 889454
-Ave neighs/atom = 24.0082
-Neighbor list builds = 105
-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:705)
-
-thermo_modify lost ignore
-thermo_modify temp tmobile
-WARNING: Temperature for thermo pressure is not for group all (../thermo.cpp:488)
-
-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 1500 ${nevent} HL event min ${tol} ${tol} 1000 1000 dump 1
-hyper 1500 100 HL event min ${tol} ${tol} 1000 1000 dump 1
-hyper 1500 100 HL event min 1.0e-15 ${tol} 1000 1000 dump 1
-hyper 1500 100 HL event min 1.0e-15 1.0e-15 1000 1000 dump 1
-WARNING: Resetting reneighboring criteria during hyper (../hyper.cpp:133)
-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 = 62 62 7
- 2 neighbor lists, perpetual/occasional/extra = 1 1 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
-Per MPI rank memory allocation (min/avg/max) = 7.566 | 7.567 | 7.567 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]
- 0 401.24089 -205562.85 0 0 0 1 0 0 0 0 0 0 0 0 4e+19 0 0 0 0 0 0 0 0 0 0 0
- 77 401.24089 -206534.96 0 0 0 1 0 0 0 0 0 0 0 0 4e+19 0 0 0 0 0 0 0 1540 0 0 0
-Loop time of 0.540347 on 16 procs for 77 steps with 37048 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]
- 0 401.24089 -205562.85 23.271302 74 0.18753621 1 6.0138739 703.62325 0 0.55802338 3.5350432 0 0 0 4e+19 10.115141 10.115141 0 0 0 0 0 0 0 0 0
- 100 399.15639 -205546.21 22.904368 90 0.32935524 0.39929142 6.0138739 703.62325 0.026229865 0.91517139 3.9968927 91.88 0.3995539 0.4009724 0.39695676 10.262823 10.262823 0 0 0 0 0 2000 0 0 0
-Loop time of 0.579085 on 16 procs for 100 steps with 37048 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]
- 100 399.15639 -205546.21 22.904368 90 0.32935524 0.39929142 6.0138739 703.62325 0.026229865 0.91517139 3.9968927 91.88 0.3995539 0.4009724 0.39695676 10.262823 10.262823 0 0 0 0 0 2000 0 0 0
- 184 399.15639 -206534.96 22.904368 90 0.32935524 0.39929142 6.0138739 703.62325 0.026229865 0.91517139 3.9968927 49.934783 0.21714886 0.4009724 0.39695676 10.262823 10.262823 0 0 0 0 0 3680 0 0 0
-Loop time of 0.556056 on 16 procs for 84 steps with 37048 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]
- 100 399.15639 -205546.21 22.903938 90 0.32935524 0.39929142 6.0138739 703.62325 0.026229865 0.91517139 3.9968927 91.88 0.3995539 0.4009724 0.39695676 10.262823 10.262823 0 0 0 0 0 2000 0 0 0
- 200 403.01717 -205543.17 20.844359 90 0.3291605 0.39888693 6.0138739 703.62325 0.039527213 0.94418421 4.0368484 90.95 0.39930574 0.4019706 0.39554353 10.262823 10.262823 0 0 0 0 0 4000 0 0 0
-Loop time of 0.581214 on 16 procs for 100 steps with 37048 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]
- 200 403.01717 -205543.17 20.844359 90 0.3291605 0.39888693 6.0138739 703.62325 0.039527213 0.94418421 4.0368484 90.95 0.39930574 0.4019706 0.39554353 10.262823 10.262823 0 0 0 0 0 4000 0 0 0
- 275 403.01717 -206534.96 20.844359 90 0.3291605 0.39888693 6.0138739 703.62325 0.039527213 0.94418421 4.0368484 66.145455 0.29040418 0.4019706 0.39554353 10.262823 10.262823 0 0 0 0 0 5500 0 0 0
-Loop time of 0.481812 on 16 procs for 75 steps with 37048 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]
- 200 403.01717 -205543.17 21.115577 91 0.3291605 0.39888693 6.0138739 703.62325 0.039527213 0.94418421 4.0368484 90.95 0.39930574 0.4019706 0.39554353 10.262823 10.262823 0 0 0 0 0 4000 0 0 0
- 300 399.01963 -205541.46 19.137336 85 0.32442182 0.39862755 6.0138739 703.62325 0.046873868 0.94776891 4.0368484 92.02 0.39912484 0.40296919 0.39497622 10.288936 10.288936 0 0 0 0 0 6000 0 0 0
-Loop time of 0.5757 on 16 procs for 100 steps with 37048 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]
- 300 399.01963 -205541.46 19.137336 85 0.32442182 0.39862755 6.0138739 703.62325 0.046873868 0.94776891 4.0368484 92.02 0.39912484 0.40296919 0.39497622 10.288936 10.288936 0 0 0 0 0 6000 0 0 0
- 377 399.01963 -206534.96 19.137336 85 0.32442182 0.39862755 6.0138739 703.62325 0.046873868 0.94776891 4.0368484 73.225464 0.31760598 0.40296919 0.39497622 10.288936 10.288936 0 0 0 0 0 7540 0 0 0
-Loop time of 0.514907 on 16 procs for 77 steps with 37048 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]
- 300 399.01963 -205541.46 19.137003 85 0.32442182 0.39862755 6.0138739 703.62325 0.046873868 0.94776891 4.0368484 92.02 0.39912484 0.40296919 0.39497622 10.288936 10.288936 0 0 0 0 0 6000 0 0 0
- 400 398.15351 -205544.87 20.470844 93 0.34589451 0.39828754 6.0138739 703.62325 0.049952465 0.94776891 4.0779385 92.0375 0.39894967 0.40395328 0.3932824 10.307052 10.307052 0 0 0 0 0 8000 0 0 0
-Loop time of 0.577371 on 16 procs for 100 steps with 37048 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]
- 400 398.15351 -205544.87 20.470844 93 0.34589451 0.39828754 6.0138739 703.62325 0.049952465 0.94776891 4.0779385 92.0375 0.39894967 0.40395328 0.3932824 10.307052 10.307052 0 0 0 0 0 8000 0 0 0
- 471 398.15351 -206534.96 20.470844 93 0.34589451 0.39828754 6.0138739 703.62325 0.049952465 0.94776891 4.0779385 78.163482 0.33881076 0.40395328 0.3932824 10.307052 10.307052 0 0 0 0 0 9420 0 0 0
-Loop time of 0.465473 on 16 procs for 71 steps with 37048 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]
- 400 398.15351 -205544.87 20.470689 93 0.34589451 0.39828754 6.0138739 703.62325 0.049952465 0.94776891 4.0779385 92.0375 0.39894967 0.40395328 0.3932824 10.307052 10.307052 0 0 0 0 0 8000 0 0 0
- 500 400.29399 -205544.98 17.051242 83 0.42140172 0.39805251 6.0138739 703.62325 0.056986933 1.0907861 4.0779385 91.986 0.39879563 0.40493836 0.39165573 10.307052 10.307052 0 0 0 0 0 10000 0 0 0
-Loop time of 0.579188 on 16 procs for 100 steps with 37048 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]
- 500 400.29399 -205544.98 17.051242 83 0.42140172 0.39805251 6.0138739 703.62325 0.056986933 1.0907861 4.0779385 91.986 0.39879563 0.40493836 0.39165573 10.307052 10.307052 0 0 0 0 0 10000 0 0 0
- 577 400.29399 -206534.96 17.051242 83 0.42140172 0.39805251 6.0138739 703.62325 0.056986933 1.0910651 4.0779385 79.710572 0.3455768 0.40493836 0.39165573 10.307052 10.307052 0 0 0 0 0 11540 0 0 0
-Loop time of 0.502193 on 16 procs for 77 steps with 37048 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]
- 500 400.29399 -205544.98 17.051107 83 0.42140172 0.39805251 6.0138739 703.62325 0.056986933 1.0910651 4.0779385 91.986 0.39879563 0.40493836 0.39165573 10.307052 10.307052 0 0 0 0 0 10000 0 0 0
- 600 400.96099 -205544.56 20.904479 91 0.41219484 0.39780769 6.0138739 703.62325 0.061331691 1.1358732 4.0779385 92.013333 0.39864794 0.40593806 0.39067432 10.307052 10.307052 0 0 0 0 0 12000 0 0 0
-Loop time of 0.694955 on 16 procs for 100 steps with 37048 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]
- 600 400.96099 -205544.56 20.904479 91 0.41219484 0.39780769 6.0138739 703.62325 0.061331691 1.1358732 4.0779385 92.013333 0.39864794 0.40593806 0.39067432 10.307052 10.307052 0 0 0 0 0 12000 0 0 0
- 680 400.96099 -206534.96 20.904479 91 0.41219484 0.39780769 6.0138739 703.62325 0.061331691 1.1358732 4.0779385 81.188235 0.35174818 0.40593806 0.39067432 10.307052 10.307052 0 0 0 0 0 13600 0 0 0
-Loop time of 0.529041 on 16 procs for 80 steps with 37048 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]
- 600 400.96099 -205544.56 20.904088 91 0.41219484 0.39780769 6.0138739 703.62325 0.061331691 1.1358732 4.0779385 92.013333 0.39864794 0.40593806 0.39067432 10.307052 10.307052 0 0 0 0 0 12000 0 0 0
- 700 397.78618 -205534.96 20.361513 95 0.54466603 0.39757442 6.0138739 703.62325 0.061146951 1.1853748 4.1995704 92.12 0.39850836 0.40693553 0.38981834 10.307052 10.307052 0 0 0 0 0 14000 0 0 0
-Loop time of 0.590093 on 16 procs for 100 steps with 37048 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]
- 700 397.78618 -205534.96 20.361513 95 0.54466603 0.39757442 6.0138739 703.62325 0.061146951 1.2139704 4.1995704 92.12 0.39850836 0.40693553 0.38981834 10.307052 10.307052 0 0 0 0 0 14000 0 0 0
- 790 397.78618 -206534.96 20.361513 95 0.54466603 0.39757442 6.0138739 703.62325 0.061146951 2.2107138 4.1995704 81.625316 0.35310868 0.40693553 0.38981834 10.307052 10.307052 0 0 0 0 0 15800 0 0 0
-Loop time of 0.594281 on 16 procs for 90 steps with 37048 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]
- 700 397.78618 -205534.96 20.236364 94 0.51088027 0.39757442 6.0138739 703.62325 0.061146951 2.2107138 4.205089 92.12 0.39850836 0.40693553 0.38981834 10.307052 10.307052 0 0 0 0 0 14000 1 2 6
- 800 399.66919 -205547.44 21.285461 94 0.56079766 0.39739855 6.0138739 703.62325 0.06556778 2.2107138 4.3041291 92.36625 0.3983806 0.40793368 0.38875 10.307052 10.385797 0 0 0 0 0 16000 1 2 6
-Loop time of 0.583824 on 16 procs for 100 steps with 37048 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]
- 800 399.66919 -205547.44 21.285461 94 0.56079766 0.39739855 6.0138739 703.62325 0.06556778 2.2107138 4.3041291 92.36625 0.3983806 0.40793368 0.38875 10.307052 10.385797 0 0 0 0 0 16000 1 2 6
- 872 399.66919 -206535.54 21.285461 94 0.56079766 0.39739855 6.0138739 703.62325 0.06556778 2.3177682 4.3041291 84.739679 0.36548679 0.40793368 0.38875 10.307052 10.385797 0 0 0 0 0 17440 1 2 6
-Loop time of 0.46886 on 16 procs for 72 steps with 37048 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]
- 800 399.66919 -205547.44 21.2852 94 0.44964213 0.39739855 6.0138739 703.62325 0.06556778 2.3177682 4.3041291 92.36625 0.3983806 0.40793368 0.38875 10.307052 10.385797 0 0 0 0 0 16000 2 4 13
- 900 401.5853 -205544.22 19.308189 94 0.47610389 0.39719191 6.0138739 703.62325 0.066991886 2.3177682 4.3041291 92.017778 0.39825974 0.40893337 0.3878576 10.307052 10.385797 0 0 0 0 0 18000 2 4 13
-Loop time of 0.585137 on 16 procs for 100 steps with 37048 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]
- 900 401.5853 -205544.22 19.308189 94 0.47610389 0.39719191 6.0138739 703.62325 0.066991886 2.3177682 4.3041291 92.017778 0.39825974 0.40893337 0.3878576 10.307052 10.385797 0 0 0 0 0 18000 2 4 13
- 975 401.5853 -206535.54 19.308189 94 0.47610389 0.39719191 6.0138739 703.62325 0.066991886 2.3177682 4.3041291 84.939487 0.36762438 0.40893337 0.3878576 10.307052 10.385797 0 0 0 0 0 19500 2 4 13
-Loop time of 0.502012 on 16 procs for 75 steps with 37048 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]
- 900 401.5853 -205544.22 19.307938 94 0.47610389 0.39719191 6.0138739 703.62325 0.066991886 2.3177682 4.3041291 92.017778 0.39825974 0.40893337 0.3878576 10.307052 10.385797 0 0 0 0 0 18000 2 4 13
- 1000 395.06218 -205526.35 17.514295 91 0.42044925 0.39716259 6.0138739 703.62325 0.067937867 2.3177682 4.3041291 92.511 0.39814962 0.40993184 0.3867545 10.307052 10.385797 0 0 0 0 0 20000 2 4 13
-Loop time of 0.588597 on 16 procs for 100 steps with 37048 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]
- 1000 395.06218 -205526.35 17.514295 91 0.42044925 0.39716259 6.0138739 703.62325 0.067937867 2.3177682 4.3041291 92.511 0.39814962 0.40993184 0.3867545 10.307052 10.385797 0 0 0 0 0 20000 2 4 13
- 1083 395.06218 -206535.54 17.514295 91 0.42044925 0.39716259 6.0138739 703.62325 0.067937867 2.3177682 4.3041291 85.421053 0.36763584 0.40993184 0.3867545 10.307052 10.385797 0 0 0 0 0 21660 2 4 13
-Loop time of 0.543222 on 16 procs for 83 steps with 37048 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]
- 1000 395.06218 -205526.35 17.514191 91 0.42044925 0.39716259 6.0138739 703.62325 0.067937867 2.3177682 4.3041291 92.511 0.39814962 0.40993184 0.3867545 10.307052 10.385797 0 0 0 0 0 20000 2 4 13
- 1100 400.04484 -205545.92 19.52012 89 0.58919981 0.39704631 6.0138739 703.62325 0.069136967 2.3177682 4.4265979 92.517273 0.39805636 0.41093134 0.38574293 10.307052 10.385797 0 0 0 0 0 22000 2 4 13
-Loop time of 0.590075 on 16 procs for 100 steps with 37048 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]
- 1100 400.04484 -205545.92 19.52012 89 0.58919981 0.39704631 6.0138739 703.62325 0.069136967 2.3177682 4.4265979 92.517273 0.39805636 0.41093134 0.38574293 10.307052 10.385797 0 0 0 0 0 22000 2 4 13
- 1177 400.04484 -206535.53 19.52012 89 0.58919981 0.39704631 6.0138739 703.62325 0.069136967 2.3177682 4.4265979 86.464741 0.37201529 0.41093134 0.38574293 10.307052 10.385797 0 0 0 0 0 23540 2 4 13
-Loop time of 0.500839 on 16 procs for 77 steps with 37048 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]
- 1100 400.04484 -205545.92 19.518413 89 0.429675 0.39705701 6.0137119 703.6043 0.069136967 2.3177682 4.4265979 92.517273 0.39805636 0.41093134 0.38574293 10.307052 10.385797 0 0 0 0 0 22000 3 6 19
- 1200 400.7462 -205543.2 21.169548 91 0.32511134 0.39679665 6.0137119 703.6043 0.06750442 2.3177682 4.4265979 92.376667 0.39796198 0.41191655 0.3846039 10.307052 10.385797 0 0 0 0 0 24000 3 6 19
-Loop time of 0.583971 on 16 procs for 100 steps with 37048 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]
- 1200 400.7462 -205543.2 21.169548 91 0.32511134 0.39679665 6.0137119 703.6043 0.06750442 2.3177682 4.4265979 92.376667 0.39796198 0.41191655 0.3846039 10.307052 10.385797 0 0 0 0 0 24000 3 6 19
- 1277 400.7462 -206535.53 21.169548 91 0.32511134 0.39679665 6.0137119 703.6043 0.06750442 2.3177682 4.4265979 86.806578 0.37396584 0.41191655 0.3846039 10.307052 10.385797 0 0 0 0 0 25540 3 6 19
-Loop time of 0.509118 on 16 procs for 77 steps with 37048 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]
- 1200 400.7462 -205543.2 21.169281 91 0.32511134 0.39679665 6.0137119 703.6043 0.06750442 2.3177682 4.4265979 92.376667 0.39796198 0.41191655 0.3846039 10.307052 10.385797 0 0 0 0 0 24000 3 6 19
- 1300 398.53702 -205539.33 21.35815 94 0.38773898 0.39659935 6.0137119 703.6043 0.067808168 2.3177682 4.4265979 92.500769 0.39786514 0.41289519 0.3846039 10.307052 10.385797 0 0 0 0 0 26000 3 6 19
-Loop time of 0.587306 on 16 procs for 100 steps with 37048 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]
- 1300 398.53702 -205539.33 21.35815 94 0.38773898 0.39659935 6.0137119 703.6043 0.067808168 2.3177682 4.4265979 92.500769 0.39786514 0.41289519 0.3846039 10.307052 10.385797 0 0 0 0 0 26000 3 6 19
- 1375 398.53702 -206535.53 21.35815 94 0.38773898 0.39659935 6.0137119 703.6043 0.067808168 2.3177682 4.4265979 87.455273 0.37616341 0.41289519 0.3846039 10.307052 10.385797 0 0 0 0 0 27500 3 6 19
-Loop time of 0.483781 on 16 procs for 75 steps with 37048 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]
- 1300 398.53702 -205539.33 21.35787 94 0.38773898 0.39659935 6.0137119 703.6043 0.067808168 2.3177682 4.4265979 92.500769 0.39786514 0.41289519 0.3846039 10.307052 10.385797 0 0 0 0 0 26000 3 6 19
- 1400 402.80537 -205549.3 19.481887 95 0.32554201 0.39648737 6.0137119 703.6043 0.069550538 2.3177682 4.4265979 92.666429 0.39776836 0.41389491 0.38420043 10.307052 10.385797 0 0 0 0 0 28000 3 6 19
-Loop time of 0.586411 on 16 procs for 100 steps with 37048 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]
- 1400 402.80537 -205549.3 19.481887 95 0.32554201 0.39648737 6.0137119 703.6043 0.069550538 2.3177682 4.4265979 92.666429 0.39776836 0.41389491 0.38420043 10.307052 10.385797 0 0 0 0 0 28000 3 6 19
- 1471 402.80537 -206535.53 19.481887 95 0.32554201 0.39648737 6.0137119 703.6043 0.069550538 2.3177682 4.4265979 88.193746 0.37856948 0.41389491 0.38420043 10.307052 10.385797 0 0 0 0 0 29420 3 6 19
-Loop time of 0.473799 on 16 procs for 71 steps with 37048 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]
- 1400 402.80537 -205549.3 19.481632 95 0.32554201 0.39648737 6.0137119 703.6043 0.069550538 2.3177682 4.4265979 92.666429 0.39776836 0.41389491 0.38420043 10.307052 10.385797 0 0 0 0 0 28000 3 6 19
- 1500 402.0803 -205537.7 20.903964 99 0.3340498 0.39635609 6.0137119 703.6043 0.070409086 2.3177682 4.4265979 92.857333 0.39767858 0.41489448 0.38372784 10.333041 10.385797 0 0 0 0 0 30000 3 6 19
-Loop time of 0.587342 on 16 procs for 100 steps with 37048 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]
- 1500 402.0803 -205537.7 20.903964 99 0.3340498 0.39635609 6.0137119 703.6043 0.070409086 2.3177682 4.4265979 92.857333 0.39767858 0.41489448 0.38372784 10.333041 10.385797 0 0 0 0 0 30000 3 6 19
- 1574 402.0803 -206535.53 20.903964 99 0.3340498 0.39635609 6.0137119 703.6043 0.070409086 2.3177682 4.4265979 88.491741 0.37898213 0.41489448 0.38372784 10.333041 10.385797 0 0 0 0 0 31480 3 6 19
-Loop time of 0.493982 on 16 procs for 74 steps with 37048 atoms
-
-Final hyper stats ...
-
-Cummulative quantities for fix hyper:
- hyper time = 30000
- event timesteps = 3
- # of atoms in events = 6
-Quantities for this hyper run:
- event timesteps = 3
- # of atoms in events = 6
- max length of any bond = 4.4266
- max drift distance of any atom = 2.31777
- fraction of steps & bonds with zero bias = 0.0704091
-Current quantities:
- ave bonds/atom = 6.01371
-Cummulative quantities specific tofix hyper/local:
- # of new bonds formed = 19
- max bonds/atom = 13
-Quantities for this hyper run specific to fix hyper/local:
- ave boosted bonds/step = 92.8573
- ave boost coeff of all bonds = 0.397679
- max boost coeff of any bond = 0.414894
- min boost coeff of any bond = 0.383728
- max dist from my box of any non-maxstrain bond ghost atom = 10.333
- max dist from my box of any bond ghost atom = 10.3858
- count of ghost bond neighbors not found on reneighbor steps = 0
- lost bond partners = 0
- ave bias coeff for lost bond partners = 0
- bias overlaps = 0
- non-matching bias coeffs = 0
- CPU time for bond builds = 0.044807
-Current quantities specific to fix hyper/local:
- neighbor bonds/bond = 703.604
- ave boost coeff for all bonds = 0.396356
-
-Loop time of 17.9972 on 16 procs for 1500 steps with 37048 atoms
-
-Performance: 36.006 ns/day, 0.667 hours/ns, 83.346 timesteps/s
-120.7% CPU use with 16 MPI tasks x no OpenMP threads
-
-Hyper stats:
- Dynamics time (%) = 8.87027 (49.2869)
- Quench time (%) = 8.15972 (45.3388)
- Other time (%) = 1.2212 (6.78552)
-
-MPI task timing breakdown:
-Section | min time | avg time | max time |%varavg| %total
----------------------------------------------------------------
-Pair | 11.6 | 11.848 | 12.043 | 3.9 | 65.83
-Neigh | 0.50025 | 0.52638 | 0.55163 | 2.1 | 2.92
-Comm | 0.34528 | 0.49905 | 0.66742 | 13.3 | 2.77
-Output | 0.0021305 | 0.0021461 | 0.0022686 | 0.1 | 0.01
-Modify | 3.7498 | 3.9009 | 3.9786 | 2.8 | 21.67
-Other | | 1.221 | | | 6.79
-
-Nlocal: 2315.5 ave 2361 max 2267 min
-Histogram: 1 1 0 4 2 1 3 3 0 1
-Nghost: 3187.88 ave 3236 max 3141 min
-Histogram: 1 0 3 2 2 1 4 1 1 1
-Neighs: 53950.6 ave 54989 max 53049 min
-Histogram: 2 0 3 2 1 2 4 1 0 1
-FullNghs: 542951 ave 554654 max 533224 min
-Histogram: 1 2 3 1 2 2 2 2 0 1
-
-Total # of neighbors = 8687214
-Ave neighs/atom = 234.485
-Neighbor list builds = 165
-Dangerous builds = 0
-Total wall time: 0:00:22
diff --git a/examples/hyper/log.25Mar19.hyper.global.g++.4 b/examples/hyper/log.25Mar19.hyper.global.g++.4
new file mode 100644
index 0000000000..6a066d0d66
--- /dev/null
+++ b/examples/hyper/log.25Mar19.hyper.global.g++.4
@@ -0,0 +1,1250 @@
+LAMMPS (28 Feb 2019)
+# 3d EAM surface for global 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 500.0
+variable Vmax index 0.5
+variable qfactor index 0.3
+variable cutbond index 3.2
+variable cutevent index 1.1
+variable steps index 100000
+variable nevent index 1000
+variable zoom index 1.8
+variable seed index 826626413
+variable tol index 1.0e-15
+
+units metal
+atom_style atomic
+atom_modify map array
+boundary p p p
+
+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 3 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
+ Time spent = 0.000785828 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)
+create_atoms 2 single 3.5 3.5 4
+Created 1 atoms
+ Time spent = 5.79357e-05 secs
+
+# define frozen substrate and mobile atoms
+
+group adatom type 2
+1 atoms in group adatom
+region base block INF INF INF INF 0 1.8
+set region base type 3
+ 288 settings made for type
+group base type 3
+288 atoms in group base
+group mobile type 1 2
+289 atoms in group mobile
+
+# pair style
+
+pair_style eam/alloy
+pair_coeff * * ptvoterlammps.eam Pt 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 500.0 ${Tequil} 1.0 ${seed} zero yes
+fix 2 mobile langevin 500.0 500.0 1.0 ${seed} zero yes
+fix 2 mobile langevin 500.0 500.0 1.0 826626413 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:487)
+
+# 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 = 6.07583
+ binsize = 3.03792, bins = 8 8 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.327 | 3.327 | 3.327 Mbytes
+Step Temp E_pair E_mol TotEng Press
+ 0 0 -3213.9136 0 -3213.9136 -51843.125
+ 100 223.70164 -3209.0653 0 -3200.7375 -26575.84
+ 200 345.18355 -3206.1371 0 -3193.2869 -42327.268
+ 300 411.05681 -3203.8465 0 -3188.5442 -32455.226
+ 400 446.05938 -3202.2976 0 -3185.6922 -35377.683
+ 500 435.52439 -3200.2131 0 -3183.9999 -31477.028
+ 600 474.70282 -3199.4049 0 -3181.7332 -34761.287
+ 700 492.00191 -3201.1592 0 -3182.8435 -33036.989
+ 800 440.88631 -3198.37 0 -3181.9572 -34669.762
+ 900 475.14414 -3198.5845 0 -3180.8964 -31191.883
+ 1000 476.87852 -3197.3442 0 -3179.5914 -33731.074
+Loop time of 0.339602 on 4 procs for 1000 steps with 577 atoms
+
+Performance: 1272.077 ns/day, 0.019 hours/ns, 2944.623 timesteps/s
+98.7% CPU use with 4 MPI tasks x no OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 0.25294 | 0.26196 | 0.27409 | 1.5 | 77.14
+Neigh | 0.017554 | 0.018856 | 0.020498 | 0.8 | 5.55
+Comm | 0.027196 | 0.040838 | 0.050409 | 4.2 | 12.03
+Output | 0.00025296 | 0.0002721 | 0.00030828 | 0.0 | 0.08
+Modify | 0.013425 | 0.014212 | 0.014999 | 0.5 | 4.18
+Other | | 0.00346 | | | 1.02
+
+Nlocal: 144.25 ave 147 max 141 min
+Histogram: 1 0 0 1 0 0 0 0 1 1
+Nghost: 527.5 ave 533 max 523 min
+Histogram: 1 0 0 0 2 0 0 0 0 1
+Neighs: 3477.25 ave 3585 max 3399 min
+Histogram: 1 0 1 0 1 0 0 0 0 1
+
+Total # of neighbors = 13909
+Ave neighs/atom = 24.1057
+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/global
+
+fix HG mobile hyper/global ${cutbond} ${qfactor} ${Vmax} ${Tequil}
+fix HG mobile hyper/global 3.2 ${qfactor} ${Vmax} ${Tequil}
+fix HG mobile hyper/global 3.2 0.3 ${Vmax} ${Tequil}
+fix HG mobile hyper/global 3.2 0.3 0.5 ${Tequil}
+fix HG mobile hyper/global 3.2 0.3 0.5 500.0
+
+# thermo output
+
+thermo_style custom step temp pe f_HG f_HG[*]
+WARNING: New thermo_style command, previous thermo_modify settings will be lost (../output.cpp:705)
+
+thermo_modify lost ignore
+thermo_modify temp tmobile
+WARNING: Temperature for thermo pressure is not for group all (../thermo.cpp:487)
+
+thermo ${nevent}
+thermo 1000
+
+# dump output options
+
+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 1000000 global.*.jpg v_acolor type zoom ${zoom} adiam 2.5 view 0.0 0.0 up 0 1 0 axes yes 0.9 0.01
+dump 1 all image 1000000 global.*.jpg v_acolor type 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} HG event min ${tol} ${tol} 1000 1000 dump 1
+hyper 100000 ${nevent} HG event min ${tol} ${tol} 1000 1000 dump 1
+hyper 100000 1000 HG event min ${tol} ${tol} 1000 1000 dump 1
+hyper 100000 1000 HG event min 1.0e-15 ${tol} 1000 1000 dump 1
+hyper 100000 1000 HG event min 1.0e-15 1.0e-15 1000 1000 dump 1
+WARNING: Resetting reneighboring criteria during hyper (../hyper.cpp:133)
+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 = 6.07583
+ binsize = 3.03792, bins = 8 8 7
+ 2 neighbor lists, perpetual/occasional/extra = 1 1 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/global, occasional, copy from (1)
+ attributes: half, newton on
+ pair build: copy
+ stencil: none
+ bin: none
+Per MPI rank memory allocation (min/avg/max) = 6.015 | 6.015 | 6.015 Mbytes
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 0 476.87852 -3197.3442 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 53 476.87852 -3217.9192 0 0 0 0 0 0 0 0 0 0 0 0 0
+Loop time of 0.0358047 on 4 procs for 53 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 0 476.87852 -3197.3442 0.33187212 2213.7063 0.17396269 129 131 6.0069324 0 0 0 3.3552688 0 0 0
+ 1000 487.34979 -3198.3697 0.19401776 90.283981 0.23468448 543 548 6.0069324 0.165 0 0 3.9974111 6134.6092 0 0
+Loop time of 0.342707 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 1000 487.34979 -3198.3697 0.19401776 90.283981 0.23468448 543 548 6.0069324 0.165 0 0 3.9974111 6134.6092 0 0
+ 1059 487.34979 -3217.9192 0.19401776 90.283981 0.23468448 543 548 6.0069324 0.15580737 0 0 3.9974111 6134.6092 0 0
+Loop time of 0.0359111 on 4 procs for 59 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 1000 487.34979 -3198.3697 0.19401776 90.283981 0.23468448 543 548 6.0069324 0.165 0 0 3.9974111 6134.6092 0 0
+ 2000 522.93873 -3197.4748 0.1540961 35.745265 0.24952495 120 131 6.0069324 0.1645 0 0 4.0370436 10213.644 0 0
+Loop time of 0.305975 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 2000 522.93873 -3197.4748 0.1540961 35.745265 0.24952495 120 131 6.0069324 0.1645 0 0 4.0370436 10213.644 0 0
+ 2057 522.93873 -3217.9192 0.1540961 35.745265 0.24952495 120 131 6.0069324 0.15994166 0 0 4.0370436 10213.644 0 0
+Loop time of 0.0335248 on 4 procs for 57 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 2000 522.93873 -3197.4748 0.1540961 35.745265 0.24952495 120 131 6.0069324 0.1645 0 0 4.0370436 10213.644 0 0
+ 3000 485.3853 -3198.0446 0.081070047 6.563707 0.27460406 120 131 6.0069324 0.145 0 0 4.0370436 13331.739 0 0
+Loop time of 0.269706 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 3000 485.3853 -3198.0446 0.081070047 6.563707 0.27460406 120 131 6.0069324 0.145 0 0 4.0370436 13331.739 0 0
+ 3059 485.3853 -3217.9192 0.081070047 6.563707 0.27460406 120 131 6.0069324 0.14220333 0 0 4.0370436 13331.739 0 0
+Loop time of 0.0265908 on 4 procs for 59 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 3000 485.3853 -3198.0446 0.081070047 6.563707 0.27460406 120 131 6.0069324 0.145 0 0 4.0370436 13331.739 0 0
+ 4000 522.88476 -3199.0496 0.020170911 1.5970319 0.29388643 548 555 6.0069324 0.17575 0 0 4.0370436 14355.723 0 0
+Loop time of 0.229504 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 4000 522.88476 -3199.0496 0.020170911 1.5970319 0.29388643 548 555 6.0069324 0.17575 0 0 4.0370436 14355.723 0 0
+ 4060 522.88476 -3217.9192 0.020170911 1.5970319 0.29388643 548 555 6.0069324 0.17315271 0 0 4.0370436 14355.723 0 0
+Loop time of 0.0280094 on 4 procs for 60 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 4000 522.88476 -3199.0496 0.020170911 1.5970319 0.29388643 548 555 6.0069324 0.17575 0 0 4.0370436 14355.723 0 0
+ 5000 462.24647 -3197.3076 0.11575138 14.679837 0.26299192 130 132 6.0069324 0.1664 0 0 4.0370436 19342.466 0 0
+Loop time of 0.234847 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 5000 462.24647 -3197.3076 0.11575138 14.679837 0.26299192 130 132 6.0069324 0.1664 0 0 4.0370436 19342.466 0 0
+ 5054 462.24647 -3217.9192 0.11575138 14.679837 0.26299192 130 132 6.0069324 0.16462208 0 0 4.0370436 19342.466 0 0
+Loop time of 0.026547 on 4 procs for 54 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 5000 462.24647 -3197.3076 0.11575138 14.679837 0.26299192 130 132 6.0069324 0.1664 0 0 4.0370436 19342.466 0 0
+ 6000 463.33022 -3196.1897 0.37378421 5855.6457 0.15072771 122 123 6.0069324 0.15583333 0 0 4.0370436 22854.021 0 0
+Loop time of 0.244725 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 6000 463.33022 -3196.1897 0.37378421 5855.6457 0.15072771 122 123 6.0069324 0.15583333 0 0 4.0370436 22854.021 0 0
+ 6054 463.33022 -3217.9192 0.37378421 5855.6457 0.15072771 122 123 6.0069324 0.15444334 0 0 4.0370436 22854.021 0 0
+Loop time of 0.0267512 on 4 procs for 54 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 6000 463.33022 -3196.1897 0.37378421 5855.6457 0.15072771 122 123 6.0069324 0.15583333 0 0 4.0370436 22854.021 0 0
+ 7000 496.34089 -3198.1795 0.29031005 843.70994 0.19427864 547 552 6.0069324 0.14885714 0 0 4.1079381 27854.511 0 0
+Loop time of 0.229727 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 7000 496.34089 -3198.1795 0.29031005 843.70994 0.19427864 547 552 6.0069324 0.14885714 0 0 4.1079381 27854.511 0 0
+ 7055 496.34089 -3217.9192 0.29031005 843.70994 0.19427864 547 552 6.0069324 0.14769667 0 0 4.1079381 27854.511 0 0
+Loop time of 0.0260235 on 4 procs for 55 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 7000 496.34089 -3198.1795 0.29031005 843.70994 0.19427864 547 552 6.0069324 0.14885714 0 0 4.1079381 27854.511 0 0
+ 8000 468.63017 -3197.6685 0 1 0.31412476 275 556 6.0069324 0.14075 0.00175 0 4.1079381 31930.231 0 0
+Loop time of 0.230083 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 8000 468.63017 -3197.6685 0 1 0.31412476 275 556 6.0069324 0.14075 0.00175 0 4.1079381 31930.231 0 0
+ 8056 468.63017 -3217.9192 0 1 0.31412476 275 556 6.0069324 0.1397716 0.0017378352 0 4.1079381 31930.231 0 0
+Loop time of 0.0261552 on 4 procs for 56 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 8000 468.63017 -3197.6685 0 1 0.31412476 275 556 6.0069324 0.14075 0.00175 0 4.1079381 31930.231 0 0
+ 9000 467.53307 -3198.3982 0 1 0.3075376 543 544 6.0069324 0.14888889 0.0015555556 0 4.1079381 35292.432 0 0
+Loop time of 0.22948 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 9000 467.53307 -3198.3982 0 1 0.3075376 543 544 6.0069324 0.14888889 0.0015555556 0 4.1079381 35292.432 0 0
+ 9051 467.53307 -3217.9192 0 1 0.3075376 543 544 6.0069324 0.14804994 0.0015467904 0 4.1079381 35292.432 0 0
+Loop time of 0.0240657 on 4 procs for 51 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 9000 467.53307 -3198.3982 0 1 0.3075376 543 544 6.0069324 0.14888889 0.0015555556 0 4.1079381 35292.432 0 0
+ 10000 496.73768 -3197.9106 0.11921512 15.908682 0.26180389 543 548 6.0069324 0.1531 0.0014 0 4.1079381 40303.236 0 0
+Loop time of 0.237951 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 10000 496.73768 -3197.9106 0.11921512 15.908682 0.26180389 543 548 6.0069324 0.1531 0.0014 0 4.1079381 40303.236 0 0
+ 10061 496.73768 -3217.9192 0.11921512 15.908682 0.26180389 543 548 6.0069324 0.15217175 0.0013915118 0 4.1079381 40303.236 0 0
+Loop time of 0.0275102 on 4 procs for 61 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 10000 496.73768 -3197.9106 0.11921512 15.908682 0.26180389 543 548 6.0069324 0.1531 0.0014 0 4.1079381 40303.236 0 0
+ 11000 526.76049 -3199.3263 0.24399827 287.99939 0.21466325 408 419 6.0069324 0.15945455 0.0012727273 0 4.1079381 42710.668 0 0
+Loop time of 0.226262 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 11000 526.76049 -3199.3263 0.24399827 287.99939 0.21466325 408 419 6.0069324 0.15945455 0.0012727273 0 4.1079381 42710.668 0 0
+ 11058 526.76049 -3217.9192 0.24399827 287.99939 0.21466325 408 419 6.0069324 0.15861819 0.0012660517 0 4.1079381 42710.668 0 0
+Loop time of 0.0257103 on 4 procs for 58 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 11000 526.76049 -3199.3263 0.24399827 287.99939 0.21466325 408 419 6.0069324 0.15945455 0.0012727273 0 4.1079381 42710.668 0 0
+ 12000 488.24107 -3198.2441 0.34073209 2719.0951 0.16931693 409 400 6.0069324 0.15558333 0.0011666667 0 4.1079381 47154.117 0 0
+Loop time of 0.226415 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 12000 488.24107 -3198.2441 0.34073209 2719.0951 0.16931693 409 400 6.0069324 0.15558333 0.0011666667 0 4.1079381 47154.117 0 0
+ 12053 488.24107 -3217.9192 0.34073209 2719.0951 0.16931693 409 400 6.0069324 0.1548992 0.0011615365 0 4.1079381 47154.117 0 0
+Loop time of 0.0232868 on 4 procs for 53 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 12000 488.24107 -3198.2441 0.34073209 2719.0951 0.16931693 409 400 6.0069324 0.15558333 0.0011666667 0 4.1079381 47154.117 0 0
+ 13000 467.87203 -3197.0681 0 1 0.32542353 275 556 6.0069324 0.14869231 0.0015384615 0 4.1079381 54700.864 0 0
+Loop time of 0.234386 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 13000 467.87203 -3197.0681 0 1 0.32542353 275 556 6.0069324 0.14869231 0.0015384615 0 4.1079381 54700.864 0 0
+ 13055 467.87203 -3217.9192 0 1 0.32542353 275 556 6.0069324 0.14806588 0.0015319801 0 4.1079381 54700.864 0 0
+Loop time of 0.0268174 on 4 procs for 55 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 13000 467.87203 -3197.0681 0 1 0.32542353 275 556 6.0069324 0.14869231 0.0015384615 0 4.1079381 54700.864 0 0
+ 14000 494.97859 -3197.9767 0.061678009 4.1849114 0.2808878 544 555 6.0069324 0.16885714 0.0014285714 0 4.1079381 55284.212 0 0
+Loop time of 0.236772 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 14000 494.97859 -3197.9767 0.061678009 4.1849114 0.2808878 544 555 6.0069324 0.16885714 0.0014285714 0 4.1079381 55284.212 0 0
+ 14059 494.97859 -3217.9192 0.061678009 4.1849114 0.2808878 544 555 6.0069324 0.16814852 0.0014225763 0 4.1079381 55284.212 0 0
+Loop time of 0.0262685 on 4 procs for 59 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 14000 494.97859 -3197.9767 0.061678009 4.1849114 0.2808878 544 555 6.0069324 0.16885714 0.0014285714 0 4.1079381 55284.212 0 0
+ 15000 487.47593 -3196.3193 0 1 0.30681413 124 135 6.0069324 0.16526667 0.0013333333 0 4.1079381 58845.637 0 0
+Loop time of 0.228132 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 15000 487.47593 -3196.3193 0 1 0.30681413 124 135 6.0069324 0.16526667 0.0013333333 0 4.1079381 58845.637 0 0
+ 15056 487.47593 -3217.9192 0 1 0.30681413 124 135 6.0069324 0.16465197 0.0013283741 0 4.1079381 58845.637 0 0
+Loop time of 0.0253892 on 4 procs for 56 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 15000 487.47593 -3196.3193 0 1 0.30681413 124 135 6.0069324 0.16526667 0.0013333333 0 4.1079381 58845.637 0 0
+ 16000 514.29619 -3198.6976 0.15192442 33.988268 0.25030702 287 568 6.0069324 0.160375 0.00125 0 4.1079381 65959.225 0 0
+Loop time of 0.226636 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 16000 514.29619 -3198.6976 0.15192442 33.988268 0.25030702 287 568 6.0069324 0.160375 0.00125 0 4.1079381 65959.225 0 0
+ 16057 514.29619 -3217.9192 0.15192442 33.988268 0.25030702 287 568 6.0069324 0.15980569 0.0012455627 0 4.1079381 65959.225 0 0
+Loop time of 0.0258105 on 4 procs for 57 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 16000 514.29619 -3198.6976 0.15192442 33.988268 0.25030702 287 568 6.0069324 0.160375 0.00125 0 4.1079381 65959.225 0 0
+ 17000 518.58789 -3197.5021 0.1333678 22.094631 0.25689258 116 123 6.0069324 0.16088235 0.0011764706 0 4.1079381 70525.413 0 0
+Loop time of 0.233751 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 17000 518.58789 -3197.5021 0.1333678 22.094631 0.25689258 116 123 6.0069324 0.16088235 0.0011764706 0 4.1079381 70525.413 0 0
+ 17052 518.58789 -3217.9192 0.1333678 22.094631 0.25689258 116 123 6.0069324 0.16039174 0.0011728829 0 4.1079381 70525.413 0 0
+Loop time of 0.0248473 on 4 procs for 52 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 17000 518.58789 -3197.5021 0.1333678 22.094631 0.25689258 116 123 6.0069324 0.16088235 0.0011764706 0 4.1079381 70525.413 0 0
+ 18000 505.83228 -3198.9838 0.08205079 6.7148239 0.27428244 552 563 6.0069324 0.15644444 0.0011111111 0 4.1079381 73252.823 0 0
+Loop time of 0.240134 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 18000 505.83228 -3198.9838 0.08205079 6.7148239 0.27428244 552 563 6.0069324 0.15644444 0.0011111111 0 4.1079381 73252.823 0 0
+ 18056 505.83228 -3217.9192 0.08205079 6.7148239 0.27428244 552 563 6.0069324 0.15595924 0.001107665 0 4.1079381 73252.823 0 0
+Loop time of 0.0243995 on 4 procs for 56 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 18000 505.83228 -3198.9838 0.08205079 6.7148239 0.27428244 552 563 6.0069324 0.15644444 0.0011111111 0 4.1079381 73252.823 0 0
+ 19000 527.41862 -3198.5008 0.040305357 2.5483534 0.28765437 424 263 6.0069324 0.15589474 0.0010526316 0 4.1079381 75984.28 0 0
+Loop time of 0.22821 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 19000 527.41862 -3198.5008 0.040305357 2.5483534 0.28765437 424 263 6.0069324 0.15589474 0.0010526316 0 4.1079381 75984.28 0 0
+ 19052 527.41862 -3217.9192 0.040305357 2.5483534 0.28765437 424 263 6.0069324 0.15546924 0.0010497586 0 4.1079381 75984.28 0 0
+Loop time of 0.0237539 on 4 procs for 52 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 19000 527.41862 -3198.5008 0.040305357 2.5483534 0.28765437 424 263 6.0069324 0.15589474 0.0010526316 0 4.1079381 75984.28 0 0
+ 20000 451.64207 -3198.7796 0.047092391 2.9831142 0.28552298 570 403 6.0069324 0.15125 0.001 0 4.1079381 81688.471 0 0
+Loop time of 0.226179 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 20000 451.64207 -3198.7796 0.047092391 2.9831142 0.28552298 570 403 6.0069324 0.15125 0.001 0 4.1079381 81688.471 0 0
+ 20053 451.64207 -3217.9192 0.047092391 2.9831142 0.28552298 570 403 6.0069324 0.15085025 0.000997357 0 4.1079381 81688.471 0 0
+Loop time of 0.0244102 on 4 procs for 53 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 20000 451.64207 -3198.7796 0.047092391 2.9831142 0.28552298 570 403 6.0069324 0.15125 0.001 0 4.1079381 81688.471 0 0
+ 21000 469.69339 -3200.6427 0 1 0.3308786 267 268 6.0069324 0.14852381 0.00095238095 0 4.1079381 87660.496 0 0
+Loop time of 0.234504 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 21000 469.69339 -3200.6427 0 1 0.3308786 267 268 6.0069324 0.14852381 0.00095238095 0 4.1079381 87660.496 0 0
+ 21050 469.69339 -3217.9192 0 1 0.3308786 267 268 6.0069324 0.14817102 0.00095011876 0 4.1079381 87660.496 0 0
+Loop time of 0.0231035 on 4 procs for 50 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 21000 469.69339 -3200.6427 0 1 0.3308786 267 268 6.0069324 0.14852381 0.00095238095 0 4.1079381 87660.496 0 0
+ 22000 473.26326 -3199.3284 0 1 0.31249141 544 555 6.0069324 0.14786364 0.00090909091 0 4.1079381 91920.285 0 0
+Loop time of 0.235723 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 22000 473.26326 -3199.3284 0 1 0.31249141 544 555 6.0069324 0.14786364 0.00090909091 0 4.1079381 91920.285 0 0
+ 22054 473.26326 -3217.9192 0 1 0.31249141 544 555 6.0069324 0.14750159 0.00090686497 0 4.1079381 91920.285 0 0
+Loop time of 0.024776 on 4 procs for 54 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 22000 473.26326 -3199.3284 0 1 0.31249141 544 555 6.0069324 0.14786364 0.00090909091 0 4.1079381 91920.285 0 0
+ 23000 496.07543 -3198.2605 0.30577111 1207.9075 0.18697914 572 403 6.0069324 0.15665217 0.0011304348 0 4.1079381 92558.536 0 0
+Loop time of 0.229916 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 23000 496.07543 -3198.2605 0.30577111 1207.9075 0.18697914 572 403 6.0069324 0.15665217 0.0011304348 0 4.1079381 92558.536 0 0
+ 23056 496.07543 -3217.9192 0.30577111 1207.9075 0.18697914 572 403 6.0069324 0.15627169 0.0011276891 0 4.1079381 92558.536 0 0
+Loop time of 0.0252325 on 4 procs for 56 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 23000 496.07543 -3198.2605 0.30577111 1207.9075 0.18697914 572 403 6.0069324 0.15665217 0.0011304348 0 4.1079381 92558.536 0 0
+ 24000 465.43821 -3199.468 0 1 0.31415739 543 544 6.0069324 0.15466667 0.0010833333 0 4.1079381 97530.178 0 0
+Loop time of 0.231022 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 24000 465.43821 -3199.468 0 1 0.31415739 543 544 6.0069324 0.15466667 0.0010833333 0 4.1079381 97530.178 0 0
+ 24054 465.43821 -3217.9192 0 1 0.31415739 543 544 6.0069324 0.15431945 0.0010809013 0 4.1079381 97530.178 0 0
+Loop time of 0.0246248 on 4 procs for 54 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 24000 465.43821 -3199.468 0 1 0.31415739 543 544 6.0069324 0.15466667 0.0010833333 0 4.1079381 97530.178 0 0
+ 25000 489.80528 -3200.439 0.25812453 399.74019 0.20865662 543 544 6.0069324 0.15368 0.00104 0 4.1079381 103216.01 0 0
+Loop time of 0.239562 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 25000 489.80528 -3200.439 0.25812453 399.74019 0.20865662 543 544 6.0069324 0.15368 0.00104 0 4.1079381 103216.01 0 0
+ 25060 489.80528 -3217.9192 0.25812453 399.74019 0.20865662 543 544 6.0069324 0.15331205 0.00103751 0 4.1079381 103216.01 0 0
+Loop time of 0.0290521 on 4 procs for 60 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 25000 489.80528 -3200.439 0.25812453 399.74019 0.20865662 543 544 6.0069324 0.15368 0.00104 0 4.1079381 103216.01 0 0
+ 26000 454.33199 -3197.9264 0.15449017 36.073692 0.24938278 283 272 6.0069324 0.15788462 0.001 0 4.1079381 106857.47 0 0
+Loop time of 0.231679 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 26000 454.33199 -3197.9264 0.15449017 36.073692 0.24938278 283 272 6.0069324 0.15788462 0.001 0 4.1079381 106857.47 0 0
+ 26053 454.33199 -3217.9192 0.15449017 36.073692 0.24938278 283 272 6.0069324 0.15756343 0.00099796569 0 4.1079381 106857.47 0 0
+Loop time of 0.0229361 on 4 procs for 53 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 26000 454.33199 -3197.9264 0.15449017 36.073692 0.24938278 283 272 6.0069324 0.15788462 0.001 0 4.1079381 106857.47 0 0
+ 27000 493.26662 -3198.8515 0.17523126 58.378293 0.24178166 260 271 6.0069324 0.15388889 0.00096296296 0 4.1079381 114287.4 0 0
+Loop time of 0.228356 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 27000 493.26662 -3198.8515 0.17523126 58.378293 0.24178166 260 271 6.0069324 0.15388889 0.00096296296 0 4.1079381 114287.4 0 0
+ 27056 493.26662 -3217.9192 0.17523126 58.378293 0.24178166 260 271 6.0069324 0.15357037 0.00096096984 0 4.1079381 114287.4 0 0
+Loop time of 0.0249045 on 4 procs for 56 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 27000 493.26662 -3198.8515 0.17523126 58.378293 0.24178166 260 271 6.0069324 0.15388889 0.00096296296 0 4.1079381 114287.4 0 0
+ 28000 516.59709 -3198.7939 0.017083929 1.486614 0.29483028 543 548 6.0069324 0.15278571 0.00092857143 0 4.1079381 117735.24 0 0
+Loop time of 0.226666 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 28000 516.59709 -3198.7939 0.017083929 1.486614 0.29483028 543 548 6.0069324 0.15278571 0.00092857143 0 4.1079381 117735.24 0 0
+ 28054 516.59709 -3217.9192 0.017083929 1.486614 0.29483028 543 548 6.0069324 0.15249162 0.00092678406 0 4.1079381 117735.24 0 0
+Loop time of 0.0245788 on 4 procs for 54 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 28000 516.59709 -3198.7939 0.017083929 1.486614 0.29483028 543 548 6.0069324 0.15278571 0.00092857143 0 4.1079381 117735.24 0 0
+ 29000 498.78313 -3197.7551 0 1 0.43523955 543 544 6.0069324 0.15648276 0.00089655172 0 4.3557073 122569.32 0 0
+Loop time of 0.239195 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 29000 498.78313 -3197.7551 0 1 0.43523955 543 544 6.0069324 0.15648276 0.00089655172 0 4.3557073 122569.32 0 0
+ 29059 498.78313 -3217.9192 0 1 0.43523955 543 544 6.0069324 0.15616504 0.00089473141 0 4.3557073 122569.32 0 0
+Loop time of 0.0290976 on 4 procs for 59 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 29000 498.78313 -3197.7551 0 1 0.43523955 543 544 6.0069324 0.15648276 0.00089655172 0 4.3557073 122569.32 0 0
+ 30000 466.86137 -3199.5233 0.23621441 240.39961 0.21790229 126 127 6.0069324 0.15756667 0.00086666667 0 4.3557073 127229.34 0 0
+Loop time of 0.232616 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 30000 466.86137 -3199.5233 0.23621441 240.39961 0.21790229 126 127 6.0069324 0.15756667 0.00086666667 0 4.3557073 127229.34 0 0
+ 30059 466.86137 -3217.9192 0.23621441 240.39961 0.21790229 126 127 6.0069324 0.15725739 0.00086496557 0 4.3557073 127229.34 0 0
+Loop time of 0.0269623 on 4 procs for 59 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 30000 466.86137 -3199.5233 0.23621441 240.39961 0.21790229 126 127 6.0069324 0.15756667 0.00086666667 0 4.3557073 127229.34 0 0
+ 31000 471.12992 -3199.7598 0 1 0.30984418 567 572 6.0069324 0.15541935 0.00087096774 0 4.3557073 131258.9 0 0
+Loop time of 0.229214 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 31000 471.12992 -3199.7598 0 1 0.30984418 567 572 6.0069324 0.15541935 0.00087096774 0 4.3557073 131258.9 0 0
+ 31053 471.12992 -3217.9192 0 1 0.30984418 567 572 6.0069324 0.15515409 0.00086948121 0 4.3557073 131258.9 0 0
+Loop time of 0.0240388 on 4 procs for 53 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 31000 471.12992 -3199.7598 0 1 0.30984418 567 572 6.0069324 0.15541935 0.00087096774 0 4.3557073 131258.9 0 0
+ 32000 510.4372 -3198.4263 0.38770138 8088.2308 0.14217507 511 546 6.0069324 0.15328125 0.00084375 0 4.3557073 136077.46 0 0
+Loop time of 0.230157 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 32000 510.4372 -3198.4263 0.38770138 8088.2308 0.14217507 511 546 6.0069324 0.15328125 0.00084375 0 4.3557073 136077.46 0 0
+ 32057 510.4372 -3217.9192 0.38770138 8088.2308 0.14217507 511 546 6.0069324 0.1530087 0.00084224974 0 4.3557073 136077.46 0 0
+Loop time of 0.0259738 on 4 procs for 57 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 32000 510.4372 -3198.4263 0.38770138 8088.2308 0.14217507 511 546 6.0069324 0.15328125 0.00084375 0 4.3557073 136077.46 0 0
+ 33000 517.9664 -3198.8477 0.065094278 4.5302347 0.27979105 136 255 6.0069324 0.15212121 0.00081818182 0 4.3557073 140653.16 0 0
+Loop time of 0.240719 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 33000 517.9664 -3198.8477 0.065094278 4.5302347 0.27979105 136 255 6.0069324 0.15212121 0.00081818182 0 4.3557073 140653.16 0 0
+ 33055 517.9664 -3217.9192 0.065094278 4.5302347 0.27979105 136 255 6.0069324 0.1518681 0.00081682045 0 4.3557073 140653.16 0 0
+Loop time of 0.0254009 on 4 procs for 55 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 33000 517.9664 -3198.8477 0.065094278 4.5302347 0.27979105 136 255 6.0069324 0.15212121 0.00081818182 0 4.3557073 140653.16 0 0
+ 34000 539.21923 -3197.9619 0.10137745 10.515709 0.26786575 119 400 6.0069324 0.15088235 0.00079411765 0 4.3557073 146106.36 0 0
+Loop time of 0.228472 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 34000 539.21923 -3197.9619 0.10137745 10.515709 0.26786575 119 400 6.0069324 0.15088235 0.00079411765 0 4.3557073 146106.36 0 0
+ 34053 539.21923 -3217.9192 0.10137745 10.515709 0.26786575 119 400 6.0069324 0.15064752 0.00079288168 0 4.3557073 146106.36 0 0
+Loop time of 0.0239374 on 4 procs for 53 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 34000 539.21923 -3197.9619 0.10137745 10.515709 0.26786575 119 400 6.0069324 0.15088235 0.00079411765 0 4.3557073 146106.36 0 0
+ 35000 495.28481 -3198.2101 0.03728079 2.3756005 0.28859913 543 544 6.0069324 0.14882857 0.00077142857 0 4.3557073 152132.21 0 0
+Loop time of 0.227014 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 35000 495.28481 -3198.2101 0.03728079 2.3756005 0.28859913 543 544 6.0069324 0.14882857 0.00077142857 0 4.3557073 152132.21 0 0
+ 35061 495.28481 -3217.9192 0.03728079 2.3756005 0.28859913 543 544 6.0069324 0.14856964 0.00077008642 0 4.3557073 152132.21 0 0
+Loop time of 0.0271087 on 4 procs for 61 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 35000 495.28481 -3198.2101 0.03728079 2.3756005 0.28859913 543 544 6.0069324 0.14882857 0.00077142857 0 4.3557073 152132.21 0 0
+ 36000 522.02047 -3197.5464 0.023049198 1.7073613 0.29300366 132 139 6.0069324 0.14975 0.00075 0 4.3557073 155779.35 0 0
+Loop time of 0.230395 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 36000 522.02047 -3197.5464 0.023049198 1.7073613 0.29300366 132 139 6.0069324 0.14975 0.00075 0 4.3557073 155779.35 0 0
+ 36058 522.02047 -3217.9192 0.023049198 1.7073613 0.29300366 132 139 6.0069324 0.14950912 0.00074879361 0 4.3557073 155779.35 0 0
+Loop time of 0.0274341 on 4 procs for 58 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 36000 522.02047 -3197.5464 0.023049198 1.7073613 0.29300366 132 139 6.0069324 0.14975 0.00075 0 4.3557073 155779.35 0 0
+ 37000 493.66881 -3198.2972 0.29065621 850.51576 0.19411822 110 121 6.0069324 0.14783784 0.00072972973 0 4.3557073 159446.9 0 0
+Loop time of 0.239665 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 37000 493.66881 -3198.2972 0.29065621 850.51576 0.19411822 110 121 6.0069324 0.14783784 0.00072972973 0 4.3557073 159446.9 0 0
+ 37055 493.66881 -3217.9192 0.29065621 850.51576 0.19411822 110 121 6.0069324 0.14761841 0.00072864661 0 4.3557073 159446.9 0 0
+Loop time of 0.0258739 on 4 procs for 55 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 37000 493.66881 -3198.2972 0.29065621 850.51576 0.19411822 110 121 6.0069324 0.14783784 0.00072972973 0 4.3557073 159446.9 0 0
+ 38000 471.56021 -3200.0689 0.21390468 143.23918 0.22692985 546 559 6.0069324 0.1505 0.00071052632 0 4.3557073 161793.64 0 0
+Loop time of 0.231827 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 38000 471.56021 -3200.0689 0.21390468 143.23918 0.22692985 546 559 6.0069324 0.1505 0.00071052632 0 4.3557073 161793.64 0 0
+ 38050 471.56021 -3217.9192 0.21390468 143.23918 0.22692985 546 559 6.0069324 0.15030223 0.00070959264 0 4.3557073 161793.64 0 0
+Loop time of 0.0234141 on 4 procs for 50 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 38000 471.56021 -3200.0689 0.21390468 143.23918 0.22692985 546 559 6.0069324 0.1505 0.00071052632 0 4.3557073 161793.64 0 0
+ 39000 488.60708 -3198.2279 0.29546108 950.85261 0.19187758 410 412 6.0069324 0.14884615 0.00069230769 0 4.3557073 167145.63 0 0
+Loop time of 0.227483 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 39000 488.60708 -3198.2279 0.29546108 950.85261 0.19187758 410 412 6.0069324 0.14884615 0.00069230769 0 4.3557073 167145.63 0 0
+ 39062 488.60708 -3217.9192 0.29546108 950.85261 0.19187758 410 412 6.0069324 0.1486099 0.00069120885 0 4.3557073 167145.63 0 0
+Loop time of 0.028059 on 4 procs for 62 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 39000 488.60708 -3198.2279 0.29546108 950.85261 0.19187758 410 412 6.0069324 0.14884615 0.00069230769 0 4.3557073 167145.63 0 0
+ 40000 507.73002 -3196.8491 0.012490865 1.3362947 0.29622904 543 544 6.0069324 0.15095 0.000675 0 4.3557073 171194.28 0 0
+Loop time of 0.231293 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 40000 507.73002 -3196.8491 0.012490865 1.3362947 0.29622904 543 544 6.0069324 0.15095 0.000675 0 4.3557073 171194.28 0 0
+ 40064 507.73002 -3217.9192 0.012490865 1.3362947 0.29622904 543 544 6.0069324 0.15070887 0.00067392173 0 4.3557073 171194.28 0 0
+Loop time of 0.0308156 on 4 procs for 64 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 40000 507.73002 -3196.8491 0.012490865 1.3362947 0.29622904 543 544 6.0069324 0.15095 0.000675 0 4.3557073 171194.28 0 0
+ 41000 479.11448 -3200.241 0 1 0.94094448 542 544 6.0069324 0.16480488 0.00065853659 0 5.4178316 171224.32 0 0
+Loop time of 0.239781 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 41000 479.11448 -3200.241 0 1 0.94094448 542 544 6.0069324 0.16480488 0.00065853659 0 5.4178316 171224.32 0 0
+ 41055 479.11448 -3217.9192 0 1 0.94094448 542 544 6.0069324 0.16458409 0.00065765437 0 5.4178316 171224.32 0 0
+Loop time of 0.0248787 on 4 procs for 55 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 41000 479.11448 -3200.241 0.31626598 1541.0515 0.18185743 398 404 6.0069324 0.16480488 0.00065853659 2.3326665 5.4178316 171224.32 1 2
+ 42000 495.84675 -3198.6432 0.1729929 55.422961 0.24261343 275 264 6.0069324 0.1692381 0.0011190476 2.3326665 5.4178316 174484.67 1 2
+Loop time of 0.226913 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 42000 495.84675 -3198.6432 0.1729929 55.422961 0.24261343 275 264 6.0069324 0.1692381 0.0011190476 2.3326665 5.4178316 174484.67 1 2
+ 42056 495.84675 -3217.9192 0.1729929 55.422961 0.24261343 275 264 6.0069324 0.16901274 0.0011175575 2.3326665 5.4178316 174484.67 1 2
+Loop time of 0.0239749 on 4 procs for 56 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 42000 495.84675 -3198.6432 0.1729929 55.422961 0.24261343 275 264 6.0069324 0.1692381 0.0011190476 2.3326665 5.4178316 174484.67 1 2
+ 43000 533.30453 -3198.6415 0 1 0.34377427 263 577 6.0069324 0.17646512 0.0010930233 2.3326665 5.4178316 175038.14 1 2
+Loop time of 0.224798 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 43000 533.30453 -3198.6415 0 1 0.34377427 263 577 6.0069324 0.17646512 0.0010930233 2.3326665 5.4178316 175038.14 1 2
+ 43054 533.30453 -3217.9192 0 1 0.34377427 263 577 6.0069324 0.17624379 0.0010916523 2.3326665 5.4178316 175038.14 1 2
+Loop time of 0.0243425 on 4 procs for 54 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 43000 533.30453 -3198.6415 0 1 0.34377427 263 577 6.0069324 0.17646512 0.0010930233 2.3326665 5.4178316 175038.14 1 2
+ 44000 497.19886 -3199.3252 0 1 0.32411085 262 264 6.0069324 0.17947727 0.0010681818 2.3326665 5.4178316 175732.69 1 2
+Loop time of 0.23413 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 44000 497.19886 -3199.3252 0 1 0.32411085 262 264 6.0069324 0.17947727 0.0010681818 2.3326665 5.4178316 175732.69 1 2
+ 44056 497.19886 -3217.9192 0 1 0.32411085 262 264 6.0069324 0.17924914 0.001066824 2.3326665 5.4178316 175732.69 1 2
+Loop time of 0.0264681 on 4 procs for 56 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 44000 497.19886 -3199.3252 0 1 0.32411085 262 264 6.0069324 0.17947727 0.0010681818 2.3326665 5.4178316 175732.69 1 2
+ 45000 501.66497 -3198.3133 0 1 0.89133337 262 264 6.0069324 0.18806667 0.0010444444 2.3326665 5.4178316 175885.32 1 2
+Loop time of 0.233324 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 45000 501.66497 -3198.3133 0 1 0.89133337 262 264 6.0069324 0.18806667 0.0010444444 2.3326665 5.4178316 175885.32 1 2
+ 45053 501.66497 -3217.9192 0 1 0.89133337 262 264 6.0069324 0.18784543 0.0010432158 2.3326665 5.4178316 175885.32 1 2
+Loop time of 0.0239007 on 4 procs for 53 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 45000 501.66497 -3198.3133 0.31380779 1455.5922 0.18306993 549 547 6.0069324 0.18806667 0.0010444444 2.332667 5.4178316 175885.32 2 4
+ 46000 512.99827 -3198.7869 0.30973921 1324.4339 0.18505929 547 552 6.0069324 0.18545652 0.0010217391 2.332667 5.4178316 180703.66 2 4
+Loop time of 0.227399 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 46000 512.99827 -3198.7869 0.30973921 1324.4339 0.18505929 547 552 6.0069324 0.18545652 0.0010217391 2.332667 5.4178316 180703.66 2 4
+ 46058 512.99827 -3217.9192 0.30973921 1324.4339 0.18505929 547 552 6.0069324 0.18522298 0.0010204525 2.332667 5.4178316 180703.66 2 4
+Loop time of 0.025696 on 4 procs for 58 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 46000 512.99827 -3198.7869 0.30973921 1324.4339 0.18505929 547 552 6.0069324 0.18545652 0.0010217391 2.332667 5.4178316 180703.66 2 4
+ 47000 508.06284 -3198.0819 0.17828926 62.67216 0.24064067 271 544 6.0069324 0.18404255 0.001 2.332667 5.4178316 186245.92 2 4
+Loop time of 0.232521 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 47000 508.06284 -3198.0819 0.17828926 62.67216 0.24064067 271 544 6.0069324 0.18404255 0.001 2.332667 5.4178316 186245.92 2 4
+ 47062 508.06284 -3217.9192 0.17828926 62.67216 0.24064067 271 544 6.0069324 0.18380009 0.00099868259 2.332667 5.4178316 186245.92 2 4
+Loop time of 0.0288792 on 4 procs for 62 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 47000 508.06284 -3198.0819 0.17828926 62.67216 0.24064067 271 544 6.0069324 0.18404255 0.001 2.332667 5.4178316 186245.92 2 4
+ 48000 512.83356 -3200.0643 0 1 0.96810224 258 544 6.0069324 0.1921875 0.00097916667 2.332667 5.5485401 188226.87 2 4
+Loop time of 0.241704 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 48000 512.83356 -3200.0643 0 1 0.96810224 258 544 6.0069324 0.1921875 0.00097916667 2.332667 5.5485401 188226.87 2 4
+ 48051 512.83356 -3217.9192 0 1 0.96810224 258 544 6.0069324 0.19198352 0.00097812741 2.332667 5.5485401 188226.87 2 4
+Loop time of 0.0259903 on 4 procs for 51 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 48000 512.83356 -3200.0643 0.36239559 4495.5483 0.15738105 280 407 6.0069324 0.1921875 0.00097916667 2.332667 5.5485401 188226.87 3 6
+ 49000 490.9639 -3198.6936 0.21113624 134.32512 0.22802517 114 115 6.0069324 0.18993878 0.00095918367 2.332667 5.5485401 191519.1 3 6
+Loop time of 0.22826 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 49000 490.9639 -3198.6936 0.21113624 134.32512 0.22802517 114 115 6.0069324 0.18993878 0.00095918367 2.332667 5.5485401 191519.1 3 6
+ 49054 490.9639 -3217.9192 0.21113624 134.32512 0.22802517 114 115 6.0069324 0.18972969 0.00095812778 2.332667 5.5485401 191519.1 3 6
+Loop time of 0.024157 on 4 procs for 54 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 49000 490.9639 -3198.6936 0.21113624 134.32512 0.22802517 114 115 6.0069324 0.18993878 0.00095918367 2.332667 5.5485401 191519.1 3 6
+ 50000 502.62206 -3199.7905 0.22799901 198.66723 0.22126947 119 400 6.0069324 0.1885 0.00094 2.332667 5.5485401 195910.67 3 6
+Loop time of 0.226578 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 50000 502.62206 -3199.7905 0.22799901 198.66723 0.22126947 119 400 6.0069324 0.1885 0.00094 2.332667 5.5485401 195910.67 3 6
+ 50059 502.62206 -3217.9192 0.22799901 198.66723 0.22126947 119 400 6.0069324 0.18827783 0.00093889211 2.332667 5.5485401 195910.67 3 6
+Loop time of 0.0268276 on 4 procs for 59 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 50000 502.62206 -3199.7905 0.22799901 198.66723 0.22126947 119 400 6.0069324 0.1885 0.00094 2.332667 5.5485401 195910.67 3 6
+ 51000 508.29336 -3198.9059 0.14109933 26.437299 0.25416947 264 275 6.0069324 0.18907843 0.00092156863 2.332667 5.5485401 199067.94 3 6
+Loop time of 0.23022 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 51000 508.29336 -3198.9059 0.14109933 26.437299 0.25416947 264 275 6.0069324 0.18907843 0.00092156863 2.332667 5.5485401 199067.94 3 6
+ 51055 508.29336 -3217.9192 0.14109933 26.437299 0.25416947 264 275 6.0069324 0.18887474 0.00092057585 2.332667 5.5485401 199067.94 3 6
+Loop time of 0.0267057 on 4 procs for 55 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 51000 508.29336 -3198.9059 0.14109933 26.437299 0.25416947 264 275 6.0069324 0.18907843 0.00092156863 2.332667 5.5485401 199067.94 3 6
+ 52000 506.84322 -3198.7391 0 1 0.35895473 264 275 6.0069324 0.19369231 0.00090384615 2.332667 5.5485401 199119.85 3 6
+Loop time of 0.248939 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 52000 506.84322 -3198.7391 0 1 0.35895473 264 275 6.0069324 0.19369231 0.00090384615 2.332667 5.5485401 199119.85 3 6
+ 52061 506.84322 -3217.9192 0 1 0.35895473 264 275 6.0069324 0.19346536 0.00090278712 2.332667 5.5485401 199119.85 3 6
+Loop time of 0.0283017 on 4 procs for 61 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 52000 506.84322 -3198.7391 0 1 0.35895473 264 275 6.0069324 0.19369231 0.00090384615 2.332667 5.5485401 199119.85 3 6
+ 53000 477.74415 -3199.3706 0 1 0.31797782 264 275 6.0069324 0.1960566 0.00088679245 2.332667 5.5485401 200597.61 3 6
+Loop time of 0.226147 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 53000 477.74415 -3199.3706 0 1 0.31797782 264 275 6.0069324 0.1960566 0.00088679245 2.332667 5.5485401 200597.61 3 6
+ 53056 477.74415 -3217.9192 0 1 0.31797782 264 275 6.0069324 0.19584967 0.00088585645 2.332667 5.5485401 200597.61 3 6
+Loop time of 0.0249364 on 4 procs for 56 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 53000 477.74415 -3199.3706 0 1 0.31797782 264 275 6.0069324 0.1960566 0.00088679245 2.332667 5.5485401 200597.61 3 6
+ 54000 467.64603 -3198.6476 0.12868765 19.820426 0.25852702 575 280 6.0069324 0.19614815 0.00087037037 2.332667 5.5485401 203111.2 3 6
+Loop time of 0.242983 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 54000 467.64603 -3198.6476 0.12868765 19.820426 0.25852702 575 280 6.0069324 0.19614815 0.00087037037 2.332667 5.5485401 203111.2 3 6
+ 54051 467.64603 -3217.9192 0.12868765 19.820426 0.25852702 575 280 6.0069324 0.19596307 0.00086954913 2.332667 5.5485401 203111.2 3 6
+Loop time of 0.0256515 on 4 procs for 51 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 54000 467.64603 -3198.6476 0.12868765 19.820426 0.25852702 575 280 6.0069324 0.19614815 0.00087037037 2.332667 5.5485401 203111.2 3 6
+ 55000 504.56378 -3198.2318 0.01979034 1.582988 0.29400296 556 567 6.0069324 0.1934 0.00085454545 2.332667 5.5485401 209967.08 3 6
+Loop time of 0.243744 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 55000 504.56378 -3198.2318 0.01979034 1.582988 0.29400296 556 567 6.0069324 0.1934 0.00085454545 2.332667 5.5485401 209967.08 3 6
+ 55057 504.56378 -3217.9192 0.01979034 1.582988 0.29400296 556 567 6.0069324 0.19319977 0.00085366075 2.332667 5.5485401 209967.08 3 6
+Loop time of 0.0273646 on 4 procs for 57 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 55000 504.56378 -3198.2318 0.01979034 1.582988 0.29400296 556 567 6.0069324 0.1934 0.00085454545 2.332667 5.5485401 209967.08 3 6
+ 56000 564.45428 -3198.7813 0.20223936 109.26492 0.23151007 78 91 6.0069324 0.19246429 0.00083928571 2.332667 5.5485401 215831.27 3 6
+Loop time of 0.238614 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 56000 564.45428 -3198.7813 0.20223936 109.26492 0.23151007 78 91 6.0069324 0.19246429 0.00083928571 2.332667 5.5485401 215831.27 3 6
+ 56052 564.45428 -3217.9192 0.20223936 109.26492 0.23151007 78 91 6.0069324 0.19228573 0.0008385071 2.332667 5.5485401 215831.27 3 6
+Loop time of 0.0241504 on 4 procs for 52 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 56000 564.45428 -3198.7813 0.20223936 109.26492 0.23151007 78 91 6.0069324 0.19246429 0.00083928571 2.332667 5.5485401 215831.27 3 6
+ 57000 515.72168 -3198.6584 0.31159686 1382.7848 0.18415364 544 577 6.0069324 0.19210526 0.0008245614 2.332667 5.5485401 222695.11 3 6
+Loop time of 0.30046 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 57000 515.72168 -3198.6584 0.31159686 1382.7848 0.18415364 544 577 6.0069324 0.19210526 0.0008245614 2.332667 5.5485401 222695.11 3 6
+ 57059 515.72168 -3217.9192 0.31159686 1382.7848 0.18415364 544 577 6.0069324 0.19190662 0.00082370879 2.332667 5.5485401 222695.11 3 6
+Loop time of 0.0361512 on 4 procs for 59 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 57000 515.72168 -3198.6584 0.31159686 1382.7848 0.18415364 544 577 6.0069324 0.19210526 0.0008245614 2.332667 5.5485401 222695.11 3 6
+ 58000 493.40021 -3198.8621 0 1 0.30931038 275 577 6.0069324 0.18989655 0.00081034483 2.332667 5.5485401 225894.02 3 6
+Loop time of 0.304723 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 58000 493.40021 -3198.8621 0 1 0.30931038 275 577 6.0069324 0.18989655 0.00081034483 2.332667 5.5485401 225894.02 3 6
+ 58055 493.40021 -3217.9192 0 1 0.30931038 275 577 6.0069324 0.18971665 0.00080957713 2.332667 5.5485401 225894.02 3 6
+Loop time of 0.034838 on 4 procs for 55 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 58000 493.40021 -3198.8621 0 1 0.30931038 275 577 6.0069324 0.18989655 0.00081034483 2.332667 5.5485401 225894.02 3 6
+ 59000 459.13337 -3198.423 0.32299123 1801.3772 0.17849812 117 288 6.0069324 0.189 0.00079661017 2.332667 5.5485401 232785.62 3 6
+Loop time of 0.267864 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 59000 459.13337 -3198.423 0.32299123 1801.3772 0.17849812 117 288 6.0069324 0.189 0.00079661017 2.332667 5.5485401 232785.62 3 6
+ 59052 459.13337 -3217.9192 0.32299123 1801.3772 0.17849812 117 288 6.0069324 0.18883357 0.00079590869 2.332667 5.5485401 232785.62 3 6
+Loop time of 0.0229472 on 4 procs for 52 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 59000 459.13337 -3198.423 0.32299123 1801.3772 0.17849812 117 288 6.0069324 0.189 0.00079661017 2.332667 5.5485401 232785.62 3 6
+ 60000 491.26878 -3198.9291 0.28012983 666.16416 0.19893876 560 567 6.0069324 0.18678333 0.00078333333 2.332667 5.5485401 236949.88 3 6
+Loop time of 0.224423 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 60000 491.26878 -3198.9291 0.28012983 666.16416 0.19893876 560 567 6.0069324 0.18678333 0.00078333333 2.332667 5.5485401 236949.88 3 6
+ 60051 491.26878 -3217.9192 0.28012983 666.16416 0.19893876 560 567 6.0069324 0.1866247 0.00078266807 2.332667 5.5485401 236949.88 3 6
+Loop time of 0.0231369 on 4 procs for 51 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 60000 491.26878 -3198.9291 0.28012983 666.16416 0.19893876 560 567 6.0069324 0.18678333 0.00078333333 2.332667 5.5485401 236949.88 3 6
+ 61000 469.65564 -3198.3735 0.086199081 7.3934564 0.27291787 562 564 6.0069324 0.18445902 0.0007704918 2.332667 5.5485401 245720.88 3 6
+Loop time of 0.228656 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 61000 469.65564 -3198.3735 0.086199081 7.3934564 0.27291787 562 564 6.0069324 0.18445902 0.0007704918 2.332667 5.5485401 245720.88 3 6
+ 61053 469.65564 -3217.9192 0.086199081 7.3934564 0.27291787 562 564 6.0069324 0.18429889 0.00076982294 2.332667 5.5485401 245720.88 3 6
+Loop time of 0.0245876 on 4 procs for 53 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 61000 469.65564 -3198.3735 0.086199081 7.3934564 0.27291787 562 564 6.0069324 0.18445902 0.0007704918 2.332667 5.5485401 245720.88 3 6
+ 62000 520.14843 -3198.5458 0.35275062 3593.8982 0.16280322 116 123 6.0069324 0.18312903 0.00075806452 2.332667 5.5485401 250136.37 3 6
+Loop time of 0.232165 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 62000 520.14843 -3198.5458 0.35275062 3593.8982 0.16280322 116 123 6.0069324 0.18312903 0.00075806452 2.332667 5.5485401 250136.37 3 6
+ 62056 520.14843 -3217.9192 0.35275062 3593.8982 0.16280322 116 123 6.0069324 0.18296377 0.00075738043 2.332667 5.5485401 250136.37 3 6
+Loop time of 0.0275648 on 4 procs for 56 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 62000 520.14843 -3198.5458 0.35275062 3593.8982 0.16280322 116 123 6.0069324 0.18312903 0.00075806452 2.332667 5.5485401 250136.37 3 6
+ 63000 506.90141 -3196.9575 0.019630501 1.5771264 0.29405188 577 555 6.0069324 0.18190476 0.00074603175 2.332667 5.5485401 257004.48 3 6
+Loop time of 0.236446 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 63000 506.90141 -3196.9575 0.019630501 1.5771264 0.29405188 577 555 6.0069324 0.18190476 0.00074603175 2.332667 5.5485401 257004.48 3 6
+ 63059 506.90141 -3217.9192 0.019630501 1.5771264 0.29405188 577 555 6.0069324 0.18173457 0.00074533374 2.332667 5.5485401 257004.48 3 6
+Loop time of 0.0258729 on 4 procs for 59 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 63000 506.90141 -3196.9575 0.019630501 1.5771264 0.29405188 577 555 6.0069324 0.18190476 0.00074603175 2.332667 5.5485401 257004.48 3 6
+ 64000 435.29185 -3197.3025 0.08981574 8.0408468 0.27172259 266 267 6.0069324 0.18060937 0.000734375 2.332667 5.5485401 261196.79 3 6
+Loop time of 0.224694 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 64000 435.29185 -3197.3025 0.08981574 8.0408468 0.27172259 266 267 6.0069324 0.18060937 0.000734375 2.332667 5.5485401 261196.79 3 6
+ 64053 435.29185 -3217.9192 0.08981574 8.0408468 0.27172259 266 267 6.0069324 0.18045993 0.00073376735 2.332667 5.5485401 261196.79 3 6
+Loop time of 0.023932 on 4 procs for 53 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 64000 435.29185 -3197.3025 0.08981574 8.0408468 0.27172259 266 267 6.0069324 0.18060937 0.000734375 2.332667 5.5485401 261196.79 3 6
+ 65000 484.45338 -3198.1013 0.27900382 648.98038 0.19944752 85 87 6.0069324 0.17955385 0.00072307692 2.332667 5.5485401 267611.45 3 6
+Loop time of 0.225038 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 65000 484.45338 -3198.1013 0.27900382 648.98038 0.19944752 85 87 6.0069324 0.17955385 0.00072307692 2.332667 5.5485401 267611.45 3 6
+ 65053 484.45338 -3217.9192 0.27900382 648.98038 0.19944752 85 87 6.0069324 0.17940756 0.00072248782 2.332667 5.5485401 267611.45 3 6
+Loop time of 0.0248089 on 4 procs for 53 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 65000 484.45338 -3198.1013 0.27900382 648.98038 0.19944752 85 87 6.0069324 0.17955385 0.00072307692 2.332667 5.5485401 267611.45 3 6
+ 66000 497.23553 -3199.036 0.25525209 373.95984 0.20989193 412 411 6.0069324 0.17804545 0.00071212121 2.332667 5.5485401 274383.49 3 6
+Loop time of 0.233376 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 66000 497.23553 -3199.036 0.25525209 373.95984 0.20989193 412 411 6.0069324 0.17804545 0.00071212121 2.332667 5.5485401 274383.49 3 6
+ 66058 497.23553 -3217.9192 0.25525209 373.95984 0.20989193 412 411 6.0069324 0.17788913 0.00071149596 2.332667 5.5485401 274383.49 3 6
+Loop time of 0.0279601 on 4 procs for 58 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 66000 497.23553 -3199.036 0.25525209 373.95984 0.20989193 412 411 6.0069324 0.17804545 0.00071212121 2.332667 5.5485401 274383.49 3 6
+ 67000 488.34684 -3198.7152 0.27967841 659.2212 0.19914288 264 275 6.0069324 0.17935821 0.00070149254 2.332667 5.5485401 274635.62 3 6
+Loop time of 0.237521 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 67000 488.34684 -3198.7152 0.27967841 659.2212 0.19914288 264 275 6.0069324 0.17935821 0.00070149254 2.332667 5.5485401 274635.62 3 6
+ 67055 488.34684 -3217.9192 0.27967841 659.2212 0.19914288 264 275 6.0069324 0.1792111 0.00070091716 2.332667 5.5485401 274635.62 3 6
+Loop time of 0.0262208 on 4 procs for 55 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 67000 488.34684 -3198.7152 0.27967841 659.2212 0.19914288 264 275 6.0069324 0.17935821 0.00070149254 2.332667 5.5485401 274635.62 3 6
+ 68000 547.06201 -3198.7151 0.11427629 14.185774 0.26349624 261 263 6.0069324 0.17882353 0.00069117647 2.332667 5.5485401 277575.99 3 6
+Loop time of 0.224043 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 68000 547.06201 -3198.7151 0.11427629 14.185774 0.26349624 261 263 6.0069324 0.17882353 0.00069117647 2.332667 5.5485401 277575.99 3 6
+ 68060 547.06201 -3217.9192 0.11427629 14.185774 0.26349624 261 263 6.0069324 0.17866588 0.00069056715 2.332667 5.5485401 277575.99 3 6
+Loop time of 0.0288572 on 4 procs for 60 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 68000 547.06201 -3198.7151 0.11427629 14.185774 0.26349624 261 263 6.0069324 0.17882353 0.00069117647 2.332667 5.5485401 277575.99 3 6
+ 69000 508.94771 -3198.9475 0.10069537 10.350552 0.26809482 264 275 6.0069324 0.18095652 0.00068115942 2.332667 5.5485401 279847.52 3 6
+Loop time of 0.227692 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 69000 508.94771 -3198.9475 0.10069537 10.350552 0.26809482 264 275 6.0069324 0.18095652 0.00068115942 2.332667 5.5485401 279847.52 3 6
+ 69056 508.94771 -3217.9192 0.10069537 10.350552 0.26809482 264 275 6.0069324 0.18080978 0.00068060704 2.332667 5.5485401 279847.52 3 6
+Loop time of 0.0247979 on 4 procs for 56 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 69000 508.94771 -3198.9475 0.10069537 10.350552 0.26809482 264 275 6.0069324 0.18095652 0.00068115942 2.332667 5.5485401 279847.52 3 6
+ 70000 499.92534 -3198.5636 0.3528879 3605.3669 0.16272731 283 288 6.0069324 0.18142857 0.00072857143 2.332667 5.5485401 281504.52 3 6
+Loop time of 0.232204 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 70000 499.92534 -3198.5636 0.3528879 3605.3669 0.16272731 283 288 6.0069324 0.18142857 0.00072857143 2.332667 5.5485401 281504.52 3 6
+ 70054 499.92534 -3217.9192 0.3528879 3605.3669 0.16272731 283 288 6.0069324 0.18128872 0.00072800982 2.332667 5.5485401 281504.52 3 6
+Loop time of 0.0249009 on 4 procs for 54 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 70000 499.92534 -3198.5636 0.3528879 3605.3669 0.16272731 283 288 6.0069324 0.18142857 0.00072857143 2.332667 5.5485401 281504.52 3 6
+ 71000 506.70688 -3197.313 0.082678879 6.813425 0.27407627 541 543 6.0069324 0.18050704 0.00071830986 2.332667 5.5485401 286003.61 3 6
+Loop time of 0.229025 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 71000 506.70688 -3197.313 0.082678879 6.813425 0.27407627 541 543 6.0069324 0.18050704 0.00071830986 2.332667 5.5485401 286003.61 3 6
+ 71059 506.70688 -3217.9192 0.082678879 6.813425 0.27407627 541 543 6.0069324 0.18035717 0.00071771345 2.332667 5.5485401 286003.61 3 6
+Loop time of 0.0265949 on 4 procs for 59 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 71000 506.70688 -3197.313 0.082678879 6.813425 0.27407627 541 543 6.0069324 0.18050704 0.00071830986 2.332667 5.5485401 286003.61 3 6
+ 72000 464.23294 -3197.7357 0 1 0.31542276 275 577 6.0069324 0.18266667 0.00070833333 2.332667 5.5485401 286734.83 3 6
+Loop time of 0.228346 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 72000 464.23294 -3197.7357 0 1 0.31542276 275 577 6.0069324 0.18266667 0.00070833333 2.332667 5.5485401 286734.83 3 6
+ 72053 464.23294 -3217.9192 0 1 0.31542276 275 577 6.0069324 0.1825323 0.0007078123 2.332667 5.5485401 286734.83 3 6
+Loop time of 0.026114 on 4 procs for 53 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 72000 464.23294 -3197.7357 0 1 0.31542276 275 577 6.0069324 0.18266667 0.00070833333 2.332667 5.5485401 286734.83 3 6
+ 73000 529.30216 -3198.1231 0.1005148 10.307265 0.26815543 411 416 6.0069324 0.18394521 0.00069863014 2.332667 5.5485401 287872.93 3 6
+Loop time of 0.229123 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 73000 529.30216 -3198.1231 0.1005148 10.307265 0.26815543 411 416 6.0069324 0.18394521 0.00069863014 2.332667 5.5485401 287872.93 3 6
+ 73054 529.30216 -3217.9192 0.1005148 10.307265 0.26815543 411 416 6.0069324 0.18380924 0.00069811372 2.332667 5.5485401 287872.93 3 6
+Loop time of 0.0243089 on 4 procs for 54 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 73000 529.30216 -3198.1231 0.1005148 10.307265 0.26815543 411 416 6.0069324 0.18394521 0.00069863014 2.332667 5.5485401 287872.93 3 6
+ 74000 490.65557 -3199.6766 0.14904687 31.792497 0.25133954 111 116 6.0069324 0.18322973 0.00068918919 2.332667 5.5485401 294766.16 3 6
+Loop time of 0.236133 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 74000 490.65557 -3199.6766 0.14904687 31.792497 0.25133954 111 116 6.0069324 0.18322973 0.00068918919 2.332667 5.5485401 294766.16 3 6
+ 74055 490.65557 -3217.9192 0.14904687 31.792497 0.25133954 111 116 6.0069324 0.18309365 0.00068867733 2.332667 5.5485401 294766.16 3 6
+Loop time of 0.0264881 on 4 procs for 55 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 74000 490.65557 -3199.6766 0.14904687 31.792497 0.25133954 111 116 6.0069324 0.18322973 0.00068918919 2.332667 5.5485401 294766.16 3 6
+ 75000 475.22638 -3198.1558 0.37341486 5805.6632 0.15094809 563 564 6.0069324 0.18212 0.00073333333 2.332667 5.5485401 302150.54 3 6
+Loop time of 0.228974 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 75000 475.22638 -3198.1558 0.37341486 5805.6632 0.15094809 563 564 6.0069324 0.18212 0.00073333333 2.332667 5.5485401 302150.54 3 6
+ 75053 475.22638 -3217.9192 0.37341486 5805.6632 0.15094809 563 564 6.0069324 0.18199139 0.00073281548 2.332667 5.5485401 302150.54 3 6
+Loop time of 0.0246332 on 4 procs for 53 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 75000 475.22638 -3198.1558 0.37341486 5805.6632 0.15094809 563 564 6.0069324 0.18212 0.00073333333 2.332667 5.5485401 302150.54 3 6
+ 76000 523.91803 -3198.8966 0.038679316 2.4539737 0.28816267 263 264 6.0069324 0.18286842 0.00072368421 2.332667 5.5485401 304160.3 3 6
+Loop time of 0.223991 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 76000 523.91803 -3198.8966 0.038679316 2.4539737 0.28816267 263 264 6.0069324 0.18286842 0.00072368421 2.332667 5.5485401 304160.3 3 6
+ 76058 523.91803 -3217.9192 0.038679316 2.4539737 0.28816267 263 264 6.0069324 0.18272897 0.00072313235 2.332667 5.5485401 304160.3 3 6
+Loop time of 0.0268497 on 4 procs for 58 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 76000 523.91803 -3198.8966 0.038679316 2.4539737 0.28816267 263 264 6.0069324 0.18286842 0.00072368421 2.332667 5.5485401 304160.3 3 6
+ 77000 511.16512 -3199.1926 0 1 0.31251901 264 275 6.0069324 0.18790909 0.00071428571 2.332667 5.5485401 304174.43 3 6
+Loop time of 0.226324 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 77000 511.16512 -3199.1926 0 1 0.31251901 264 275 6.0069324 0.18790909 0.00071428571 2.332667 5.5485401 304174.43 3 6
+ 77059 511.16512 -3217.9192 0 1 0.31251901 264 275 6.0069324 0.18776522 0.00071373882 2.332667 5.5485401 304174.43 3 6
+Loop time of 0.026314 on 4 procs for 59 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 77000 511.16512 -3199.1926 0 1 0.31251901 264 275 6.0069324 0.18790909 0.00071428571 2.332667 5.5485401 304174.43 3 6
+ 78000 554.58169 -3199.0107 0.022175428 1.6730858 0.29327193 263 264 6.0069324 0.19037179 0.00094871795 2.332667 5.5485401 304438.98 3 6
+Loop time of 0.234504 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 78000 554.58169 -3199.0107 0.022175428 1.6730858 0.29327193 263 264 6.0069324 0.19037179 0.00094871795 2.332667 5.5485401 304438.98 3 6
+ 78062 554.58169 -3217.9192 0.022175428 1.6730858 0.29327193 263 264 6.0069324 0.19022059 0.00094796444 2.332667 5.5485401 304438.98 3 6
+Loop time of 0.0297351 on 4 procs for 62 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 78000 554.58169 -3199.0107 0.022175428 1.6730858 0.29327193 263 264 6.0069324 0.19037179 0.00094871795 2.332667 5.5485401 304438.98 3 6
+ 79000 523.97176 -3198.2366 0.1672356 48.490735 0.24473985 556 567 6.0069324 0.19017722 0.00093670886 2.332667 5.5485401 306076.23 3 6
+Loop time of 0.228044 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 79000 523.97176 -3198.2366 0.1672356 48.490735 0.24473985 556 567 6.0069324 0.19017722 0.00093670886 2.332667 5.5485401 306076.23 3 6
+ 79057 523.97176 -3217.9192 0.1672356 48.490735 0.24473985 556 567 6.0069324 0.1900401 0.00093603349 2.332667 5.5485401 306076.23 3 6
+Loop time of 0.026444 on 4 procs for 57 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 79000 523.97176 -3198.2366 0.1672356 48.490735 0.24473985 556 567 6.0069324 0.19017722 0.00093670886 2.332667 5.5485401 306076.23 3 6
+ 80000 479.09781 -3197.6134 0 1 0.30854872 263 577 6.0069324 0.1902125 0.000925 2.332667 5.5485401 308522.09 3 6
+Loop time of 0.224854 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 80000 479.09781 -3197.6134 0 1 0.30854872 263 577 6.0069324 0.1902125 0.000925 2.332667 5.5485401 308522.09 3 6
+ 80059 479.09781 -3217.9192 0 1 0.30854872 263 577 6.0069324 0.19007232 0.00092431832 2.332667 5.5485401 308522.09 3 6
+Loop time of 0.0272751 on 4 procs for 59 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 80000 479.09781 -3197.6134 0 1 0.30854872 263 577 6.0069324 0.1902125 0.000925 2.332667 5.5485401 308522.09 3 6
+ 81000 517.52613 -3198.2236 0.29863857 1023.6251 0.19038135 254 256 6.0069324 0.18996296 0.00091358025 2.332667 5.5485401 311171.12 3 6
+Loop time of 0.226269 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 81000 517.52613 -3198.2236 0.29863857 1023.6251 0.19038135 254 256 6.0069324 0.18996296 0.00091358025 2.332667 5.5485401 311171.12 3 6
+ 81056 517.52613 -3217.9192 0.29863857 1023.6251 0.19038135 254 256 6.0069324 0.18983172 0.00091294907 2.332667 5.5485401 311171.12 3 6
+Loop time of 0.0258186 on 4 procs for 56 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 81000 517.52613 -3198.2236 0.29863857 1023.6251 0.19038135 254 256 6.0069324 0.18996296 0.00091358025 2.332667 5.5485401 311171.12 3 6
+ 82000 503.95678 -3197.7481 0.091495497 8.3605139 0.27116565 263 264 6.0069324 0.18862195 0.0010365854 2.332667 5.5485401 315319.38 3 6
+Loop time of 0.235559 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 82000 503.95678 -3197.7481 0.091495497 8.3605139 0.27116565 263 264 6.0069324 0.18862195 0.0010365854 2.332667 5.5485401 315319.38 3 6
+ 82055 503.95678 -3217.9192 0.091495497 8.3605139 0.27116565 263 264 6.0069324 0.18849552 0.0010358906 2.332667 5.5485401 315319.38 3 6
+Loop time of 0.0261242 on 4 procs for 55 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 82000 503.95678 -3197.7481 0.091495497 8.3605139 0.27116565 263 264 6.0069324 0.18862195 0.0010365854 2.332667 5.5485401 315319.38 3 6
+ 83000 537.67639 -3197.6886 0 1 0.32414276 263 264 6.0069324 0.1896988 0.0010240964 2.332667 5.5485401 316613.84 3 6
+Loop time of 0.227873 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 83000 537.67639 -3197.6886 0 1 0.32414276 263 264 6.0069324 0.1896988 0.0010240964 2.332667 5.5485401 316613.84 3 6
+ 83064 537.67639 -3217.9192 0 1 0.32414276 263 264 6.0069324 0.18955263 0.0010233073 2.332667 5.5485401 316613.84 3 6
+Loop time of 0.0301323 on 4 procs for 64 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 83000 537.67639 -3197.6886 0 1 0.32414276 263 264 6.0069324 0.1896988 0.0010240964 2.332667 5.5485401 316613.84 3 6
+ 84000 510.26841 -3199.5428 0.23554832 236.71181 0.21817723 142 424 6.0069324 0.19 0.0010119048 2.332667 5.5485401 318598.08 3 6
+Loop time of 0.228573 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 84000 510.26841 -3199.5428 0.23554832 236.71181 0.21817723 142 424 6.0069324 0.19 0.0010119048 2.332667 5.5485401 318598.08 3 6
+ 84052 510.26841 -3217.9192 0.23554832 236.71181 0.21817723 142 424 6.0069324 0.18988245 0.0010112787 2.332667 5.5485401 318598.08 3 6
+Loop time of 0.0254717 on 4 procs for 52 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 84000 510.26841 -3199.5428 0.23554832 236.71181 0.21817723 142 424 6.0069324 0.19 0.0010119048 2.332667 5.5485401 318598.08 3 6
+ 85000 472.16876 -3197.5248 0 1 0.34247044 264 275 6.0069324 0.18970588 0.001 2.332667 5.5485401 323882.61 3 6
+Loop time of 0.231174 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 85000 472.16876 -3197.5248 0 1 0.34247044 264 275 6.0069324 0.18970588 0.001 2.332667 5.5485401 323882.61 3 6
+ 85055 472.16876 -3217.9192 0 1 0.34247044 264 275 6.0069324 0.18958321 0.00099935336 2.332667 5.5485401 323882.61 3 6
+Loop time of 0.0253472 on 4 procs for 55 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 85000 472.16876 -3197.5248 0 1 0.34247044 264 275 6.0069324 0.18970588 0.001 2.332667 5.5485401 323882.61 3 6
+ 86000 509.30024 -3198.3226 0.20619306 119.76563 0.22996793 275 276 6.0069324 0.19110465 0.00098837209 2.332667 5.5485401 325788.44 3 6
+Loop time of 0.241364 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 86000 509.30024 -3198.3226 0.20619306 119.76563 0.22996793 275 276 6.0069324 0.19110465 0.00098837209 2.332667 5.5485401 325788.44 3 6
+ 86053 509.30024 -3217.9192 0.20619306 119.76563 0.22996793 275 276 6.0069324 0.19098695 0.00098776336 2.332667 5.5485401 325788.44 3 6
+Loop time of 0.0262635 on 4 procs for 53 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 86000 509.30024 -3198.3226 0.20619306 119.76563 0.22996793 275 276 6.0069324 0.19110465 0.00098837209 2.332667 5.5485401 325788.44 3 6
+ 87000 478.57944 -3199.3497 0.19192384 86.001287 0.23548611 260 271 6.0069324 0.1897931 0.00097701149 2.332667 5.5485401 330047.59 3 6
+Loop time of 0.230381 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 87000 478.57944 -3199.3497 0.19192384 86.001287 0.23548611 260 271 6.0069324 0.1897931 0.00097701149 2.332667 5.5485401 330047.59 3 6
+ 87058 478.57944 -3217.9192 0.19192384 86.001287 0.23548611 260 271 6.0069324 0.18966666 0.00097636059 2.332667 5.5485401 330047.59 3 6
+Loop time of 0.0275965 on 4 procs for 58 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 87000 478.57944 -3199.3497 0.19192384 86.001287 0.23548611 260 271 6.0069324 0.1897931 0.00097701149 2.332667 5.5485401 330047.59 3 6
+ 88000 515.63138 -3198.9629 0.35491784 3779.2911 0.16160071 543 577 6.0069324 0.18827273 0.00096590909 2.332667 5.5485401 337304.34 3 6
+Loop time of 0.229339 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 88000 515.63138 -3198.9629 0.35491784 3779.2911 0.16160071 543 577 6.0069324 0.18827273 0.00096590909 2.332667 5.5485401 337304.34 3 6
+ 88050 515.63138 -3217.9192 0.35491784 3779.2911 0.16160071 543 577 6.0069324 0.18816581 0.00096536059 2.332667 5.5485401 337304.34 3 6
+Loop time of 0.0253522 on 4 procs for 50 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 88000 515.63138 -3198.9629 0.35491784 3779.2911 0.16160071 543 577 6.0069324 0.18827273 0.00096590909 2.332667 5.5485401 337304.34 3 6
+ 89000 520.37063 -3197.8234 0 1 0.92013924 262 275 6.0069324 0.19148315 0.0011123596 2.332667 5.5485401 339909.57 3 6
+Loop time of 0.234048 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 89000 520.37063 -3197.8234 0 1 0.92013924 262 275 6.0069324 0.19148315 0.0011123596 2.332667 5.5485401 339909.57 3 6
+ 89052 520.37063 -3217.9192 0 1 0.92013924 262 275 6.0069324 0.19137133 0.00111171 2.332667 5.5485401 339909.57 3 6
+Loop time of 0.0242915 on 4 procs for 52 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 89000 520.37063 -3197.8234 0.34652166 3110.1454 0.16621101 111 112 6.0069324 0.19148315 0.0011123596 2.332667 5.5485401 339909.57 4 8
+ 90000 455.69218 -3197.8262 0.30521336 1192.3721 0.18724742 416 415 6.0069324 0.1905 0.0011 2.332667 5.5485401 345606.41 4 8
+Loop time of 0.239736 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 90000 455.69218 -3197.8262 0.30521336 1192.3721 0.18724742 416 415 6.0069324 0.1905 0.0011 2.332667 5.5485401 345606.41 4 8
+ 90058 455.69218 -3217.9192 0.30521336 1192.3721 0.18724742 416 415 6.0069324 0.19037731 0.0010992916 2.332667 5.5485401 345606.41 4 8
+Loop time of 0.027481 on 4 procs for 58 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 90000 455.69218 -3197.8262 0.30521336 1192.3721 0.18724742 416 415 6.0069324 0.1905 0.0011 2.332667 5.5485401 345606.41 4 8
+ 91000 506.17768 -3197.1344 0.035696451 2.2898339 0.28909279 547 548 6.0069324 0.18983516 0.0010879121 2.332667 5.5485401 350825.27 4 8
+Loop time of 0.23396 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 91000 506.17768 -3197.1344 0.035696451 2.2898339 0.28909279 547 548 6.0069324 0.18983516 0.0010879121 2.332667 5.5485401 350825.27 4 8
+ 91051 506.17768 -3217.9192 0.035696451 2.2898339 0.28909279 547 548 6.0069324 0.18972883 0.0010873027 2.332667 5.5485401 350825.27 4 8
+Loop time of 0.0249534 on 4 procs for 51 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 91000 506.17768 -3197.1344 0.035696451 2.2898339 0.28909279 547 548 6.0069324 0.18983516 0.0010879121 2.332667 5.5485401 350825.27 4 8
+ 92000 478.3025 -3197.9483 0 1 0.30393958 544 556 6.0069324 0.19196739 0.001076087 2.332667 5.5485401 352816.62 4 8
+Loop time of 0.233376 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 92000 478.3025 -3197.9483 0 1 0.30393958 544 556 6.0069324 0.19196739 0.001076087 2.332667 5.5485401 352816.62 4 8
+ 92060 478.3025 -3217.9192 0 1 0.30393958 544 556 6.0069324 0.19184228 0.0010753856 2.332667 5.5485401 352816.62 4 8
+Loop time of 0.0286014 on 4 procs for 60 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 92000 478.3025 -3197.9483 0 1 0.30393958 544 556 6.0069324 0.19196739 0.001076087 2.332667 5.5485401 352816.62 4 8
+ 93000 485.23153 -3199.9299 0.16699022 48.215364 0.24483006 544 556 6.0069324 0.1942043 0.0010645161 2.332667 5.5485401 354391.05 4 8
+Loop time of 0.234626 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 93000 485.23153 -3199.9299 0.16699022 48.215364 0.24483006 544 556 6.0069324 0.1942043 0.0010645161 2.332667 5.5485401 354391.05 4 8
+ 93056 485.23153 -3217.9192 0.16699022 48.215364 0.24483006 544 556 6.0069324 0.19408743 0.0010638755 2.332667 5.5485401 354391.05 4 8
+Loop time of 0.0261769 on 4 procs for 56 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 93000 485.23153 -3199.9299 0.16699022 48.215364 0.24483006 544 556 6.0069324 0.1942043 0.0010645161 2.332667 5.5485401 354391.05 4 8
+ 94000 499.72991 -3199.3195 0 1 0.30394408 544 556 6.0069324 0.19443617 0.0010531915 2.332667 5.5485401 360147.54 4 8
+Loop time of 0.229448 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 94000 499.72991 -3199.3195 0 1 0.30394408 544 556 6.0069324 0.19443617 0.0010531915 2.332667 5.5485401 360147.54 4 8
+ 94061 499.72991 -3217.9192 0 1 0.30394408 544 556 6.0069324 0.19431008 0.0010525085 2.332667 5.5485401 360147.54 4 8
+Loop time of 0.0281783 on 4 procs for 61 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 94000 499.72991 -3199.3195 0 1 0.30394408 544 556 6.0069324 0.19443617 0.0010531915 2.332667 5.5485401 360147.54 4 8
+ 95000 509.83941 -3199.0903 0.078854869 6.234781 0.27532912 555 556 6.0069324 0.19681053 0.0010421053 2.332667 5.5485401 360599.28 4 8
+Loop time of 0.224206 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 95000 509.83941 -3199.0903 0.078854869 6.234781 0.27532912 555 556 6.0069324 0.19681053 0.0010421053 2.332667 5.5485401 360599.28 4 8
+ 95060 509.83941 -3217.9192 0.078854869 6.234781 0.27532912 555 556 6.0069324 0.1966863 0.0010414475 2.332667 5.5485401 360599.28 4 8
+Loop time of 0.027992 on 4 procs for 60 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 95000 509.83941 -3199.0903 0.078854869 6.234781 0.27532912 555 556 6.0069324 0.19681053 0.0010421053 2.332667 5.5485401 360599.28 4 8
+ 96000 486.83779 -3197.2106 0.31070799 1354.5503 0.18458755 136 431 6.0069324 0.19620833 0.00103125 2.332667 5.5485401 365489.89 4 8
+Loop time of 0.228167 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 96000 486.83779 -3197.2106 0.31070799 1354.5503 0.18458755 136 431 6.0069324 0.19620833 0.00103125 2.332667 5.5485401 365489.89 4 8
+ 96053 486.83779 -3217.9192 0.31070799 1354.5503 0.18458755 136 431 6.0069324 0.19610007 0.001030681 2.332667 5.5485401 365489.89 4 8
+Loop time of 0.024569 on 4 procs for 53 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 96000 486.83779 -3197.2106 0.31070799 1354.5503 0.18458755 136 431 6.0069324 0.19620833 0.00103125 2.332667 5.5485401 365489.89 4 8
+ 97000 499.91835 -3199.2446 0.2280334 198.82589 0.22125548 280 111 6.0069324 0.19491753 0.0010206186 2.332667 5.5485401 372336.45 4 8
+Loop time of 0.23889 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 97000 499.91835 -3199.2446 0.2280334 198.82589 0.22125548 280 111 6.0069324 0.19491753 0.0010206186 2.332667 5.5485401 372336.45 4 8
+ 97052 499.91835 -3217.9192 0.2280334 198.82589 0.22125548 280 111 6.0069324 0.19481309 0.0010200717 2.332667 5.5485401 372336.45 4 8
+Loop time of 0.0262206 on 4 procs for 52 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 97000 499.91835 -3199.2446 0.2280334 198.82589 0.22125548 280 111 6.0069324 0.19491753 0.0010206186 2.332667 5.5485401 372336.45 4 8
+ 98000 547.56456 -3197.2191 0.27848637 641.23302 0.19968088 430 136 6.0069324 0.1957449 0.0010102041 2.332667 5.5485401 377711.41 4 8
+Loop time of 0.239305 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 98000 547.56456 -3197.2191 0.27848637 641.23302 0.19968088 430 136 6.0069324 0.1957449 0.0010102041 2.332667 5.5485401 377711.41 4 8
+ 98054 547.56456 -3217.9192 0.27848637 641.23302 0.19968088 430 136 6.0069324 0.1956371 0.0010096477 2.332667 5.5485401 377711.41 4 8
+Loop time of 0.0272166 on 4 procs for 54 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 98000 547.56456 -3197.2191 0.27848637 641.23302 0.19968088 430 136 6.0069324 0.1957449 0.0010102041 2.332667 5.5485401 377711.41 4 8
+ 99000 504.19627 -3196.6567 0 1 0.33814873 287 276 6.0069324 0.19517172 0.001 2.332667 5.5485401 381676.19 4 8
+Loop time of 0.235176 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 99000 504.19627 -3196.6567 0 1 0.33814873 287 276 6.0069324 0.19517172 0.001 2.332667 5.5485401 381676.19 4 8
+ 99053 504.19627 -3217.9192 0 1 0.33814873 287 276 6.0069324 0.19506729 0.00099946493 2.332667 5.5485401 381676.19 4 8
+Loop time of 0.0249114 on 4 procs for 53 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 99000 504.19627 -3196.6567 0 1 0.33814873 287 276 6.0069324 0.19517172 0.001 2.332667 5.5485401 381676.19 4 8
+ 100000 542.04702 -3198.2211 0.37630331 6208.2061 0.14921597 563 564 6.0069324 0.19442 0.00099 2.332667 5.5485401 385211.4 4 8
+Loop time of 0.226452 on 4 procs for 1000 steps with 577 atoms
+
+Step Temp PotEng f_HG f_HG[1] f_HG[2] f_HG[3] f_HG[4] f_HG[5] f_HG[6] f_HG[7] f_HG[8] f_HG[9] f_HG[10] f_HG[11] f_HG[12]
+ 100000 542.04702 -3198.2211 0.37630331 6208.2061 0.14921597 563 564 6.0069324 0.19442 0.00099 2.332667 5.5485401 385211.4 4 8
+ 100060 542.04702 -3217.9192 0.37630331 6208.2061 0.14921597 563 564 6.0069324 0.19430342 0.00098940636 2.332667 5.5485401 385211.4 4 8
+Loop time of 0.0303354 on 4 procs for 60 steps with 577 atoms
+
+Final hyper stats ...
+
+Cummulative quantities for fix hyper:
+ hyper time = 385211
+ time boost factor = 770.423
+ event timesteps = 4
+ # of atoms in events = 8
+Quantities for this hyper run:
+ event timesteps = 4
+ # of atoms in events = 8
+ max length of any bond = 5.54854
+ max drift distance of any atom = 2.33267
+ fraction of biased bonds with zero bias = 0.19442
+ fraction of biased bonds with negative strain = 0.00099
+Current quantities:
+ ave bonds/atom = 6.00693
+
+Loop time of 26.6054 on 4 procs for 100000 steps with 577 atoms
+
+Performance: 1623.732 ns/day, 0.015 hours/ns, 3758.639 timesteps/s
+100.6% CPU use with 4 MPI tasks x no OpenMP threads
+
+Hyper stats:
+ Dynamics time (%) = 23.5897 (88.665)
+ Quench time (%) = 2.6357 (9.90664)
+ Other time (%) = 0.875172 (3.28945)
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 18.942 | 19.435 | 20.026 | 10.1 | 73.05
+Neigh | 1.3021 | 1.3833 | 1.4611 | 6.2 | 5.20
+Comm | 2.1376 | 2.1725 | 2.2239 | 2.2 | 8.17
+Output | 0.0033467 | 0.0034443 | 0.0037186 | 0.3 | 0.01
+Modify | 2.0693 | 2.7356 | 3.2627 | 30.2 | 10.28
+Other | | 0.8752 | | | 3.29
+
+Nlocal: 144.25 ave 152 max 139 min
+Histogram: 1 1 0 0 1 0 0 0 0 1
+Nghost: 533.25 ave 538 max 526 min
+Histogram: 1 0 0 0 0 1 0 0 0 2
+Neighs: 3368.25 ave 3528 max 3240 min
+Histogram: 1 1 0 0 0 0 1 0 0 1
+
+Total # of neighbors = 13473
+Ave neighs/atom = 23.3501
+Neighbor list builds = 10072
+Dangerous builds = 0
+Total wall time: 0:00:27
diff --git a/examples/hyper/log.25Mar19.hyper.local.g++.16 b/examples/hyper/log.25Mar19.hyper.local.g++.16
new file mode 100644
index 0000000000..b56406f963
--- /dev/null
+++ b/examples/hyper/log.25Mar19.hyper.local.g++.16
@@ -0,0 +1,1002 @@
+LAMMPS (28 Feb 2019)
+# 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 1500
+variable nevent index 100
+variable nx index 8
+variable ny index 8
+variable zoom index 1.8
+variable seed index 826626413
+variable tol index 1.0e-15
+variable add index 37K
+
+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 4 by 2 MPI processor grid
+create_atoms 1 box
+Created 576 atoms
+ Time spent = 0.00110102 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 8 ${ny} 1
+replicate 8 8 1
+ orthogonal box = (0 0 -0.392) to (188.16 188.16 19.6)
+ 4 by 4 by 1 MPI processor grid
+ 36864 atoms
+ Time spent = 0.00289989 secs
+
+# add adatoms
+
+include adatoms.list.${add}
+include adatoms.list.37K
+create_atoms 1 single 27.5 9.5 4
+Created 1 atoms
+ Time spent = 0.000200033 secs
+create_atoms 1 single 16 9 4
+Created 1 atoms
+ Time spent = 0.000183105 secs
+create_atoms 1 single 10 12 4
+Created 1 atoms
+ Time spent = 0.000180006 secs
+create_atoms 1 single 31 44 4
+Created 1 atoms
+ Time spent = 0.000190973 secs
+create_atoms 1 single 13 17 4
+Created 1 atoms
+ Time spent = 0.000185013 secs
+create_atoms 1 single 8.5 28.5 4
+Created 1 atoms
+ Time spent = 0.00018692 secs
+create_atoms 1 single 23 26 4
+Created 1 atoms
+ Time spent = 0.000179052 secs
+create_atoms 1 single 38 27 4
+Created 1 atoms
+ Time spent = 0.000191927 secs
+create_atoms 1 single 37.5 4.5 4
+Created 1 atoms
+ Time spent = 0.000238895 secs
+create_atoms 1 single 41.5 47.5 4
+Created 1 atoms
+ Time spent = 0.000191927 secs
+create_atoms 1 single 20.5 37.5 4
+Created 1 atoms
+ Time spent = 0.000185966 secs
+create_atoms 1 single 5 8 4
+Created 1 atoms
+ Time spent = 0.000170946 secs
+create_atoms 1 single 2.5 16.5 4
+Created 1 atoms
+ Time spent = 0.000174046 secs
+create_atoms 1 single 38.5 45.5 4
+Created 1 atoms
+ Time spent = 0.000172853 secs
+create_atoms 1 single 9 0 4
+Created 1 atoms
+ Time spent = 0.000187159 secs
+create_atoms 1 single 39 32 4
+Created 1 atoms
+ Time spent = 0.000180006 secs
+create_atoms 1 single 45.5 11.5 4
+Created 1 atoms
+ Time spent = 0.000189066 secs
+create_atoms 1 single 40 0 4
+Created 1 atoms
+ Time spent = 0.000170946 secs
+create_atoms 1 single 44.5 2.5 4
+Created 1 atoms
+ Time spent = 0.000191927 secs
+create_atoms 1 single 4.5 44.5 4
+Created 1 atoms
+ Time spent = 0.000169992 secs
+create_atoms 1 single 24.5 13.5 4
+Created 1 atoms
+ Time spent = 0.000166893 secs
+create_atoms 1 single 47.5 23.5 4
+Created 1 atoms
+ Time spent = 0.000181913 secs
+create_atoms 1 single 1 20 4
+Created 1 atoms
+ Time spent = 0.000167131 secs
+create_atoms 1 single 38.5 31.5 4
+Created 1 atoms
+ Time spent = 0.000169039 secs
+create_atoms 1 single 12.5 12.5 4
+Created 1 atoms
+ Time spent = 0.000165939 secs
+create_atoms 1 single 2 27 4
+Created 1 atoms
+ Time spent = 0.000170231 secs
+create_atoms 1 single 21 5 4
+Created 1 atoms
+ Time spent = 0.00018096 secs
+create_atoms 1 single 47 12 4
+Created 1 atoms
+ Time spent = 0.000166178 secs
+create_atoms 1 single 32.5 46.5 4
+Created 1 atoms
+ Time spent = 0.000166893 secs
+create_atoms 1 single 9.5 40.5 4
+Created 1 atoms
+ Time spent = 0.000165939 secs
+create_atoms 1 single 8.5 2.5 4
+Created 1 atoms
+ Time spent = 0.000169039 secs
+create_atoms 1 single 41.5 22.5 4
+Created 1 atoms
+ Time spent = 0.000175953 secs
+create_atoms 1 single 29 11 4
+Created 1 atoms
+ Time spent = 0.000165939 secs
+create_atoms 1 single 3.5 3.5 4
+Created 1 atoms
+ Time spent = 0.000174999 secs
+create_atoms 1 single 5 21 4
+Created 1 atoms
+ Time spent = 0.0001719 secs
+create_atoms 1 single 46.5 31.5 4
+Created 1 atoms
+ Time spent = 0.000169992 secs
+create_atoms 1 single 35 46 4
+Created 1 atoms
+ Time spent = 0.000178099 secs
+create_atoms 1 single 40.5 41.5 4
+Created 1 atoms
+ Time spent = 0.000168085 secs
+create_atoms 1 single 10 22 4
+Created 1 atoms
+ Time spent = 0.000169992 secs
+create_atoms 1 single 43.5 14.5 4
+Created 1 atoms
+ Time spent = 0.000169039 secs
+create_atoms 1 single 42 42 4
+Created 1 atoms
+ Time spent = 0.000184059 secs
+create_atoms 1 single 4 26 4
+Created 1 atoms
+ Time spent = 0.000178814 secs
+create_atoms 1 single 19 34 4
+Created 1 atoms
+ Time spent = 0.0001688 secs
+create_atoms 1 single 33 9 4
+Created 1 atoms
+ Time spent = 0.000168085 secs
+create_atoms 1 single 0.5 45.5 4
+Created 1 atoms
+ Time spent = 0.000169992 secs
+create_atoms 1 single 30.5 32.5 4
+Created 1 atoms
+ Time spent = 0.000169992 secs
+create_atoms 1 single 25.5 5.5 4
+Created 1 atoms
+ Time spent = 0.000169039 secs
+create_atoms 1 single 47.5 39.5 4
+Created 1 atoms
+ Time spent = 0.000169039 secs
+create_atoms 1 single 15 13 4
+Created 1 atoms
+ Time spent = 0.000174046 secs
+create_atoms 1 single 21 21 4
+Created 1 atoms
+ Time spent = 0.000166893 secs
+create_atoms 1 single 14 28 4
+Created 1 atoms
+ Time spent = 0.000170946 secs
+create_atoms 1 single 9 34 4
+Created 1 atoms
+ Time spent = 0.000174999 secs
+create_atoms 1 single 7 38 4
+Created 1 atoms
+ Time spent = 0.000167847 secs
+create_atoms 1 single 11 35 4
+Created 1 atoms
+ Time spent = 0.000168085 secs
+create_atoms 1 single 20.5 45.5 4
+Created 1 atoms
+ Time spent = 0.000177145 secs
+create_atoms 1 single 30.5 31.5 4
+Created 1 atoms
+ Time spent = 0.000167131 secs
+create_atoms 1 single 32.5 2.5 4
+Created 1 atoms
+ Time spent = 0.000169039 secs
+create_atoms 1 single 21.5 3.5 4
+Created 1 atoms
+ Time spent = 0.000166893 secs
+create_atoms 1 single 23 12 4
+Created 1 atoms
+ Time spent = 0.000169039 secs
+create_atoms 1 single 4.5 33.5 4
+Created 1 atoms
+ Time spent = 0.000178099 secs
+create_atoms 1 single 46 43 4
+Created 1 atoms
+ Time spent = 0.000175953 secs
+create_atoms 1 single 42.5 45.5 4
+Created 1 atoms
+ Time spent = 0.000169992 secs
+create_atoms 1 single 4.5 10.5 4
+Created 1 atoms
+ Time spent = 0.000175953 secs
+create_atoms 1 single 33.5 15.5 4
+Created 1 atoms
+ Time spent = 0.000158787 secs
+create_atoms 1 single 24 5 4
+Created 1 atoms
+ Time spent = 0.000158072 secs
+create_atoms 1 single 13 16 4
+Created 1 atoms
+ Time spent = 0.000158072 secs
+create_atoms 1 single 16.5 23.5 4
+Created 1 atoms
+ Time spent = 0.000160933 secs
+create_atoms 1 single 45.5 28.5 4
+Created 1 atoms
+ Time spent = 0.000159025 secs
+create_atoms 1 single 44.5 5.5 4
+Created 1 atoms
+ Time spent = 0.000158072 secs
+create_atoms 1 single 27.5 46.5 4
+Created 1 atoms
+ Time spent = 0.000158072 secs
+create_atoms 1 single 44.5 12.5 4
+Created 1 atoms
+ Time spent = 0.000158072 secs
+create_atoms 1 single 12 41 4
+Created 1 atoms
+ Time spent = 0.000166893 secs
+create_atoms 1 single 6 4 4
+Created 1 atoms
+ Time spent = 0.0001688 secs
+create_atoms 1 single 31.5 10.5 4
+Created 1 atoms
+ Time spent = 0.000158072 secs
+create_atoms 1 single 1 44 4
+Created 1 atoms
+ Time spent = 0.000157833 secs
+create_atoms 1 single 31 4 4
+Created 1 atoms
+ Time spent = 0.000156879 secs
+create_atoms 1 single 21 33 4
+Created 1 atoms
+ Time spent = 0.000172138 secs
+create_atoms 1 single 3 33 4
+Created 1 atoms
+ Time spent = 0.000156879 secs
+create_atoms 1 single 15 10 4
+Created 1 atoms
+ Time spent = 0.000156879 secs
+create_atoms 1 single 28.5 22.5 4
+Created 1 atoms
+ Time spent = 0.000161886 secs
+create_atoms 1 single 43 1 4
+Created 1 atoms
+ Time spent = 0.000166178 secs
+create_atoms 1 single 3.5 0.5 4
+Created 1 atoms
+ Time spent = 0.000164986 secs
+create_atoms 1 single 41 37 4
+Created 1 atoms
+ Time spent = 0.000160933 secs
+create_atoms 1 single 18.5 43.5 4
+Created 1 atoms
+ Time spent = 0.000158072 secs
+create_atoms 1 single 17 27 4
+Created 1 atoms
+ Time spent = 0.000159025 secs
+create_atoms 1 single 3 5 4
+Created 1 atoms
+ Time spent = 0.000161171 secs
+create_atoms 1 single 18.5 23.5 4
+Created 1 atoms
+ Time spent = 0.000164986 secs
+create_atoms 1 single 31.5 14.5 4
+Created 1 atoms
+ Time spent = 0.000158072 secs
+create_atoms 1 single 41 31 4
+Created 1 atoms
+ Time spent = 0.000159979 secs
+create_atoms 1 single 22 3 4
+Created 1 atoms
+ Time spent = 0.000158787 secs
+create_atoms 1 single 14.5 40.5 4
+Created 1 atoms
+ Time spent = 0.000156879 secs
+create_atoms 1 single 9 38 4
+Created 1 atoms
+ Time spent = 0.000155926 secs
+create_atoms 1 single 36 42 4
+Created 1 atoms
+ Time spent = 0.000170231 secs
+create_atoms 1 single 33 22 4
+Created 1 atoms
+ Time spent = 0.000158072 secs
+create_atoms 1 single 15.5 47.5 4
+Created 1 atoms
+ Time spent = 0.000162125 secs
+create_atoms 1 single 3 0 4
+Created 1 atoms
+ Time spent = 0.000157118 secs
+create_atoms 1 single 25.5 27.5 4
+Created 1 atoms
+ Time spent = 0.000159025 secs
+create_atoms 1 single 2.5 28.5 4
+Created 1 atoms
+ Time spent = 0.000166178 secs
+create_atoms 1 single 29.5 28.5 4
+Created 1 atoms
+ Time spent = 0.000160933 secs
+create_atoms 1 single 44.5 18.5 4
+Created 1 atoms
+ Time spent = 0.000155926 secs
+create_atoms 1 single 26 40 4
+Created 1 atoms
+ Time spent = 0.000157833 secs
+create_atoms 1 single 41 27 4
+Created 1 atoms
+ Time spent = 0.000156879 secs
+create_atoms 1 single 39.5 5.5 4
+Created 1 atoms
+ Time spent = 0.000167847 secs
+create_atoms 1 single 3 38 4
+Created 1 atoms
+ Time spent = 0.000156164 secs
+create_atoms 1 single 35 29 4
+Created 1 atoms
+ Time spent = 0.000154018 secs
+create_atoms 1 single 11 19 4
+Created 1 atoms
+ Time spent = 0.000164032 secs
+create_atoms 1 single 18 1 4
+Created 1 atoms
+ Time spent = 0.000154972 secs
+create_atoms 1 single 39.5 40.5 4
+Created 1 atoms
+ Time spent = 0.000157118 secs
+create_atoms 1 single 46 17 4
+Created 1 atoms
+ Time spent = 0.000164986 secs
+create_atoms 1 single 1.5 23.5 4
+Created 1 atoms
+ Time spent = 0.00015521 secs
+create_atoms 1 single 28.5 23.5 4
+Created 1 atoms
+ Time spent = 0.000153065 secs
+create_atoms 1 single 10 28 4
+Created 1 atoms
+ Time spent = 0.000154018 secs
+create_atoms 1 single 19 47 4
+Created 1 atoms
+ Time spent = 0.000159979 secs
+create_atoms 1 single 10.5 16.5 4
+Created 1 atoms
+ Time spent = 0.000163078 secs
+create_atoms 1 single 38 45 4
+Created 1 atoms
+ Time spent = 0.000158072 secs
+create_atoms 1 single 42.5 41.5 4
+Created 1 atoms
+ Time spent = 0.000159025 secs
+create_atoms 1 single 47.5 42.5 4
+Created 1 atoms
+ Time spent = 0.000155926 secs
+create_atoms 1 single 38 7 4
+Created 1 atoms
+ Time spent = 0.000154018 secs
+create_atoms 1 single 10 44 4
+Created 1 atoms
+ Time spent = 0.000158072 secs
+create_atoms 1 single 29.5 27.5 4
+Created 1 atoms
+ Time spent = 0.000159025 secs
+create_atoms 1 single 45 30 4
+Created 1 atoms
+ Time spent = 0.000172138 secs
+create_atoms 1 single 3 9 4
+Created 1 atoms
+ Time spent = 0.000145912 secs
+create_atoms 1 single 8.5 35.5 4
+Created 1 atoms
+ Time spent = 0.000148058 secs
+create_atoms 1 single 24 44 4
+Created 1 atoms
+ Time spent = 0.000145912 secs
+create_atoms 1 single 47 4 4
+Created 1 atoms
+ Time spent = 0.000155926 secs
+create_atoms 1 single 7.5 8.5 4
+Created 1 atoms
+ Time spent = 0.000146866 secs
+create_atoms 1 single 32.5 41.5 4
+Created 1 atoms
+ Time spent = 0.000146151 secs
+create_atoms 1 single 0.5 34.5 4
+Created 1 atoms
+ Time spent = 0.000145912 secs
+create_atoms 1 single 11 8 4
+Created 1 atoms
+ Time spent = 0.000146866 secs
+create_atoms 1 single 2 40 4
+Created 1 atoms
+ Time spent = 0.000148058 secs
+create_atoms 1 single 25 24 4
+Created 1 atoms
+ Time spent = 0.000154018 secs
+create_atoms 1 single 47.5 6.5 4
+Created 1 atoms
+ Time spent = 0.000145912 secs
+create_atoms 1 single 39.5 28.5 4
+Created 1 atoms
+ Time spent = 0.000147104 secs
+create_atoms 1 single 17 21 4
+Created 1 atoms
+ Time spent = 0.000150919 secs
+create_atoms 1 single 32 43 4
+Created 1 atoms
+ Time spent = 0.000149012 secs
+create_atoms 1 single 16.5 29.5 4
+Created 1 atoms
+ Time spent = 0.000154972 secs
+create_atoms 1 single 34 34 4
+Created 1 atoms
+ Time spent = 0.000145912 secs
+create_atoms 1 single 11.5 3.5 4
+Created 1 atoms
+ Time spent = 0.000148058 secs
+create_atoms 1 single 39 22 4
+Created 1 atoms
+ Time spent = 0.000148058 secs
+create_atoms 1 single 24.5 36.5 4
+Created 1 atoms
+ Time spent = 0.000146151 secs
+create_atoms 1 single 33 31 4
+Created 1 atoms
+ Time spent = 0.000149965 secs
+create_atoms 1 single 35.5 35.5 4
+Created 1 atoms
+ Time spent = 0.000185966 secs
+create_atoms 1 single 14.5 34.5 4
+Created 1 atoms
+ Time spent = 0.000144958 secs
+create_atoms 1 single 34 28 4
+Created 1 atoms
+ Time spent = 0.000144958 secs
+create_atoms 1 single 37 41 4
+Created 1 atoms
+ Time spent = 0.000146866 secs
+create_atoms 1 single 33 46 4
+Created 1 atoms
+ Time spent = 0.000149965 secs
+create_atoms 1 single 27.5 28.5 4
+Created 1 atoms
+ Time spent = 0.000149965 secs
+create_atoms 1 single 40.5 22.5 4
+Created 1 atoms
+ Time spent = 0.000148773 secs
+create_atoms 1 single 27.5 1.5 4
+Created 1 atoms
+ Time spent = 0.00014782 secs
+create_atoms 1 single 12 2 4
+Created 1 atoms
+ Time spent = 0.000146151 secs
+create_atoms 1 single 36 43 4
+Created 1 atoms
+ Time spent = 0.000145912 secs
+create_atoms 1 single 28.5 9.5 4
+Created 1 atoms
+ Time spent = 0.000144958 secs
+create_atoms 1 single 20.5 25.5 4
+Created 1 atoms
+ Time spent = 0.000154972 secs
+create_atoms 1 single 3 3 4
+Created 1 atoms
+ Time spent = 0.000144958 secs
+create_atoms 1 single 38 33 4
+Created 1 atoms
+ Time spent = 0.000145912 secs
+create_atoms 1 single 3 20 4
+Created 1 atoms
+ Time spent = 0.000149012 secs
+create_atoms 1 single 35 11 4
+Created 1 atoms
+ Time spent = 0.000154018 secs
+create_atoms 1 single 5 25 4
+Created 1 atoms
+ Time spent = 0.00014782 secs
+create_atoms 1 single 36.5 6.5 4
+Created 1 atoms
+ Time spent = 0.000152111 secs
+create_atoms 1 single 19.5 24.5 4
+Created 1 atoms
+ Time spent = 0.000144958 secs
+create_atoms 1 single 27 41 4
+Created 1 atoms
+ Time spent = 0.000147104 secs
+create_atoms 1 single 39.5 11.5 4
+Created 1 atoms
+ Time spent = 0.000145912 secs
+create_atoms 1 single 21.5 2.5 4
+Created 1 atoms
+ Time spent = 0.000152111 secs
+create_atoms 1 single 46.5 15.5 4
+Created 1 atoms
+ Time spent = 0.000145912 secs
+create_atoms 1 single 13 24 4
+Created 1 atoms
+ Time spent = 0.000153065 secs
+create_atoms 1 single 11 37 4
+Created 1 atoms
+ Time spent = 0.000146866 secs
+create_atoms 1 single 11.5 31.5 4
+Created 1 atoms
+ Time spent = 0.000158787 secs
+create_atoms 1 single 47 0 4
+Created 1 atoms
+ Time spent = 0.000144958 secs
+create_atoms 1 single 25.5 17.5 4
+Created 1 atoms
+ Time spent = 0.000144005 secs
+create_atoms 1 single 32 11 4
+Created 1 atoms
+ Time spent = 0.000149012 secs
+create_atoms 1 single 8 17 4
+Created 1 atoms
+ Time spent = 0.000145912 secs
+create_atoms 1 single 27.5 12.5 4
+Created 1 atoms
+ Time spent = 0.000145912 secs
+create_atoms 1 single 25 7 4
+Created 1 atoms
+ Time spent = 0.000144958 secs
+create_atoms 1 single 25.5 37.5 4
+Created 1 atoms
+ Time spent = 0.000161886 secs
+create_atoms 1 single 12 15 4
+Created 1 atoms
+ Time spent = 0.000144958 secs
+create_atoms 1 single 1 7 4
+Created 1 atoms
+ Time spent = 0.000154972 secs
+create_atoms 1 single 18.5 47.5 4
+Created 1 atoms
+ Time spent = 0.000162125 secs
+create_atoms 1 single 5 38 4
+Created 1 atoms
+ Time spent = 0.000145197 secs
+create_atoms 1 single 42 19 4
+Created 1 atoms
+ Time spent = 0.000147104 secs
+create_atoms 1 single 30.5 7.5 4
+Created 1 atoms
+ Time spent = 0.000145912 secs
+create_atoms 1 single 42.5 7.5 4
+Created 1 atoms
+ Time spent = 0.000145912 secs
+create_atoms 1 single 26.5 18.5 4
+Created 1 atoms
+ Time spent = 0.000150919 secs
+create_atoms 1 single 18.5 1.5 4
+Created 1 atoms
+ Time spent = 0.000144958 secs
+create_atoms 1 single 41.5 10.5 4
+Created 1 atoms
+ Time spent = 0.000151873 secs
+
+# define frozen substrate and mobile atoms
+
+region base block INF INF INF INF 0 1.8
+set region base type 2
+ 18432 settings made for type
+group base type 2
+18432 atoms in group base
+group mobile type 1
+18616 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 826626413 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:487)
+
+# 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 = 62 62 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.359 | 3.359 | 3.36 Mbytes
+Step Temp E_pair E_mol TotEng Press
+ 0 0 -206220.22 0 -206220.22 -52155.664
+ 100 188.18127 -206044.43 0 -205591.63 -25068.83
+ 200 274.34464 -205860.78 0 -205200.66 -40191.797
+ 300 325.66286 -205750.01 0 -204966.4 -31510.222
+ 400 352.48242 -205675.42 0 -204827.28 -35058.064
+ 500 370.88571 -205619.66 0 -204727.25 -32735.022
+ 600 388.62129 -205592.87 0 -204657.78 -33904.556
+ 700 389.54874 -205579.73 0 -204642.4 -32769.852
+ 800 395.56074 -205576.82 0 -204625.03 -33755.948
+ 900 398.03458 -205564.48 0 -204606.74 -32777.103
+ 1000 401.24089 -205562.85 0 -204597.4 -33785.341
+Loop time of 4.22555 on 16 procs for 1000 steps with 37048 atoms
+
+Performance: 102.235 ns/day, 0.235 hours/ns, 236.655 timesteps/s
+98.5% CPU use with 16 MPI tasks x no OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 3.2988 | 3.3283 | 3.3788 | 1.5 | 78.77
+Neigh | 0.22391 | 0.23756 | 0.28119 | 2.7 | 5.62
+Comm | 0.31341 | 0.3888 | 0.49372 | 8.0 | 9.20
+Output | 0.00041842 | 0.00042947 | 0.00048399 | 0.0 | 0.01
+Modify | 0.17166 | 0.2512 | 0.35242 | 9.5 | 5.94
+Other | | 0.0193 | | | 0.46
+
+Nlocal: 2315.5 ave 2332 max 2297 min
+Histogram: 2 0 0 3 4 0 2 1 2 2
+Nghost: 3186.31 ave 3205 max 3170 min
+Histogram: 2 1 3 0 2 3 2 1 0 2
+Neighs: 55590.9 ave 56174 max 55103 min
+Histogram: 2 2 1 1 4 1 3 0 0 2
+
+Total # of neighbors = 889454
+Ave neighs/atom = 24.0082
+Neighbor list builds = 105
+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:705)
+
+thermo_modify lost ignore
+thermo_modify temp tmobile
+WARNING: Temperature for thermo pressure is not for group all (../thermo.cpp:487)
+
+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
+
+# test of histogramming and dump output of bias coeffs
+
+#fix histo all ave/histo 10 100 1000 0.9 1.1 100 f_HL # mode vector kind local file tmp.histo
+#dump 2 all local 1000 tmp.local f_HL
+
+# run
+
+hyper ${steps} ${nevent} HL event min ${tol} ${tol} 1000 1000 dump 1
+hyper 1500 ${nevent} HL event min ${tol} ${tol} 1000 1000 dump 1
+hyper 1500 100 HL event min ${tol} ${tol} 1000 1000 dump 1
+hyper 1500 100 HL event min 1.0e-15 ${tol} 1000 1000 dump 1
+hyper 1500 100 HL event min 1.0e-15 1.0e-15 1000 1000 dump 1
+WARNING: Resetting reneighboring criteria during hyper (../hyper.cpp:133)
+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 = 62 62 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.941 | 6.942 | 6.942 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]
+ 0 401.24089 -205562.85 0 0 0 1 0 0 0 0 0 0 0 1e+20 0 0 0 0 0 0 0 0 0 0
+ 77 401.24089 -206534.96 0 0 0 1 0 0 0 0 0 0 0 1e+20 0 0 0 0 0 0 1540 0 0 0
+Loop time of 0.51152 on 16 procs for 77 steps with 37048 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]
+ 0 401.24089 -205562.85 24.755808 79 0.18753621 0 6.0138739 705.15041 3.5350432 0 0 0 0 1e+20 0 0 0 0 0 0 0 0 0 0
+ 100 400.6027 -205547.79 21.854739 92 0.43709939 0.99825259 6.0138739 705.15041 4.230764 92.74 0.03245633 0.0067931852 0.99890138 0.98969319 1.0024404 0 0 0 0 0 2000 0 0 0
+Loop time of 0.453073 on 16 procs for 100 steps with 37048 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]
+ 100 400.6027 -205547.79 21.854739 92 0.43709939 0.99825259 6.0138739 705.15041 4.230764 92.74 0.03245633 0.0067931852 0.99890138 0.98969319 1.0024404 0 0 0 0 0 2000 0 0 0
+ 177 400.6027 -206534.96 21.854739 92 0.43709939 0.99825259 6.0138739 705.15041 4.230764 52.39548 0.03245633 0.0067931852 0.56435106 0.98969319 1.0024404 0 0 0 0 0 3540 0 0 0
+Loop time of 0.494676 on 16 procs for 77 steps with 37048 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]
+ 100 400.6027 -205547.79 21.854339 92 0.43709939 0.99825259 6.0138739 705.15041 4.230764 92.74 0.03245633 0.0067931852 0.99890138 0.98969319 1.0024404 0 0 0 0 0 2000 0 0 0
+ 200 400.46944 -205544.7 23.349576 97 0.33740983 0.99723256 6.0138739 705.15041 4.230764 92.525 0.040097271 0.0058362605 0.99830632 0.98259113 1.0048777 0 0 0 0 0 4000 0 0 0
+Loop time of 0.450918 on 16 procs for 100 steps with 37048 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]
+ 200 400.46944 -205544.7 23.349576 97 0.33740983 0.99723256 6.0138739 705.15041 4.230764 92.525 0.040097271 0.0058362605 0.99830632 0.98259113 1.0048777 0 0 0 0 0 4000 0 0 0
+ 273 400.46944 -206534.96 23.349576 97 0.33740983 0.99723256 6.0138739 705.15041 4.230764 67.783883 0.040097271 0.0058362605 0.73135994 0.98259113 1.0048777 0 0 0 0 0 5460 0 0 0
+Loop time of 0.488918 on 16 procs for 73 steps with 37048 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]
+ 200 400.46944 -205544.7 23.349184 97 0.33740983 0.99723256 6.0138739 705.15041 4.230764 92.525 0.040097271 0.0058362605 0.99830632 0.98259113 1.0048777 0 0 0 0 0 4000 0 0 0
+ 300 396.89568 -205540.38 19.394419 94 0.35022551 0.99673595 6.0138739 705.15041 4.230764 93.376667 0.047799236 0.0063898904 0.99785232 0.97756247 1.0073497 0 0 0 0 0 6000 0 0 0
+Loop time of 0.45579 on 16 procs for 100 steps with 37048 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]
+ 300 396.89568 -205540.38 19.394419 94 0.35022551 0.99673595 6.0138739 705.15041 4.230764 93.376667 0.047799236 0.0063898904 0.99785232 0.97756247 1.0073497 0 0 0 0 0 6000 0 0 0
+ 373 396.89568 -206534.96 19.394419 94 0.35022551 0.99673595 6.0138739 705.15041 4.230764 75.101877 0.047799236 0.0063898904 0.80256219 0.97756247 1.0073497 0 0 0 0 0 7460 0 0 0
+Loop time of 0.49254 on 16 procs for 73 steps with 37048 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]
+ 300 396.89568 -205540.38 19.394206 94 0.35022551 0.99673595 6.0138739 705.15041 4.230764 93.376667 0.047799236 0.0063898904 0.99785232 0.97756247 1.0073497 0 0 0 0 0 6000 0 0 0
+ 400 399.1218 -205541.68 18.990804 94 0.3505205 0.99638391 6.0138739 705.15041 4.230764 93.3775 0.055982437 0.0068271264 0.99752641 0.97044214 1.0098482 0 0 0 0 0 8000 0 0 0
+Loop time of 0.452751 on 16 procs for 100 steps with 37048 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]
+ 400 399.1218 -205541.68 18.990804 94 0.3505205 0.99638391 6.0138739 705.15041 4.230764 93.3775 0.055982437 0.0068271264 0.99752641 0.97044214 1.0098482 0 0 0 0 0 8000 0 0 0
+ 475 399.1218 -206534.96 18.990804 94 0.3505205 0.99638391 6.0138739 705.15041 4.230764 78.633684 0.055982437 0.0068271264 0.84002224 0.97044214 1.0098482 0 0 0 0 0 9500 0 0 0
+Loop time of 0.4963 on 16 procs for 75 steps with 37048 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]
+ 400 399.1218 -205541.68 18.990689 94 0.3505205 0.99638391 6.0138739 705.15041 4.230764 93.3775 0.055982437 0.0068271264 0.99752641 0.97044214 1.0098482 0 0 0 0 0 8000 0 0 0
+ 500 399.61667 -205539.79 19.794362 99 0.33740217 0.99633812 6.0138739 705.15041 4.230764 93.222 0.063096694 0.0076591363 0.99729174 0.96745199 1.0123163 0 0 0 0 0 10000 0 0 0
+Loop time of 0.45226 on 16 procs for 100 steps with 37048 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]
+ 500 399.61667 -205539.79 19.794362 99 0.33740217 0.99633812 6.0138739 705.15041 4.230764 93.222 0.063096694 0.0076591363 0.99729174 0.96745199 1.0123163 0 0 0 0 0 10000 0 0 0
+ 577 399.61667 -206534.96 19.794362 99 0.33740217 0.99633812 6.0138739 705.15041 4.230764 80.781629 0.063096694 0.0076591363 0.86420428 0.96745199 1.0123163 0 0 0 0 0 11540 0 0 0
+Loop time of 0.518479 on 16 procs for 77 steps with 37048 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]
+ 500 399.61667 -205539.79 19.79402 99 0.33740217 0.99633812 6.0138739 705.15041 4.230764 93.222 0.063096694 0.0076591363 0.99729174 0.96745199 1.0123163 0 0 0 0 0 10000 0 0 0
+ 600 397.41676 -205529.51 20.336863 99 0.35185916 0.99625666 6.0138739 705.15041 4.230764 93.621667 0.066686842 0.0091859078 0.99712746 0.96713729 1.0148143 0 0 0 0 0 12000 0 0 0
+Loop time of 0.452059 on 16 procs for 100 steps with 37048 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]
+ 600 397.41676 -205529.51 20.336863 99 0.35185916 0.99625666 6.0138739 705.15041 4.230764 93.621667 0.066686842 0.0091859078 0.99712746 0.96713729 1.0148143 0 0 0 0 0 12000 0 0 0
+ 677 397.41676 -206534.96 20.336863 99 0.35185916 0.99625666 6.0138739 705.15041 4.230764 82.973412 0.066686842 0.0091859078 0.8837171 0.96713729 1.0148143 0 0 0 0 0 13540 0 0 0
+Loop time of 0.5171 on 16 procs for 77 steps with 37048 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]
+ 600 397.41676 -205529.51 20.336526 99 0.35185916 0.99625666 6.0138739 705.15041 4.230764 93.621667 0.066686842 0.0091859078 0.99712746 0.96713729 1.0148143 0 0 0 0 0 12000 0 0 0
+ 700 403.33442 -205550.89 18.955866 93 0.42542334 0.99592297 6.0138739 705.15041 4.230764 94.135714 0.068078003 0.0094089081 0.99698101 0.9641519 1.0173022 0 0 0 0 0 14000 0 0 0
+Loop time of 0.450117 on 16 procs for 100 steps with 37048 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]
+ 700 403.33442 -205550.89 18.955866 93 0.42542334 0.99592297 6.0138739 705.15041 4.230764 94.135714 0.068078003 0.0094089081 0.99698101 0.9641519 1.0173022 0 0 0 0 0 14000 0 0 0
+ 783 403.33442 -206534.96 18.955866 93 0.42542334 0.99592297 6.0138739 705.15041 4.230764 84.157088 0.068078003 0.0094089081 0.89129847 0.9641519 1.0173022 0 0 0 0 0 15660 0 0 0
+Loop time of 0.541959 on 16 procs for 83 steps with 37048 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]
+ 700 403.33442 -205550.89 18.955589 93 0.42542334 0.99592297 6.0138739 705.15041 4.230764 94.135714 0.068078003 0.0094089081 0.99698101 0.9641519 1.0173022 0 0 0 0 0 14000 0 0 0
+ 800 397.5897 -205530.58 19.298375 97 0.42432974 0.99573055 6.0138739 705.15041 4.2562861 94.69125 0.070492258 0.0098477948 0.99683461 0.96199283 1.0198015 0 0 0 0 0 16000 0 0 0
+Loop time of 0.454322 on 16 procs for 100 steps with 37048 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]
+ 800 397.5897 -205530.58 19.298375 97 0.42432974 0.99573055 6.0138739 705.15041 4.2562861 94.69125 0.070492258 0.0098477948 0.99683461 0.96199283 1.0198015 0 0 0 0 0 16000 0 0 0
+ 877 397.5897 -206534.96 19.298375 97 0.42432974 0.99573055 6.0138739 705.15041 4.2562861 86.377423 0.070492258 0.0098477948 0.90931322 0.96199283 1.0198015 0 0 0 0 0 17540 0 0 0
+Loop time of 0.502899 on 16 procs for 77 steps with 37048 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]
+ 800 397.5897 -205530.58 19.29822 97 0.42432974 0.99573055 6.0138739 705.15041 4.2562861 94.69125 0.070492258 0.0098477948 0.99683461 0.96199283 1.0198015 0 0 0 0 0 16000 0 0 0
+ 900 402.04231 -205545.55 18.434766 91 0.34927854 0.99563819 6.0138739 705.15041 4.2562861 94.956667 0.072594517 0.0091737752 0.99670822 0.95723843 1.0223007 0 0 0 0 0 18000 0 0 0
+Loop time of 0.451618 on 16 procs for 100 steps with 37048 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]
+ 900 402.04231 -205545.55 18.434766 91 0.34927854 0.99563819 6.0138739 705.15041 4.2562861 94.956667 0.072594517 0.0091737752 0.99670822 0.95723843 1.0223007 0 0 0 0 0 18000 0 0 0
+ 976 402.04231 -206534.96 18.434766 91 0.34927854 0.99563819 6.0138739 705.15041 4.2562861 87.5625 0.072594517 0.0091737752 0.91909569 0.95723843 1.0223007 0 0 0 0 0 19520 0 0 0
+Loop time of 0.493429 on 16 procs for 76 steps with 37048 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]
+ 900 402.04231 -205545.55 18.434576 91 0.34927854 0.99563819 6.0138739 705.15041 4.2562861 94.956667 0.072594517 0.0091737752 0.99670822 0.95723843 1.0223007 0 0 0 0 0 18000 0 0 0
+ 1000 403.13682 -205538.62 20.371378 100 0.36854432 0.99555559 6.0138739 705.15041 4.2562861 94.973 0.075589904 0.0088025018 0.99659567 0.95567008 1.0247999 0 0 0 0 0 20000 0 0 0
+Loop time of 0.452482 on 16 procs for 100 steps with 37048 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]
+ 1000 403.13682 -205538.62 20.371378 100 0.36854432 0.99555559 6.0138739 705.15041 4.2562861 94.973 0.075589904 0.0088025018 0.99659567 0.95567008 1.0247999 0 0 0 0 0 20000 0 0 0
+ 1081 403.13682 -206534.96 20.371378 100 0.36854432 0.99555559 6.0138739 705.15041 4.2562861 87.856614 0.075589904 0.0088025018 0.92192014 0.95567008 1.0247999 0 0 0 0 0 21620 0 0 0
+Loop time of 0.521678 on 16 procs for 81 steps with 37048 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]
+ 1000 403.13682 -205538.62 20.371013 100 0.36854432 0.99555559 6.0138739 705.15041 4.2562861 94.973 0.075589904 0.0088025018 0.99659567 0.95567008 1.0247999 0 0 0 0 0 20000 0 0 0
+ 1100 401.64961 -205531.15 16.838899 93 0.37998317 0.99541314 6.0138739 705.15041 4.2562861 95.323636 0.077697032 0.0088979171 0.99649521 0.95206312 1.0272987 0 0 0 0 0 22000 0 0 0
+Loop time of 0.452415 on 16 procs for 100 steps with 37048 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]
+ 1100 401.64961 -205531.15 16.838899 93 0.37998317 0.99541314 6.0138739 705.15041 4.2562861 95.323636 0.077697032 0.0088979171 0.99649521 0.95206312 1.0272987 0 0 0 0 0 22000 0 0 0
+ 1179 401.64961 -206534.96 16.838899 93 0.37998317 0.99541314 6.0138739 705.15041 4.2562861 88.936387 0.077697032 0.0088979171 0.92972412 0.95206312 1.0272987 0 0 0 0 0 23580 0 0 0
+Loop time of 0.50337 on 16 procs for 79 steps with 37048 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]
+ 1100 401.64961 -205531.15 16.838708 93 0.37998317 0.99541314 6.0138739 705.15041 4.2562861 95.323636 0.077697032 0.0088979171 0.99649521 0.95206312 1.0272987 0 0 0 0 0 22000 0 0 0
+ 1200 400.40964 -205539.37 19.135216 99 0.67128843 0.99558682 6.0138739 705.15041 4.6317552 95.505 0.080458266 0.0085684868 0.99641317 0.95050066 1.029798 0 0 0 0 0 24000 0 0 0
+Loop time of 0.44891 on 16 procs for 100 steps with 37048 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]
+ 1200 400.40964 -205539.37 19.135216 99 0.67128843 0.99558682 6.0138739 705.15041 4.6317552 95.505 0.080458266 0.0085684868 0.99641317 0.95050066 1.029798 0 0 0 0 0 24000 0 0 0
+ 1276 400.40964 -206534.97 19.135216 99 0.67128843 0.99558682 6.0138739 705.15041 4.6317552 89.816614 0.080458266 0.0085684868 0.93706567 0.95050066 1.029798 0 0 0 0 0 25520 0 0 0
+Loop time of 0.508519 on 16 procs for 76 steps with 37048 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]
+ 1200 400.40964 -205539.37 19.448471 100 0.41040038 0.99558682 6.0138739 705.141 4.6317552 95.505 0.080458266 0.0085684868 0.99641317 0.95050066 1.029798 2.2953088 0 0 0 0 24000 1 2 6
+ 1300 401.71843 -205549 19.86411 94 0.31328255 0.99531422 6.0138739 705.141 4.6317552 95.636923 0.080786307 0.0080834567 0.99634504 0.95016182 1.0314365 2.2953088 0 0 0 0 26000 1 2 6
+Loop time of 0.453256 on 16 procs for 100 steps with 37048 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]
+ 1300 401.71843 -205549 19.86411 94 0.31328255 0.99531422 6.0138739 705.141 4.6317552 95.636923 0.080786307 0.0080834567 0.99634504 0.95016182 1.0314365 2.2953088 0 0 0 0 26000 1 2 6
+ 1376 401.71843 -206534.97 19.86411 94 0.31328255 0.99531422 6.0138739 705.141 4.6317552 90.354651 0.080786307 0.0080834567 0.94131435 0.95016182 1.0314365 2.2953088 0 0 0 0 27520 1 2 6
+Loop time of 0.502886 on 16 procs for 76 steps with 37048 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]
+ 1300 401.71843 -205549 19.863856 94 0.31328255 0.99531422 6.0138739 705.141 4.6317552 95.636923 0.080786307 0.0080834567 0.99634504 0.95016182 1.0314365 2.2953088 0 0 0 0 26000 1 2 6
+ 1400 397.79762 -205534.95 19.064761 90 0.33635396 0.99488167 6.0138739 705.141 4.6317552 95.55 0.080145025 0.0081557898 0.99625782 0.94925079 1.0339117 2.2953088 0 0 0 0 28000 1 2 6
+Loop time of 0.453094 on 16 procs for 100 steps with 37048 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]
+ 1400 397.79762 -205534.95 19.064761 90 0.33635396 0.99488167 6.0138739 705.141 4.6317552 95.55 0.080145025 0.0081557898 0.99625782 0.94925079 1.0339117 2.2953088 0 0 0 0 28000 1 2 6
+ 1477 397.79762 -206534.97 19.064761 90 0.33635396 0.99488167 6.0138739 705.141 4.6317552 90.56872 0.080145025 0.0081557898 0.94432021 0.94925079 1.0339117 2.2953088 0 0 0 0 29540 1 2 6
+Loop time of 0.515217 on 16 procs for 77 steps with 37048 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]
+ 1400 397.79762 -205534.95 19.064345 90 0.33635396 0.99488167 6.0138739 705.141 4.6317552 95.55 0.080145025 0.0081557898 0.99625782 0.94925079 1.0339117 2.2953088 0 0 0 0 28000 1 2 6
+ 1500 400.56079 -205539.86 18.860257 93 0.35488977 0.99467946 6.0138739 705.141 4.6317552 95.578667 0.080575861 0.0083561185 0.99615829 0.94636637 1.0355154 2.2953088 0 0 0 0 30000 1 2 6
+Loop time of 0.450111 on 16 procs for 100 steps with 37048 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]
+ 1500 400.56079 -205539.86 18.860257 93 0.35488977 0.99467946 6.0138739 705.141 4.6317552 95.578667 0.080575861 0.0083561185 0.99615829 0.94636637 1.0355154 2.2953088 0 0 0 0 30000 1 2 6
+ 1584 400.56079 -206534.97 18.860257 93 0.35488977 0.99467946 6.0138739 705.141 4.6317552 90.510101 0.080575861 0.0083561185 0.94333171 0.94636637 1.0355154 2.2953088 0 0 0 0 31680 1 2 6
+Loop time of 0.566455 on 16 procs for 84 steps with 37048 atoms
+
+Final hyper stats ...
+
+Cummulative quantities for fix hyper:
+ hyper time = 30000
+ time boost factor = 4000
+ event timesteps = 1
+ # of atoms in events = 2
+Quantities for this hyper run:
+ event timesteps = 1
+ # of atoms in events = 2
+ max length of any bond = 4.63176
+ max drift distance of any atom = 2.29531
+ fraction of biased bonds with zero bias = 0.0805759
+ fraction of biased bonds with negative strain = 0.00835612
+Current quantities:
+ ave bonds/atom = 6.01387
+Cummulative quantities specific to fix hyper/local:
+ # of new bonds formed = 6
+ max bonds/atom = 13
+Quantities for this hyper run specific to fix hyper/local:
+ ave biased bonds/step = 95.5787
+ ave bias coeff of all bonds = 0.996158
+ min bias coeff of any bond = 0.946366
+ max bias coeff of any bond = 1.03552
+ 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.0147002
+Current quantities specific to fix hyper/local:
+ neighbor bonds/bond = 705.141
+ ave boost coeff for all bonds = 0.994679
+
+Loop time of 14.9193 on 16 procs for 1500 steps with 37048 atoms
+
+Performance: 43.434 ns/day, 0.553 hours/ns, 100.541 timesteps/s
+128.3% CPU use with 16 MPI tasks x no OpenMP threads
+
+Hyper stats:
+ Dynamics time (%) = 6.78318 (45.4657)
+ Quench time (%) = 7.66443 (51.3725)
+ Other time (%) = 0.189889 (1.27277)
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 11.726 | 11.881 | 12.051 | 2.6 | 79.64
+Neigh | 0.49995 | 0.52243 | 0.54427 | 1.9 | 3.50
+Comm | 0.34477 | 0.51495 | 0.62326 | 10.4 | 3.45
+Output | 0.0017493 | 0.0017652 | 0.0018535 | 0.1 | 0.01
+Modify | 1.7669 | 1.8088 | 1.8523 | 1.7 | 12.12
+Other | | 0.1899 | | | 1.27
+
+Nlocal: 2315.5 ave 2353 max 2275 min
+Histogram: 1 1 1 3 0 2 5 2 0 1
+Nghost: 3187.62 ave 3228 max 3148 min
+Histogram: 1 0 2 4 2 2 1 3 0 1
+Neighs: 54002.8 ave 54567 max 53263 min
+Histogram: 1 0 2 1 3 2 2 1 1 3
+FullNghs: 542996 ave 554820 max 527895 min
+Histogram: 1 0 0 4 1 3 3 2 0 2
+
+Total # of neighbors = 8687932
+Ave neighs/atom = 234.505
+Neighbor list builds = 166
+Dangerous builds = 0
+Total wall time: 0:00:19
diff --git a/examples/micelle/data.micelle b/examples/micelle/data.micelle
index e4805bceee..5ff6196bc6 100644
--- a/examples/micelle/data.micelle
+++ b/examples/micelle/data.micelle
@@ -49,7 +49,7 @@
22 0 1 25.100 0.000 0.000
23 0 1 26.295 0.000 0.000
24 110 2 27.490 0.000 0.000
- 25 128 2 28.685 0.000 0.000
+ 25 128 2 28.685 35.85686 0.000
26 0 1 29.881 0.000 0.000
27 0 1 31.076 0.000 0.000
28 0 1 32.271 0.000 0.000
@@ -175,7 +175,7 @@
148 0 1 32.271 4.781 0.000
149 0 1 33.466 4.781 0.000
150 0 1 34.662 4.781 0.000
- 151 53 2 0.000 5.976 0.000
+ 151 53 2 35.85686 5.976 0.000
152 0 1 1.195 5.976 0.000
153 0 1 2.390 5.976 0.000
154 0 1 3.586 5.976 0.000
@@ -655,7 +655,7 @@
628 0 1 32.271 23.905 0.000
629 0 1 33.466 23.905 0.000
630 0 1 34.662 23.905 0.000
- 631 148 2 0.000 25.100 0.000
+ 631 148 2 35.85686 25.100 0.000
632 0 1 1.195 25.100 0.000
633 0 1 2.390 25.100 0.000
634 0 1 3.586 25.100 0.000
@@ -976,7 +976,7 @@
949 25 3 0.677 33.143 0.000
950 25 4 1.353 32.819 0.000
951 26 3 35.071 18.557 0.000
- 952 26 4 35.480 19.186 0.000
+ 952 26 4 35.48000 19.186 0.000
953 27 3 29.131 15.504 0.000
954 27 4 28.382 15.470 0.000
955 28 3 23.456 33.395 0.000
@@ -1096,7 +1096,7 @@
1069 85 3 33.021 33.461 0.000
1070 85 4 33.771 33.455 0.000
1071 86 3 0.552 18.315 0.000
- 1072 86 4 35.766 18.701 0.000
+ 1072 86 4 -0.09086 18.701 0.000
1073 87 3 28.026 32.796 0.000
1074 87 4 28.562 33.321 0.000
1075 88 3 24.351 29.925 0.000
@@ -1112,7 +1112,7 @@
1085 93 3 26.170 16.278 0.000
1086 93 4 26.046 17.017 0.000
1087 94 3 10.380 0.547 0.000
- 1088 94 4 10.003 35.755 0.000
+ 1088 94 4 10.003 -0.10186 0.000
1089 95 3 0.419 29.308 0.000
1090 95 4 0.837 29.930 0.000
1091 96 3 13.712 28.191 0.000
diff --git a/examples/micelle/in.micelle.rigid b/examples/micelle/in.micelle.rigid
new file mode 100644
index 0000000000..47d2f74950
--- /dev/null
+++ b/examples/micelle/in.micelle.rigid
@@ -0,0 +1,86 @@
+# 2d micelle simulation
+
+dimension 2
+
+neighbor 0.3 bin
+neigh_modify delay 5
+
+atom_style bond
+
+# Soft potential push-off
+
+read_data data.micelle
+special_bonds fene
+
+pair_style soft 1.12246
+pair_coeff * * 0.0 1.12246
+
+bond_style harmonic
+bond_coeff 1 50.0 0.75
+
+velocity all create 0.45 2349852
+
+variable prefactor equal ramp(1.0,20.0)
+
+fix 1 all nve
+fix 2 all temp/rescale 100 0.45 0.45 0.02 1.0
+fix 3 all adapt 1 pair soft a * * v_prefactor
+fix 4 all enforce2d
+
+thermo 50
+run 1000
+
+unfix 3
+
+# Main run
+
+pair_style lj/cut 2.5
+
+# solvent/head - full-size and long-range
+
+pair_coeff 1 1 1.0 1.0 2.5
+pair_coeff 2 2 1.0 1.0 2.5
+pair_coeff 1 2 1.0 1.0 2.5
+
+# tail/tail - size-averaged and long-range
+
+pair_coeff 3 3 1.0 0.75 2.5
+pair_coeff 4 4 1.0 0.50 2.5
+pair_coeff 3 4 1.0 0.67 2.5
+
+# solvent/tail - full-size and repulsive
+
+pair_coeff 1 3 1.0 1.0 1.12246
+pair_coeff 1 4 1.0 1.0 1.12246
+
+# head/tail - size-averaged and repulsive
+
+pair_coeff 2 3 1.0 0.88 1.12246
+pair_coeff 2 4 1.0 0.75 1.12246
+
+thermo 1000
+
+#dump 1 all atom 2000 dump.micelle
+
+#dump 2 all image 2000 image.*.jpg type type zoom 1.6
+#dump_modify 2 pad 5 adiam 1 0.5 adiam 2 1.5 adiam 3 1.0 adiam 4 0.75
+
+#dump 3 all movie 2000 movie.mpg type type zoom 1.6
+#dump_modify 3 pad 5 adiam 1 0.5 adiam 2 1.5 adiam 3 1.0 adiam 4 0.75
+
+reset_timestep 0
+group solvent molecule 0
+group solute subtract all solvent
+unfix 1
+unfix 2
+unfix 4
+fix 1 solvent nve
+fix 2 solvent temp/rescale 100 0.45 0.45 0.02 1.0
+fix 5 solute rigid molecule langevin 0.45 0.45 0.5 112211
+fix 4 all enforce2d
+run 20000
+unfix 5
+unfix 4
+fix 5 solute rigid/small molecule langevin 0.45 0.45 0.5 112211
+fix 4 all enforce2d
+run 20000
diff --git a/examples/micelle/log.27Nov18.micelle.g++.1 b/examples/micelle/log.27Nov18.micelle.g++.1
deleted file mode 100644
index 30a965e041..0000000000
--- a/examples/micelle/log.27Nov18.micelle.g++.1
+++ /dev/null
@@ -1,255 +0,0 @@
-LAMMPS (27 Nov 2018)
- using 1 OpenMP thread(s) per MPI task
-# 2d micelle simulation
-
-dimension 2
-
-neighbor 0.3 bin
-neigh_modify delay 5
-
-atom_style bond
-
-# Soft potential push-off
-
-read_data data.micelle
- orthogonal box = (0 0 -0.1) to (35.8569 35.8569 0.1)
- 1 by 1 by 1 MPI processor grid
- reading atoms ...
- 1200 atoms
- scanning bonds ...
- 1 = max bonds/atom
- reading bonds ...
- 300 bonds
- 2 = max # of 1-2 neighbors
- 1 = max # of 1-3 neighbors
- 1 = max # of 1-4 neighbors
- 2 = max # of special neighbors
-special_bonds fene
- 2 = max # of 1-2 neighbors
- 2 = max # of special neighbors
-
-pair_style soft 1.12246
-pair_coeff * * 0.0 1.12246
-
-bond_style harmonic
-bond_coeff 1 50.0 0.75
-
-velocity all create 0.45 2349852
-
-variable prefactor equal ramp(1.0,20.0)
-
-fix 1 all nve
-fix 2 all temp/rescale 100 0.45 0.45 0.02 1.0
-fix 3 all adapt 1 pair soft a * * v_prefactor
-fix 4 all enforce2d
-
-thermo 50
-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 = 1.42246
- ghost atom cutoff = 1.42246
- binsize = 0.71123, bins = 51 51 1
- 1 neighbor lists, perpetual/occasional/extra = 1 0 0
- (1) pair soft, perpetual
- attributes: half, newton on
- pair build: half/bin/newton
- stencil: half/bin/2d/newton
- bin: standard
-Per MPI rank memory allocation (min/avg/max) = 3.799 | 3.799 | 3.799 Mbytes
-Step Temp E_pair E_mol TotEng Press
- 0 0.45 0.40003481 2.2200223e-06 0.84966203 0.78952518
- 50 0.47411013 0.67721272 0.057404514 1.2083323 1.3375852
- 100 0.45 0.73046745 0.054836584 1.234929 2.3196516
- 150 0.67521742 0.72402001 0.043490075 1.4421648 2.8744416
- 200 0.45 0.78481891 0.076931503 1.3113754 3.0412388
- 250 0.66479018 0.69790602 0.081075564 1.4432178 3.6917024
- 300 0.45 0.76820218 0.066727591 1.2845548 3.7861054
- 350 0.67619136 0.625715 0.072722727 1.3740656 4.2861621
- 400 0.45 0.68527759 0.090724527 1.2256271 4.4725214
- 450 0.56702844 0.64402767 0.080555563 1.2911391 4.7402211
- 500 0.45 0.64883009 0.078376672 1.1768318 4.7919294
- 550 0.564664 0.58260368 0.080779475 1.2275766 4.9855705
- 600 0.45 0.58193041 0.088386617 1.119942 5.131481
- 650 0.52110993 0.5415273 0.097683746 1.1598867 5.2500294
- 700 0.45 0.50856787 0.088471208 1.0466641 5.2550165
- 750 0.51510855 0.47441291 0.089429375 1.0785216 5.375763
- 800 0.45 0.49926696 0.085958476 1.0348504 5.4665914
- 850 0.50688494 0.46614429 0.088962292 1.0615691 5.556932
- 900 0.45 0.47785593 0.10150857 1.0289895 5.7765975
- 950 0.49590559 0.46050477 0.096404887 1.052402 5.8649245
- 1000 0.45 0.47691182 0.08808163 1.0146185 6.0177568
-Loop time of 0.167265 on 1 procs for 1000 steps with 1200 atoms
-
-Performance: 2582728.958 tau/day, 5978.539 timesteps/s
-99.1% CPU use with 1 MPI tasks x 1 OpenMP threads
-
-MPI task timing breakdown:
-Section | min time | avg time | max time |%varavg| %total
----------------------------------------------------------------
-Pair | 0.096171 | 0.096171 | 0.096171 | 0.0 | 57.50
-Bond | 0.006212 | 0.006212 | 0.006212 | 0.0 | 3.71
-Neigh | 0.024826 | 0.024826 | 0.024826 | 0.0 | 14.84
-Comm | 0.0047672 | 0.0047672 | 0.0047672 | 0.0 | 2.85
-Output | 0.00029063 | 0.00029063 | 0.00029063 | 0.0 | 0.17
-Modify | 0.028771 | 0.028771 | 0.028771 | 0.0 | 17.20
-Other | | 0.006227 | | | 3.72
-
-Nlocal: 1200 ave 1200 max 1200 min
-Histogram: 1 0 0 0 0 0 0 0 0 0
-Nghost: 195 ave 195 max 195 min
-Histogram: 1 0 0 0 0 0 0 0 0 0
-Neighs: 3136 ave 3136 max 3136 min
-Histogram: 1 0 0 0 0 0 0 0 0 0
-
-Total # of neighbors = 3136
-Ave neighs/atom = 2.61333
-Ave special neighs/atom = 0.5
-Neighbor list builds = 92
-Dangerous builds = 0
-
-unfix 3
-
-# Main run
-
-pair_style lj/cut 2.5
-
-# solvent/head - full-size and long-range
-
-pair_coeff 1 1 1.0 1.0 2.5
-pair_coeff 2 2 1.0 1.0 2.5
-pair_coeff 1 2 1.0 1.0 2.5
-
-# tail/tail - size-averaged and long-range
-
-pair_coeff 3 3 1.0 0.75 2.5
-pair_coeff 4 4 1.0 0.50 2.5
-pair_coeff 3 4 1.0 0.67 2.5
-
-# solvent/tail - full-size and repulsive
-
-pair_coeff 1 3 1.0 1.0 1.12246
-pair_coeff 1 4 1.0 1.0 1.12246
-
-# head/tail - size-averaged and repulsive
-
-pair_coeff 2 3 1.0 0.88 1.12246
-pair_coeff 2 4 1.0 0.75 1.12246
-
-thermo 1000
-
-#dump 1 all atom 2000 dump.micelle
-
-#dump 2 all image 2000 image.*.jpg type type zoom 1.6
-#dump_modify 2 pad 5 adiam 1 0.5 adiam 2 1.5 adiam 3 1.0 adiam 4 0.75
-
-#dump 3 all movie 2000 movie.mpg type type zoom 1.6
-#dump_modify 3 pad 5 adiam 1 0.5 adiam 2 1.5 adiam 3 1.0 adiam 4 0.75
-
-reset_timestep 0
-run 60000
-Neighbor list info ...
- update every 1 steps, delay 5 steps, check yes
- max neighbors/atom: 2000, page size: 100000
- master list distance cutoff = 2.8
- ghost atom cutoff = 2.8
- binsize = 1.4, bins = 26 26 1
- 1 neighbor lists, perpetual/occasional/extra = 1 0 0
- (1) pair lj/cut, perpetual
- attributes: half, newton on
- pair build: half/bin/newton
- stencil: half/bin/2d/newton
- bin: standard
-Per MPI rank memory allocation (min/avg/max) = 4.024 | 4.024 | 4.024 Mbytes
-Step Temp E_pair E_mol TotEng Press
- 0 0.45 -1.7056163 0.08808163 -1.1679097 3.9431686
- 1000 0.45 -1.9727655 0.058608715 -1.4645318 1.9982298
- 2000 0.46465361 -1.9897467 0.067008449 -1.4584719 1.5873463
- 3000 0.46175071 -2.0129279 0.057865385 -1.4936966 1.41269
- 4000 0.44386154 -2.0280304 0.067167835 -1.5173709 1.4022093
- 5000 0.46127582 -2.0556041 0.068318674 -1.526394 1.1416711
- 6000 0.45354052 -2.0463246 0.05461954 -1.5385425 1.1650258
- 7000 0.44082313 -2.040263 0.060218047 -1.5395891 1.3258681
- 8000 0.44353466 -2.0423792 0.061769402 -1.5374447 1.2696989
- 9000 0.46192977 -2.0761348 0.064999109 -1.5495908 0.9205826
- 10000 0.45278646 -2.0589872 0.059623919 -1.5469542 1.075581
- 11000 0.45583355 -2.0661957 0.058197558 -1.5525445 1.127643
- 12000 0.45881198 -2.0921508 0.066937896 -1.5667833 0.98383574
- 13000 0.45339481 -2.079088 0.06292782 -1.5631432 1.0188637
- 14000 0.43601312 -2.0624084 0.057999616 -1.568759 1.1452177
- 15000 0.45941503 -2.0746606 0.062523373 -1.553105 0.86928343
- 16000 0.45 -2.0743162 0.05517924 -1.569512 0.86849848
- 17000 0.45603004 -2.0657683 0.058711872 -1.5514064 0.95544551
- 18000 0.45320383 -2.1009711 0.060716634 -1.5874283 0.8343521
- 19000 0.44072983 -2.0846408 0.062893297 -1.581385 0.90776246
- 20000 0.44452441 -2.0921415 0.060341571 -1.587646 0.98180005
- 21000 0.45964557 -2.0837047 0.054459432 -1.5699827 1.0213779
- 22000 0.46351849 -2.1053613 0.058392027 -1.5838371 0.81579487
- 23000 0.45576065 -2.1001888 0.057646538 -1.5871614 0.76090085
- 24000 0.44671746 -2.0848717 0.058192801 -1.5803337 0.77003809
- 25000 0.44371239 -2.0870872 0.054804981 -1.5889396 0.92295746
- 26000 0.45381188 -2.097021 0.057195346 -1.586392 0.7743058
- 27000 0.46158533 -2.1071056 0.061289644 -1.5846153 0.78981802
- 28000 0.46534671 -2.1056151 0.054934755 -1.5857214 0.80778664
- 29000 0.4505804 -2.0949318 0.065503451 -1.5792234 0.78274755
- 30000 0.45730883 -2.1029161 0.063461968 -1.5825264 0.82507857
- 31000 0.4620071 -2.1124989 0.059980378 -1.5908964 0.78583986
- 32000 0.46934619 -2.1107818 0.056442616 -1.5853842 0.70535653
- 33000 0.45800203 -2.1062502 0.054317859 -1.594312 0.726293
- 34000 0.44634295 -2.110401 0.057764968 -1.606665 0.85401059
- 35000 0.4431929 -2.1274759 0.062048133 -1.6226042 0.64243758
- 36000 0.46049645 -2.1300979 0.068463634 -1.6015216 0.57252544
- 37000 0.45366344 -2.0977407 0.053788554 -1.5906668 0.78046879
- 38000 0.44155077 -2.1166674 0.056888683 -1.6185959 0.53429042
- 39000 0.45631012 -2.096949 0.04860872 -1.5924104 0.86494908
- 40000 0.44684402 -2.1229137 0.067190397 -1.6092516 0.65110818
- 41000 0.4479377 -2.1105264 0.059375259 -1.6035867 0.79092862
- 42000 0.46143191 -2.1174539 0.057418393 -1.5989882 0.69762908
- 43000 0.4356786 -2.085826 0.056534028 -1.5939764 0.89541946
- 44000 0.45806826 -2.126423 0.060905733 -1.6078307 0.66389027
- 45000 0.44343688 -2.1116384 0.065870114 -1.602701 0.83947585
- 46000 0.43844672 -2.1096265 0.064158652 -1.6073865 0.77278902
- 47000 0.45794928 -2.1142786 0.058919562 -1.5977914 0.62611933
- 48000 0.45412335 -2.1106058 0.059153304 -1.5977076 0.66190677
- 49000 0.45927883 -2.1197656 0.068354598 -1.5925149 0.56008845
- 50000 0.44117285 -2.1020783 0.064763249 -1.5965099 0.85935147
- 51000 0.45325398 -2.1125154 0.062295387 -1.5973438 0.80951782
- 52000 0.43896579 -2.1039004 0.057475908 -1.6078245 0.84753768
- 53000 0.45180671 -2.1092446 0.063528598 -1.5942857 0.67065038
- 54000 0.4554341 -2.1185135 0.059603337 -1.6038556 0.76399618
- 55000 0.43861159 -2.0986406 0.057733879 -1.6026606 0.77334084
- 56000 0.45522991 -2.1207166 0.063287543 -1.6025785 0.78669598
- 57000 0.46125513 -2.1150202 0.06026261 -1.5938868 0.78148646
- 58000 0.45236938 -2.1088894 0.062678374 -1.5942186 0.75643518
- 59000 0.43927269 -2.1274165 0.055355076 -1.6331548 0.63495311
- 60000 0.45331102 -2.1336193 0.051244399 -1.6294416 0.56706921
-Loop time of 13.9361 on 1 procs for 60000 steps with 1200 atoms
-
-Performance: 1859917.639 tau/day, 4305.365 timesteps/s
-99.8% CPU use with 1 MPI tasks x 1 OpenMP threads
-
-MPI task timing breakdown:
-Section | min time | avg time | max time |%varavg| %total
----------------------------------------------------------------
-Pair | 9.2211 | 9.2211 | 9.2211 | 0.0 | 66.17
-Bond | 0.33763 | 0.33763 | 0.33763 | 0.0 | 2.42
-Neigh | 2.3772 | 2.3772 | 2.3772 | 0.0 | 17.06
-Comm | 0.37693 | 0.37693 | 0.37693 | 0.0 | 2.70
-Output | 0.0011795 | 0.0011795 | 0.0011795 | 0.0 | 0.01
-Modify | 1.2727 | 1.2727 | 1.2727 | 0.0 | 9.13
-Other | | 0.3493 | | | 2.51
-
-Nlocal: 1200 ave 1200 max 1200 min
-Histogram: 1 0 0 0 0 0 0 0 0 0
-Nghost: 405 ave 405 max 405 min
-Histogram: 1 0 0 0 0 0 0 0 0 0
-Neighs: 9565 ave 9565 max 9565 min
-Histogram: 1 0 0 0 0 0 0 0 0 0
-
-Total # of neighbors = 9565
-Ave neighs/atom = 7.97083
-Ave special neighs/atom = 0.5
-Neighbor list builds = 4876
-Dangerous builds = 0
-Total wall time: 0:00:14
diff --git a/examples/micelle/log.27Nov18.micelle.g++.4 b/examples/micelle/log.27Nov18.micelle.g++.4
deleted file mode 100644
index c9509df4b2..0000000000
--- a/examples/micelle/log.27Nov18.micelle.g++.4
+++ /dev/null
@@ -1,255 +0,0 @@
-LAMMPS (27 Nov 2018)
- using 1 OpenMP thread(s) per MPI task
-# 2d micelle simulation
-
-dimension 2
-
-neighbor 0.3 bin
-neigh_modify delay 5
-
-atom_style bond
-
-# Soft potential push-off
-
-read_data data.micelle
- orthogonal box = (0 0 -0.1) to (35.8569 35.8569 0.1)
- 2 by 2 by 1 MPI processor grid
- reading atoms ...
- 1200 atoms
- scanning bonds ...
- 1 = max bonds/atom
- reading bonds ...
- 300 bonds
- 2 = max # of 1-2 neighbors
- 1 = max # of 1-3 neighbors
- 1 = max # of 1-4 neighbors
- 2 = max # of special neighbors
-special_bonds fene
- 2 = max # of 1-2 neighbors
- 2 = max # of special neighbors
-
-pair_style soft 1.12246
-pair_coeff * * 0.0 1.12246
-
-bond_style harmonic
-bond_coeff 1 50.0 0.75
-
-velocity all create 0.45 2349852
-
-variable prefactor equal ramp(1.0,20.0)
-
-fix 1 all nve
-fix 2 all temp/rescale 100 0.45 0.45 0.02 1.0
-fix 3 all adapt 1 pair soft a * * v_prefactor
-fix 4 all enforce2d
-
-thermo 50
-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 = 1.42246
- ghost atom cutoff = 1.42246
- binsize = 0.71123, bins = 51 51 1
- 1 neighbor lists, perpetual/occasional/extra = 1 0 0
- (1) pair soft, perpetual
- attributes: half, newton on
- pair build: half/bin/newton
- stencil: half/bin/2d/newton
- bin: standard
-Per MPI rank memory allocation (min/avg/max) = 3.758 | 3.85 | 4.126 Mbytes
-Step Temp E_pair E_mol TotEng Press
- 0 0.45 0.40003481 2.2200223e-06 0.84966203 0.78952518
- 50 0.47411013 0.67721272 0.057404514 1.2083323 1.3375852
- 100 0.45 0.73046745 0.054836584 1.234929 2.3196516
- 150 0.67521742 0.72402001 0.043490075 1.4421648 2.8744416
- 200 0.45 0.78481891 0.076931503 1.3113754 3.0412388
- 250 0.66479018 0.69790602 0.081075564 1.4432178 3.6917024
- 300 0.45 0.76820218 0.066727591 1.2845548 3.7861054
- 350 0.67619136 0.625715 0.072722727 1.3740656 4.2861621
- 400 0.45 0.68527759 0.090724527 1.2256271 4.4725214
- 450 0.56702844 0.64402767 0.080555563 1.2911391 4.7402211
- 500 0.45 0.64883009 0.078376672 1.1768318 4.7919294
- 550 0.564664 0.58260368 0.080779475 1.2275766 4.9855705
- 600 0.45 0.58193041 0.088386617 1.119942 5.131481
- 650 0.52110993 0.5415273 0.097683746 1.1598867 5.2500294
- 700 0.45 0.50856787 0.088471208 1.0466641 5.2550165
- 750 0.51510855 0.47441291 0.089429375 1.0785216 5.375763
- 800 0.45 0.49926696 0.085958476 1.0348504 5.4665914
- 850 0.50688494 0.46614429 0.088962292 1.0615691 5.556932
- 900 0.45 0.47785593 0.10150857 1.0289895 5.7765975
- 950 0.49590559 0.46050477 0.096404887 1.052402 5.8649245
- 1000 0.45 0.47691182 0.08808163 1.0146185 6.0177568
-Loop time of 0.0641922 on 4 procs for 1000 steps with 1200 atoms
-
-Performance: 6729792.131 tau/day, 15578.223 timesteps/s
-90.9% 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.020663 | 0.021445 | 0.022477 | 0.5 | 33.41
-Bond | 0.0014422 | 0.0015128 | 0.001569 | 0.1 | 2.36
-Neigh | 0.0067129 | 0.0067645 | 0.0068202 | 0.1 | 10.54
-Comm | 0.018454 | 0.019275 | 0.020386 | 0.5 | 30.03
-Output | 0.00038171 | 0.00040019 | 0.00044632 | 0.0 | 0.62
-Modify | 0.010561 | 0.010904 | 0.011309 | 0.3 | 16.99
-Other | | 0.003891 | | | 6.06
-
-Nlocal: 300 ave 305 max 292 min
-Histogram: 1 0 0 0 0 0 1 0 1 1
-Nghost: 100.25 ave 108 max 93 min
-Histogram: 1 0 1 0 0 0 1 0 0 1
-Neighs: 784 ave 815 max 739 min
-Histogram: 1 0 0 0 0 0 1 1 0 1
-
-Total # of neighbors = 3136
-Ave neighs/atom = 2.61333
-Ave special neighs/atom = 0.5
-Neighbor list builds = 92
-Dangerous builds = 0
-
-unfix 3
-
-# Main run
-
-pair_style lj/cut 2.5
-
-# solvent/head - full-size and long-range
-
-pair_coeff 1 1 1.0 1.0 2.5
-pair_coeff 2 2 1.0 1.0 2.5
-pair_coeff 1 2 1.0 1.0 2.5
-
-# tail/tail - size-averaged and long-range
-
-pair_coeff 3 3 1.0 0.75 2.5
-pair_coeff 4 4 1.0 0.50 2.5
-pair_coeff 3 4 1.0 0.67 2.5
-
-# solvent/tail - full-size and repulsive
-
-pair_coeff 1 3 1.0 1.0 1.12246
-pair_coeff 1 4 1.0 1.0 1.12246
-
-# head/tail - size-averaged and repulsive
-
-pair_coeff 2 3 1.0 0.88 1.12246
-pair_coeff 2 4 1.0 0.75 1.12246
-
-thermo 1000
-
-#dump 1 all atom 2000 dump.micelle
-
-#dump 2 all image 2000 image.*.jpg type type zoom 1.6
-#dump_modify 2 pad 5 adiam 1 0.5 adiam 2 1.5 adiam 3 1.0 adiam 4 0.75
-
-#dump 3 all movie 2000 movie.mpg type type zoom 1.6
-#dump_modify 3 pad 5 adiam 1 0.5 adiam 2 1.5 adiam 3 1.0 adiam 4 0.75
-
-reset_timestep 0
-run 60000
-Neighbor list info ...
- update every 1 steps, delay 5 steps, check yes
- max neighbors/atom: 2000, page size: 100000
- master list distance cutoff = 2.8
- ghost atom cutoff = 2.8
- binsize = 1.4, bins = 26 26 1
- 1 neighbor lists, perpetual/occasional/extra = 1 0 0
- (1) pair lj/cut, perpetual
- attributes: half, newton on
- pair build: half/bin/newton
- stencil: half/bin/2d/newton
- bin: standard
-Per MPI rank memory allocation (min/avg/max) = 4.001 | 4.032 | 4.124 Mbytes
-Step Temp E_pair E_mol TotEng Press
- 0 0.45 -1.7056163 0.08808163 -1.1679097 3.9431686
- 1000 0.45 -1.9727661 0.05860859 -1.4645325 1.9982402
- 2000 0.45146247 -1.9766043 0.059408886 -1.4661092 1.7398826
- 3000 0.43338517 -2.0028125 0.059884381 -1.5099041 1.4716488
- 4000 0.46674519 -2.0200954 0.066548679 -1.4871905 1.2506693
- 5000 0.45 -2.0207125 0.055926205 -1.5151613 1.3047457
- 6000 0.45447759 -2.0585234 0.068004883 -1.5364197 1.1859762
- 7000 0.43183018 -2.0170545 0.060800296 -1.5247839 1.3074223
- 8000 0.46657547 -2.053224 0.063224367 -1.523813 1.1785643
- 9000 0.45 -2.0691221 0.054959029 -1.564538 1.1833657
- 10000 0.4428252 -2.0473987 0.054306905 -1.5506356 1.181794
- 11000 0.45407036 -2.0746151 0.065849667 -1.5550734 1.1008545
- 12000 0.46061944 -2.0580809 0.063129643 -1.5347156 1.0206491
- 13000 0.45159068 -2.0640832 0.060059758 -1.5528091 1.0813494
- 14000 0.44141594 -2.0467255 0.062785088 -1.5428923 1.1465772
- 15000 0.454361 -2.0908595 0.057471037 -1.5794061 0.84297781
- 16000 0.44061091 -2.0521452 0.064644196 -1.5472573 1.1478647
- 17000 0.45118383 -2.081348 0.058660999 -1.5718791 1.0101404
- 18000 0.44664866 -2.0845745 0.060435731 -1.5778623 0.96142277
- 19000 0.45515339 -2.0914006 0.062174016 -1.5744525 0.87623323
- 20000 0.45624408 -2.0837697 0.059263054 -1.5686428 0.92810644
- 21000 0.46791657 -2.1062007 0.067355929 -1.5713181 0.88318793
- 22000 0.43907391 -2.1005271 0.065885144 -1.5959339 0.77211644
- 23000 0.43967354 -2.0723459 0.057613471 -1.5754253 1.0371548
- 24000 0.45716384 -2.0987126 0.055157377 -1.5867723 0.89670061
- 25000 0.45828285 -2.1041616 0.057736138 -1.5885245 0.79952286
- 26000 0.45 -2.0743463 0.072455519 -1.5522658 0.88260204
- 27000 0.46581599 -2.0804974 0.058113258 -1.5569564 0.93053891
- 28000 0.46904194 -2.0920124 0.059748792 -1.5636125 0.79359618
- 29000 0.46093196 -2.118556 0.063942334 -1.5940659 0.67707604
- 30000 0.45733724 -2.1197827 0.066939064 -1.5958875 0.66886075
- 31000 0.44580762 -2.0977175 0.056969121 -1.5953123 0.81042562
- 32000 0.44403029 -2.1032264 0.063465127 -1.596101 0.71796412
- 33000 0.45834072 -2.0934132 0.066035391 -1.569419 0.77873998
- 34000 0.44981563 -2.0910902 0.07138738 -1.5702621 0.75679805
- 35000 0.45383392 -2.0926654 0.067553478 -1.5716562 0.9064517
- 36000 0.44447198 -2.1107114 0.062718917 -1.6038909 0.8538349
- 37000 0.45838527 -2.1166464 0.062442606 -1.5962005 0.7300635
- 38000 0.45014075 -2.1096258 0.059293718 -1.6005665 0.73988246
- 39000 0.44377026 -2.080309 0.063545781 -1.5733628 0.99775641
- 40000 0.44577324 -2.1134607 0.065271179 -1.6027878 0.64113168
- 41000 0.45 -2.0937983 0.060881377 -1.5832919 0.78849829
- 42000 0.46866695 -2.1142283 0.056417605 -1.5895343 0.73788436
- 43000 0.43211727 -2.0819893 0.061463358 -1.5887688 0.95853724
- 44000 0.44138397 -2.0921314 0.059643895 -1.5914713 0.89486208
- 45000 0.45 -2.117209 0.054804331 -1.6127797 0.78564885
- 46000 0.44285245 -2.1090975 0.057629006 -1.6089851 0.64549424
- 47000 0.45537009 -2.1164296 0.068582324 -1.5928567 0.73629413
- 48000 0.45046732 -2.1006362 0.057249591 -1.5932947 0.74317593
- 49000 0.45425966 -2.1191703 0.064247719 -1.6010414 0.70962368
- 50000 0.45506149 -2.1184671 0.064911797 -1.5988731 0.69958156
- 51000 0.46047417 -2.1019719 0.058468259 -1.5834132 0.87219271
- 52000 0.43808317 -2.092294 0.057280941 -1.597295 0.84156893
- 53000 0.45012337 -2.1175234 0.064002667 -1.6037725 0.64562439
- 54000 0.43854679 -2.1236444 0.061316257 -1.6241468 0.72478117
- 55000 0.46382438 -2.1016563 0.060724666 -1.5774938 0.83311209
- 56000 0.44951533 -2.0946157 0.055075217 -1.5903998 0.90066109
- 57000 0.45937401 -2.0983442 0.061558996 -1.577794 0.58606161
- 58000 0.446669 -2.1146838 0.062385166 -1.6060019 0.73443388
- 59000 0.43847747 -2.1197461 0.060460257 -1.6211738 0.7230937
- 60000 0.45294215 -2.1258513 0.061895006 -1.6113915 0.70722168
-Loop time of 4.56226 on 4 procs for 60000 steps with 1200 atoms
-
-Performance: 5681397.232 tau/day, 13151.382 timesteps/s
-97.1% CPU use with 4 MPI tasks x 1 OpenMP threads
-
-MPI task timing breakdown:
-Section | min time | avg time | max time |%varavg| %total
----------------------------------------------------------------
-Pair | 2.2114 | 2.2527 | 2.3592 | 4.1 | 49.38
-Bond | 0.083713 | 0.09234 | 0.10244 | 2.3 | 2.02
-Neigh | 0.72491 | 0.7277 | 0.72957 | 0.2 | 15.95
-Comm | 0.79464 | 0.90036 | 0.94957 | 6.5 | 19.74
-Output | 0.0014119 | 0.0024976 | 0.0057502 | 3.8 | 0.05
-Modify | 0.33757 | 0.35202 | 0.36946 | 2.1 | 7.72
-Other | | 0.2346 | | | 5.14
-
-Nlocal: 300 ave 306 max 289 min
-Histogram: 1 0 0 0 0 0 0 1 1 1
-Nghost: 227.25 ave 250 max 216 min
-Histogram: 2 0 1 0 0 0 0 0 0 1
-Neighs: 2373.25 ave 2489 max 2283 min
-Histogram: 1 1 0 0 0 1 0 0 0 1
-
-Total # of neighbors = 9493
-Ave neighs/atom = 7.91083
-Ave special neighs/atom = 0.5
-Neighbor list builds = 4888
-Dangerous builds = 0
-Total wall time: 0:00:04
diff --git a/examples/micelle/log.28Feb2019.micelle.g++.1 b/examples/micelle/log.28Feb2019.micelle.g++.1
new file mode 100644
index 0000000000..c2bbc7cde4
--- /dev/null
+++ b/examples/micelle/log.28Feb2019.micelle.g++.1
@@ -0,0 +1,259 @@
+LAMMPS (28 Feb 2019)
+OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:88)
+ using 1 OpenMP thread(s) per MPI task
+# 2d micelle simulation
+
+dimension 2
+
+neighbor 0.3 bin
+neigh_modify delay 5
+
+atom_style bond
+
+# Soft potential push-off
+
+read_data data.micelle
+ orthogonal box = (0 0 -0.1) to (35.8569 35.8569 0.1)
+ 1 by 1 by 1 MPI processor grid
+ reading atoms ...
+ 1200 atoms
+ scanning bonds ...
+ 1 = max bonds/atom
+ reading bonds ...
+ 300 bonds
+ 2 = max # of 1-2 neighbors
+ 1 = max # of 1-3 neighbors
+ 1 = max # of 1-4 neighbors
+ 2 = max # of special neighbors
+ special bonds CPU = 0.000394821 secs
+ read_data CPU = 0.00212336 secs
+special_bonds fene
+ 2 = max # of 1-2 neighbors
+ 2 = max # of special neighbors
+ special bonds CPU = 0.00018549 secs
+
+pair_style soft 1.12246
+pair_coeff * * 0.0 1.12246
+
+bond_style harmonic
+bond_coeff 1 50.0 0.75
+
+velocity all create 0.45 2349852
+
+variable prefactor equal ramp(1.0,20.0)
+
+fix 1 all nve
+fix 2 all temp/rescale 100 0.45 0.45 0.02 1.0
+fix 3 all adapt 1 pair soft a * * v_prefactor
+fix 4 all enforce2d
+
+thermo 50
+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 = 1.42246
+ ghost atom cutoff = 1.42246
+ binsize = 0.71123, bins = 51 51 1
+ 1 neighbor lists, perpetual/occasional/extra = 1 0 0
+ (1) pair soft, perpetual
+ attributes: half, newton on
+ pair build: half/bin/newton
+ stencil: half/bin/2d/newton
+ bin: standard
+Per MPI rank memory allocation (min/avg/max) = 3.799 | 3.799 | 3.799 Mbytes
+Step Temp E_pair E_mol TotEng Press
+ 0 0.45 0.40003481 2.2200223e-06 0.84966203 0.78952518
+ 50 0.47411013 0.67721272 0.057404514 1.2083323 1.3375852
+ 100 0.45 0.73046745 0.054836584 1.234929 2.3196516
+ 150 0.67521742 0.72402001 0.043490075 1.4421648 2.8744416
+ 200 0.45 0.78481891 0.076931503 1.3113754 3.0412388
+ 250 0.66479018 0.69790602 0.081075564 1.4432178 3.6917024
+ 300 0.45 0.76820218 0.066727591 1.2845548 3.7861054
+ 350 0.67619136 0.625715 0.072722727 1.3740656 4.2861621
+ 400 0.45 0.68527759 0.090724527 1.2256271 4.4725214
+ 450 0.56702844 0.64402767 0.080555563 1.2911391 4.7402211
+ 500 0.45 0.64883009 0.078376672 1.1768318 4.7919294
+ 550 0.564664 0.58260368 0.080779475 1.2275766 4.9855705
+ 600 0.45 0.58193041 0.088386617 1.119942 5.131481
+ 650 0.52110993 0.5415273 0.097683746 1.1598867 5.2500294
+ 700 0.45 0.50856787 0.088471208 1.0466641 5.2550165
+ 750 0.51510855 0.47441291 0.089429375 1.0785216 5.375763
+ 800 0.45 0.49926696 0.085958476 1.0348504 5.4665914
+ 850 0.50688494 0.46614429 0.088962292 1.0615691 5.556932
+ 900 0.45 0.47785593 0.10150857 1.0289895 5.7765975
+ 950 0.49590559 0.46050477 0.096404887 1.052402 5.8649245
+ 1000 0.45 0.47691182 0.08808163 1.0146185 6.0177568
+Loop time of 0.113919 on 1 procs for 1000 steps with 1200 atoms
+
+Performance: 3792167.464 tau/day, 8778.165 timesteps/s
+99.8% CPU use with 1 MPI tasks x 1 OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 0.076825 | 0.076825 | 0.076825 | 0.0 | 67.44
+Bond | 0.0041864 | 0.0041864 | 0.0041864 | 0.0 | 3.67
+Neigh | 0.017061 | 0.017061 | 0.017061 | 0.0 | 14.98
+Comm | 0.0019042 | 0.0019042 | 0.0019042 | 0.0 | 1.67
+Output | 0.00017285 | 0.00017285 | 0.00017285 | 0.0 | 0.15
+Modify | 0.011218 | 0.011218 | 0.011218 | 0.0 | 9.85
+Other | | 0.002551 | | | 2.24
+
+Nlocal: 1200 ave 1200 max 1200 min
+Histogram: 1 0 0 0 0 0 0 0 0 0
+Nghost: 195 ave 195 max 195 min
+Histogram: 1 0 0 0 0 0 0 0 0 0
+Neighs: 3136 ave 3136 max 3136 min
+Histogram: 1 0 0 0 0 0 0 0 0 0
+
+Total # of neighbors = 3136
+Ave neighs/atom = 2.61333
+Ave special neighs/atom = 0.5
+Neighbor list builds = 92
+Dangerous builds = 0
+
+unfix 3
+
+# Main run
+
+pair_style lj/cut 2.5
+
+# solvent/head - full-size and long-range
+
+pair_coeff 1 1 1.0 1.0 2.5
+pair_coeff 2 2 1.0 1.0 2.5
+pair_coeff 1 2 1.0 1.0 2.5
+
+# tail/tail - size-averaged and long-range
+
+pair_coeff 3 3 1.0 0.75 2.5
+pair_coeff 4 4 1.0 0.50 2.5
+pair_coeff 3 4 1.0 0.67 2.5
+
+# solvent/tail - full-size and repulsive
+
+pair_coeff 1 3 1.0 1.0 1.12246
+pair_coeff 1 4 1.0 1.0 1.12246
+
+# head/tail - size-averaged and repulsive
+
+pair_coeff 2 3 1.0 0.88 1.12246
+pair_coeff 2 4 1.0 0.75 1.12246
+
+thermo 1000
+
+#dump 1 all atom 2000 dump.micelle
+
+#dump 2 all image 2000 image.*.jpg type type zoom 1.6
+#dump_modify 2 pad 5 adiam 1 0.5 adiam 2 1.5 adiam 3 1.0 adiam 4 0.75
+
+#dump 3 all movie 2000 movie.mpg type type zoom 1.6
+#dump_modify 3 pad 5 adiam 1 0.5 adiam 2 1.5 adiam 3 1.0 adiam 4 0.75
+
+reset_timestep 0
+run 60000
+Neighbor list info ...
+ update every 1 steps, delay 5 steps, check yes
+ max neighbors/atom: 2000, page size: 100000
+ master list distance cutoff = 2.8
+ ghost atom cutoff = 2.8
+ binsize = 1.4, bins = 26 26 1
+ 1 neighbor lists, perpetual/occasional/extra = 1 0 0
+ (1) pair lj/cut, perpetual
+ attributes: half, newton on
+ pair build: half/bin/newton
+ stencil: half/bin/2d/newton
+ bin: standard
+Per MPI rank memory allocation (min/avg/max) = 4.024 | 4.024 | 4.024 Mbytes
+Step Temp E_pair E_mol TotEng Press
+ 0 0.45 -1.7056163 0.08808163 -1.1679097 3.9431686
+ 1000 0.45 -1.9727644 0.05860769 -1.4645317 1.9982326
+ 2000 0.46143408 -1.9889684 0.058103225 -1.4698156 1.7806269
+ 3000 0.44459291 -1.9997961 0.068724164 -1.4868496 1.4369618
+ 4000 0.46939549 -2.0330437 0.073499424 -1.4905399 1.3780016
+ 5000 0.44411088 -2.0339936 0.05862049 -1.5316323 1.2544164
+ 6000 0.44034597 -2.0265475 0.066481992 -1.5200864 1.2362891
+ 7000 0.45097378 -2.0331083 0.058467565 -1.5240428 1.2762333
+ 8000 0.45797632 -2.0330255 0.060048036 -1.5153828 1.3862396
+ 9000 0.45297811 -2.0383417 0.067056519 -1.5186845 1.2762554
+ 10000 0.45 -2.0628269 0.065650067 -1.5475518 1.0566213
+ 11000 0.44466757 -2.0593977 0.06190999 -1.5531907 1.1452469
+ 12000 0.46743534 -2.0684295 0.061056278 -1.5403274 1.0824225
+ 13000 0.45601091 -2.0689708 0.054868536 -1.5584713 0.96703283
+ 14000 0.44111882 -2.0553174 0.058249816 -1.5563164 1.0986427
+ 15000 0.43894405 -2.0866829 0.064117804 -1.5839869 0.90031836
+ 16000 0.43856814 -2.0879319 0.056024166 -1.593705 0.96387323
+ 17000 0.45977841 -2.103188 0.058097306 -1.5856955 0.83352919
+ 18000 0.43423341 -2.0813151 0.066623991 -1.5808196 0.98157638
+ 19000 0.44245939 -2.0851261 0.057637655 -1.5853978 0.84228341
+ 20000 0.43144678 -2.0895403 0.06536727 -1.5930858 0.88177768
+ 21000 0.45014968 -2.106686 0.059137572 -1.5977739 0.89408935
+ 22000 0.4575126 -2.1024115 0.063013023 -1.5822672 0.84886734
+ 23000 0.45 -2.10897 0.06724784 -1.5920971 0.66205013
+ 24000 0.43055602 -2.0894725 0.061566464 -1.5977089 0.81764789
+ 25000 0.4366384 -2.0926743 0.059609321 -1.5967905 0.85549875
+ 26000 0.4521714 -2.0963996 0.062031863 -1.5825731 0.80137118
+ 27000 0.45734834 -2.1060987 0.061712636 -1.5874188 0.82899415
+ 28000 0.44803467 -2.0859226 0.061871856 -1.5763894 0.97007526
+ 29000 0.45 -2.1106243 0.063825481 -1.5971738 0.63798376
+ 30000 0.44932806 -2.1006036 0.053053934 -1.598596 0.63907113
+ 31000 0.44713779 -2.1096164 0.066470416 -1.5963808 0.66832708
+ 32000 0.4373357 -2.0941237 0.058871613 -1.5982808 0.78176106
+ 33000 0.44030485 -2.105644 0.058804306 -1.6069017 0.66286458
+ 34000 0.43781175 -2.1233209 0.064611206 -1.6212628 0.56342584
+ 35000 0.45670132 -2.1059408 0.053049584 -1.5965705 0.73992396
+ 36000 0.45555427 -2.1149877 0.057627709 -1.6021854 0.85854939
+ 37000 0.44134236 -2.1106202 0.064444306 -1.6052013 0.74674603
+ 38000 0.44812623 -2.1003681 0.057266258 -1.5953491 0.78239359
+ 39000 0.44167062 -2.11141 0.055354 -1.6147534 0.7066385
+ 40000 0.46103176 -2.1166687 0.062155412 -1.5938657 0.73620955
+ 41000 0.44537102 -2.0993898 0.05631213 -1.5980778 0.87348756
+ 42000 0.44752506 -2.1115212 0.057506521 -1.6068625 0.72999561
+ 43000 0.4483886 -2.1184719 0.066943915 -1.6035131 0.78112063
+ 44000 0.45944897 -2.0916657 0.055242781 -1.5773568 0.98660473
+ 45000 0.46238513 -2.1163075 0.0530031 -1.6013046 0.74416054
+ 46000 0.45979064 -2.1165545 0.060657581 -1.5964895 0.63516974
+ 47000 0.45936546 -2.1140678 0.049931919 -1.6051532 0.76425182
+ 48000 0.45424613 -2.1122681 0.061885599 -1.5965149 0.71981142
+ 49000 0.44449524 -2.1147361 0.06626748 -1.6043438 0.78720467
+ 50000 0.4641185 -2.1114668 0.055104874 -1.5926302 0.70195865
+ 51000 0.44220655 -2.1075773 0.0589109 -1.6068283 0.73806859
+ 52000 0.43097906 -2.1189493 0.061502241 -1.6268271 0.69622593
+ 53000 0.45 -2.137688 0.053631829 -1.6344311 0.48269158
+ 54000 0.43777118 -2.1089246 0.047098534 -1.6244197 0.70423814
+ 55000 0.46061985 -2.1129502 0.062520353 -1.5901938 0.72492307
+ 56000 0.4524841 -2.1195648 0.06580089 -1.6016569 0.52709892
+ 57000 0.44914574 -2.1041993 0.061040876 -1.594387 0.7979988
+ 58000 0.46446286 -2.1181238 0.055741995 -1.598306 0.51009146
+ 59000 0.4632674 -2.1169321 0.050672678 -1.6033781 0.83110911
+ 60000 0.46340478 -2.122846 0.058485209 -1.6013422 0.69966471
+Loop time of 8.01683 on 1 procs for 60000 steps with 1200 atoms
+
+Performance: 3233199.903 tau/day, 7484.259 timesteps/s
+99.8% CPU use with 1 MPI tasks x 1 OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 5.4027 | 5.4027 | 5.4027 | 0.0 | 67.39
+Bond | 0.23585 | 0.23585 | 0.23585 | 0.0 | 2.94
+Neigh | 1.5188 | 1.5188 | 1.5188 | 0.0 | 18.95
+Comm | 0.14452 | 0.14452 | 0.14452 | 0.0 | 1.80
+Output | 0.00060487 | 0.00060487 | 0.00060487 | 0.0 | 0.01
+Modify | 0.56352 | 0.56352 | 0.56352 | 0.0 | 7.03
+Other | | 0.1508 | | | 1.88
+
+Nlocal: 1200 ave 1200 max 1200 min
+Histogram: 1 0 0 0 0 0 0 0 0 0
+Nghost: 395 ave 395 max 395 min
+Histogram: 1 0 0 0 0 0 0 0 0 0
+Neighs: 9652 ave 9652 max 9652 min
+Histogram: 1 0 0 0 0 0 0 0 0 0
+
+Total # of neighbors = 9652
+Ave neighs/atom = 8.04333
+Ave special neighs/atom = 0.5
+Neighbor list builds = 4886
+Dangerous builds = 0
+Total wall time: 0:00:08
diff --git a/examples/micelle/log.28Feb2019.micelle.g++.4 b/examples/micelle/log.28Feb2019.micelle.g++.4
new file mode 100644
index 0000000000..6af9051ed2
--- /dev/null
+++ b/examples/micelle/log.28Feb2019.micelle.g++.4
@@ -0,0 +1,259 @@
+LAMMPS (28 Feb 2019)
+OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:88)
+ using 1 OpenMP thread(s) per MPI task
+# 2d micelle simulation
+
+dimension 2
+
+neighbor 0.3 bin
+neigh_modify delay 5
+
+atom_style bond
+
+# Soft potential push-off
+
+read_data data.micelle
+ orthogonal box = (0 0 -0.1) to (35.8569 35.8569 0.1)
+ 2 by 2 by 1 MPI processor grid
+ reading atoms ...
+ 1200 atoms
+ scanning bonds ...
+ 1 = max bonds/atom
+ reading bonds ...
+ 300 bonds
+ 2 = max # of 1-2 neighbors
+ 1 = max # of 1-3 neighbors
+ 1 = max # of 1-4 neighbors
+ 2 = max # of special neighbors
+ special bonds CPU = 0.000130415 secs
+ read_data CPU = 0.00132132 secs
+special_bonds fene
+ 2 = max # of 1-2 neighbors
+ 2 = max # of special neighbors
+ special bonds CPU = 4.76837e-05 secs
+
+pair_style soft 1.12246
+pair_coeff * * 0.0 1.12246
+
+bond_style harmonic
+bond_coeff 1 50.0 0.75
+
+velocity all create 0.45 2349852
+
+variable prefactor equal ramp(1.0,20.0)
+
+fix 1 all nve
+fix 2 all temp/rescale 100 0.45 0.45 0.02 1.0
+fix 3 all adapt 1 pair soft a * * v_prefactor
+fix 4 all enforce2d
+
+thermo 50
+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 = 1.42246
+ ghost atom cutoff = 1.42246
+ binsize = 0.71123, bins = 51 51 1
+ 1 neighbor lists, perpetual/occasional/extra = 1 0 0
+ (1) pair soft, perpetual
+ attributes: half, newton on
+ pair build: half/bin/newton
+ stencil: half/bin/2d/newton
+ bin: standard
+Per MPI rank memory allocation (min/avg/max) = 3.758 | 3.85 | 4.126 Mbytes
+Step Temp E_pair E_mol TotEng Press
+ 0 0.45 0.40003481 2.2200223e-06 0.84966203 0.78952518
+ 50 0.47411013 0.67721272 0.057404514 1.2083323 1.3375852
+ 100 0.45 0.73046745 0.054836584 1.234929 2.3196516
+ 150 0.67521742 0.72402001 0.043490075 1.4421648 2.8744416
+ 200 0.45 0.78481891 0.076931503 1.3113754 3.0412388
+ 250 0.66479018 0.69790602 0.081075564 1.4432178 3.6917024
+ 300 0.45 0.76820218 0.066727591 1.2845548 3.7861054
+ 350 0.67619136 0.625715 0.072722727 1.3740656 4.2861621
+ 400 0.45 0.68527759 0.090724527 1.2256271 4.4725214
+ 450 0.56702844 0.64402767 0.080555563 1.2911391 4.7402211
+ 500 0.45 0.64883009 0.078376672 1.1768318 4.7919294
+ 550 0.564664 0.58260368 0.080779475 1.2275766 4.9855705
+ 600 0.45 0.58193041 0.088386617 1.119942 5.131481
+ 650 0.52110993 0.5415273 0.097683746 1.1598867 5.2500294
+ 700 0.45 0.50856787 0.088471208 1.0466641 5.2550165
+ 750 0.51510855 0.47441291 0.089429375 1.0785216 5.375763
+ 800 0.45 0.49926696 0.085958476 1.0348504 5.4665914
+ 850 0.50688494 0.46614429 0.088962292 1.0615691 5.556932
+ 900 0.45 0.47785593 0.10150857 1.0289895 5.7765975
+ 950 0.49590559 0.46050477 0.096404887 1.052402 5.8649245
+ 1000 0.45 0.47691182 0.08808163 1.0146185 6.0177568
+Loop time of 0.0377742 on 4 procs for 1000 steps with 1200 atoms
+
+Performance: 11436375.633 tau/day, 26473.092 timesteps/s
+96.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 | 0.016871 | 0.017299 | 0.018185 | 0.4 | 45.80
+Bond | 0.0010128 | 0.0010633 | 0.001116 | 0.1 | 2.81
+Neigh | 0.004832 | 0.0048565 | 0.0048807 | 0.0 | 12.86
+Comm | 0.0066509 | 0.0077528 | 0.0084352 | 0.8 | 20.52
+Output | 0.00022054 | 0.00028259 | 0.00046587 | 0.0 | 0.75
+Modify | 0.0035386 | 0.0036086 | 0.0036943 | 0.1 | 9.55
+Other | | 0.002912 | | | 7.71
+
+Nlocal: 300 ave 305 max 292 min
+Histogram: 1 0 0 0 0 0 1 0 1 1
+Nghost: 100.25 ave 108 max 93 min
+Histogram: 1 0 1 0 0 0 1 0 0 1
+Neighs: 784 ave 815 max 739 min
+Histogram: 1 0 0 0 0 0 1 1 0 1
+
+Total # of neighbors = 3136
+Ave neighs/atom = 2.61333
+Ave special neighs/atom = 0.5
+Neighbor list builds = 92
+Dangerous builds = 0
+
+unfix 3
+
+# Main run
+
+pair_style lj/cut 2.5
+
+# solvent/head - full-size and long-range
+
+pair_coeff 1 1 1.0 1.0 2.5
+pair_coeff 2 2 1.0 1.0 2.5
+pair_coeff 1 2 1.0 1.0 2.5
+
+# tail/tail - size-averaged and long-range
+
+pair_coeff 3 3 1.0 0.75 2.5
+pair_coeff 4 4 1.0 0.50 2.5
+pair_coeff 3 4 1.0 0.67 2.5
+
+# solvent/tail - full-size and repulsive
+
+pair_coeff 1 3 1.0 1.0 1.12246
+pair_coeff 1 4 1.0 1.0 1.12246
+
+# head/tail - size-averaged and repulsive
+
+pair_coeff 2 3 1.0 0.88 1.12246
+pair_coeff 2 4 1.0 0.75 1.12246
+
+thermo 1000
+
+#dump 1 all atom 2000 dump.micelle
+
+#dump 2 all image 2000 image.*.jpg type type zoom 1.6
+#dump_modify 2 pad 5 adiam 1 0.5 adiam 2 1.5 adiam 3 1.0 adiam 4 0.75
+
+#dump 3 all movie 2000 movie.mpg type type zoom 1.6
+#dump_modify 3 pad 5 adiam 1 0.5 adiam 2 1.5 adiam 3 1.0 adiam 4 0.75
+
+reset_timestep 0
+run 60000
+Neighbor list info ...
+ update every 1 steps, delay 5 steps, check yes
+ max neighbors/atom: 2000, page size: 100000
+ master list distance cutoff = 2.8
+ ghost atom cutoff = 2.8
+ binsize = 1.4, bins = 26 26 1
+ 1 neighbor lists, perpetual/occasional/extra = 1 0 0
+ (1) pair lj/cut, perpetual
+ attributes: half, newton on
+ pair build: half/bin/newton
+ stencil: half/bin/2d/newton
+ bin: standard
+Per MPI rank memory allocation (min/avg/max) = 4.001 | 4.032 | 4.124 Mbytes
+Step Temp E_pair E_mol TotEng Press
+ 0 0.45 -1.7056163 0.08808163 -1.1679097 3.9431686
+ 1000 0.45 -1.9727652 0.058608073 -1.4645321 1.9982444
+ 2000 0.44428815 -1.9902282 0.064240544 -1.4820698 1.7051263
+ 3000 0.46641766 -1.9856844 0.065017468 -1.4546379 1.6939772
+ 4000 0.45734058 -2.0242583 0.070494626 -1.4968042 1.3474276
+ 5000 0.44904747 -2.0086954 0.058801142 -1.501221 1.4632351
+ 6000 0.44961405 -2.0334509 0.05721299 -1.5269985 1.3093586
+ 7000 0.45474928 -2.0453645 0.064725006 -1.5262692 1.1581035
+ 8000 0.44274767 -2.0375379 0.062216035 -1.5329431 1.312914
+ 9000 0.46176571 -2.0473031 0.065581966 -1.5203402 1.2013868
+ 10000 0.45046977 -2.0540466 0.065402724 -1.5385495 0.95819581
+ 11000 0.45016671 -2.0610028 0.056993955 -1.5542172 1.0433435
+ 12000 0.43823039 -2.073155 0.065171939 -1.5701178 1.1400059
+ 13000 0.44482161 -2.0678338 0.063901045 -1.5594819 0.97993813
+ 14000 0.45 -2.0892562 0.061753632 -1.5778776 0.89841778
+ 15000 0.44328626 -2.0859346 0.059956258 -1.5830615 0.90664821
+ 16000 0.45666508 -2.0859262 0.059582346 -1.5700593 0.9702235
+ 17000 0.44832038 -2.0762124 0.059153394 -1.5691122 0.93020504
+ 18000 0.4555831 -2.0844959 0.057986324 -1.5713062 0.87398232
+ 19000 0.45257867 -2.0671736 0.062190389 -1.5527816 0.89208496
+ 20000 0.44010419 -2.1020944 0.062053708 -1.6003033 0.84140973
+ 21000 0.45239369 -2.0820308 0.060981799 -1.5690323 0.98502522
+ 22000 0.44607468 -2.0820602 0.051731316 -1.5846259 0.86120529
+ 23000 0.45088473 -2.0865286 0.05727778 -1.5787418 1.1479844
+ 24000 0.45526919 -2.1086678 0.057378327 -1.5963997 0.86944138
+ 25000 0.46536624 -2.1055425 0.05665328 -1.5839108 0.72895438
+ 26000 0.46716668 -2.1035267 0.057498747 -1.5792505 0.85105386
+ 27000 0.44374699 -2.0932213 0.060937242 -1.5889069 0.93200759
+ 28000 0.45944001 -2.0968869 0.053052954 -1.5847768 0.78909249
+ 29000 0.4543632 -2.10493 0.061511018 -1.5894345 0.85862527
+ 30000 0.44987776 -2.0942536 0.062431086 -1.5823197 0.7349894
+ 31000 0.43829016 -2.0951259 0.060245682 -1.5969553 0.86702973
+ 32000 0.45416601 -2.0991679 0.055978905 -1.5894015 0.75777153
+ 33000 0.4605079 -2.1118364 0.058205688 -1.5935066 0.86041104
+ 34000 0.43638213 -2.0925345 0.067533519 -1.5889825 0.85100425
+ 35000 0.46912252 -2.1082718 0.051646432 -1.5878938 0.73613751
+ 36000 0.45 -2.0966442 0.052507159 -1.5945121 0.88722487
+ 37000 0.44970507 -2.1029685 0.065454263 -1.588184 0.76033821
+ 38000 0.44910233 -2.097751 0.05767009 -1.5913528 0.95830923
+ 39000 0.4322161 -2.1060426 0.062453704 -1.611733 0.74681695
+ 40000 0.46143858 -2.1328575 0.057333011 -1.6144704 0.58326322
+ 41000 0.43180549 -2.1070656 0.064150563 -1.6114694 0.82842684
+ 42000 0.46738909 -2.1067947 0.058017036 -1.5817781 0.73292362
+ 43000 0.43699124 -2.1171964 0.062817262 -1.6177521 0.73354741
+ 44000 0.45262916 -2.1281307 0.055228619 -1.6206502 0.64167946
+ 45000 0.43905419 -2.088789 0.055597999 -1.5945027 0.8002542
+ 46000 0.44485569 -2.1035061 0.067828181 -1.5911929 0.71861494
+ 47000 0.44496824 -2.0968296 0.0632326 -1.5889996 0.75202899
+ 48000 0.46567244 -2.1235948 0.061032118 -1.5972783 0.64094556
+ 49000 0.43202506 -2.0986097 0.053464022 -1.6134806 0.83857984
+ 50000 0.45454698 -2.1263344 0.058119708 -1.6140465 0.67030037
+ 51000 0.43702766 -2.1292347 0.074047424 -1.6185238 0.52896462
+ 52000 0.46367081 -2.1177288 0.06726625 -1.5871781 0.74343227
+ 53000 0.45 -2.1341074 0.062769314 -1.6217131 0.51130365
+ 54000 0.44862492 -2.1272108 0.057723381 -1.6212364 0.54735429
+ 55000 0.44926027 -2.1350444 0.066186625 -1.6199719 0.66821299
+ 56000 0.4544227 -2.1325537 0.065298628 -1.6132111 0.63597556
+ 57000 0.45697003 -2.1323238 0.053312855 -1.6224218 0.55572633
+ 58000 0.45698902 -2.1043208 0.055835989 -1.5918766 0.63502658
+ 59000 0.4425306 -2.1120353 0.056617261 -1.6132563 0.65681272
+ 60000 0.44319296 -2.1171981 0.058330294 -1.6160442 0.63602511
+Loop time of 2.63918 on 4 procs for 60000 steps with 1200 atoms
+
+Performance: 9821248.084 tau/day, 22734.371 timesteps/s
+97.3% CPU use with 4 MPI tasks x 1 OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 1.1742 | 1.278 | 1.3471 | 5.9 | 48.43
+Bond | 0.046621 | 0.06565 | 0.081322 | 5.1 | 2.49
+Neigh | 0.46642 | 0.46917 | 0.47105 | 0.3 | 17.78
+Comm | 0.47295 | 0.55928 | 0.67758 | 10.5 | 21.19
+Output | 0.00073624 | 0.00173 | 0.0047016 | 4.1 | 0.07
+Modify | 0.14511 | 0.15226 | 0.15887 | 1.5 | 5.77
+Other | | 0.1131 | | | 4.28
+
+Nlocal: 300 ave 309 max 281 min
+Histogram: 1 0 0 0 0 0 0 1 0 2
+Nghost: 232.75 ave 234 max 231 min
+Histogram: 1 0 0 1 0 0 0 0 0 2
+Neighs: 2450.25 ave 2576 max 2179 min
+Histogram: 1 0 0 0 0 0 0 0 1 2
+
+Total # of neighbors = 9801
+Ave neighs/atom = 8.1675
+Ave special neighs/atom = 0.5
+Neighbor list builds = 4887
+Dangerous builds = 0
+Total wall time: 0:00:02
diff --git a/examples/micelle/log.28Feb2019.micelle.rigid.g++.1 b/examples/micelle/log.28Feb2019.micelle.rigid.g++.1
new file mode 100644
index 0000000000..ec0079818d
--- /dev/null
+++ b/examples/micelle/log.28Feb2019.micelle.rigid.g++.1
@@ -0,0 +1,290 @@
+LAMMPS (28 Feb 2019)
+OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:88)
+ using 1 OpenMP thread(s) per MPI task
+# 2d micelle simulation
+
+dimension 2
+
+neighbor 0.3 bin
+neigh_modify delay 5
+
+atom_style bond
+
+# Soft potential push-off
+
+read_data data.micelle
+ orthogonal box = (0 0 -0.1) to (35.8569 35.8569 0.1)
+ 1 by 1 by 1 MPI processor grid
+ reading atoms ...
+ 1200 atoms
+ scanning bonds ...
+ 1 = max bonds/atom
+ reading bonds ...
+ 300 bonds
+ 2 = max # of 1-2 neighbors
+ 1 = max # of 1-3 neighbors
+ 1 = max # of 1-4 neighbors
+ 2 = max # of special neighbors
+ special bonds CPU = 0.000271559 secs
+ read_data CPU = 0.00115585 secs
+special_bonds fene
+ 2 = max # of 1-2 neighbors
+ 2 = max # of special neighbors
+ special bonds CPU = 8.39233e-05 secs
+
+pair_style soft 1.12246
+pair_coeff * * 0.0 1.12246
+
+bond_style harmonic
+bond_coeff 1 50.0 0.75
+
+velocity all create 0.45 2349852
+
+variable prefactor equal ramp(1.0,20.0)
+
+fix 1 all nve
+fix 2 all temp/rescale 100 0.45 0.45 0.02 1.0
+fix 3 all adapt 1 pair soft a * * v_prefactor
+fix 4 all enforce2d
+
+thermo 50
+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 = 1.42246
+ ghost atom cutoff = 1.42246
+ binsize = 0.71123, bins = 51 51 1
+ 1 neighbor lists, perpetual/occasional/extra = 1 0 0
+ (1) pair soft, perpetual
+ attributes: half, newton on
+ pair build: half/bin/newton
+ stencil: half/bin/2d/newton
+ bin: standard
+Per MPI rank memory allocation (min/avg/max) = 3.799 | 3.799 | 3.799 Mbytes
+Step Temp E_pair E_mol TotEng Press
+ 0 0.45 0.40003481 2.2200223e-06 0.84966203 0.78952518
+ 50 0.47411013 0.67721272 0.057404514 1.2083323 1.3375852
+ 100 0.45 0.73046745 0.054836584 1.234929 2.3196516
+ 150 0.67521742 0.72402001 0.043490075 1.4421648 2.8744416
+ 200 0.45 0.78481891 0.076931503 1.3113754 3.0412388
+ 250 0.66479018 0.69790602 0.081075564 1.4432178 3.6917024
+ 300 0.45 0.76820218 0.066727591 1.2845548 3.7861054
+ 350 0.67619136 0.625715 0.072722727 1.3740656 4.2861621
+ 400 0.45 0.68527759 0.090724527 1.2256271 4.4725214
+ 450 0.56702844 0.64402767 0.080555563 1.2911391 4.7402211
+ 500 0.45 0.64883009 0.078376672 1.1768318 4.7919294
+ 550 0.564664 0.58260368 0.080779475 1.2275766 4.9855705
+ 600 0.45 0.58193041 0.088386617 1.119942 5.131481
+ 650 0.52110993 0.5415273 0.097683746 1.1598867 5.2500294
+ 700 0.45 0.50856787 0.088471208 1.0466641 5.2550165
+ 750 0.51510855 0.47441291 0.089429375 1.0785216 5.375763
+ 800 0.45 0.49926696 0.085958476 1.0348504 5.4665914
+ 850 0.50688494 0.46614429 0.088962292 1.0615691 5.556932
+ 900 0.45 0.47785593 0.10150857 1.0289895 5.7765975
+ 950 0.49590559 0.46050477 0.096404887 1.052402 5.8649245
+ 1000 0.45 0.47691182 0.08808163 1.0146185 6.0177568
+Loop time of 0.107201 on 1 procs for 1000 steps with 1200 atoms
+
+Performance: 4029800.456 tau/day, 9328.242 timesteps/s
+99.8% CPU use with 1 MPI tasks x 1 OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 0.072035 | 0.072035 | 0.072035 | 0.0 | 67.20
+Bond | 0.0039918 | 0.0039918 | 0.0039918 | 0.0 | 3.72
+Neigh | 0.016078 | 0.016078 | 0.016078 | 0.0 | 15.00
+Comm | 0.0018375 | 0.0018375 | 0.0018375 | 0.0 | 1.71
+Output | 0.00016379 | 0.00016379 | 0.00016379 | 0.0 | 0.15
+Modify | 0.010665 | 0.010665 | 0.010665 | 0.0 | 9.95
+Other | | 0.002429 | | | 2.27
+
+Nlocal: 1200 ave 1200 max 1200 min
+Histogram: 1 0 0 0 0 0 0 0 0 0
+Nghost: 195 ave 195 max 195 min
+Histogram: 1 0 0 0 0 0 0 0 0 0
+Neighs: 3136 ave 3136 max 3136 min
+Histogram: 1 0 0 0 0 0 0 0 0 0
+
+Total # of neighbors = 3136
+Ave neighs/atom = 2.61333
+Ave special neighs/atom = 0.5
+Neighbor list builds = 92
+Dangerous builds = 0
+
+unfix 3
+
+# Main run
+
+pair_style lj/cut 2.5
+
+# solvent/head - full-size and long-range
+
+pair_coeff 1 1 1.0 1.0 2.5
+pair_coeff 2 2 1.0 1.0 2.5
+pair_coeff 1 2 1.0 1.0 2.5
+
+# tail/tail - size-averaged and long-range
+
+pair_coeff 3 3 1.0 0.75 2.5
+pair_coeff 4 4 1.0 0.50 2.5
+pair_coeff 3 4 1.0 0.67 2.5
+
+# solvent/tail - full-size and repulsive
+
+pair_coeff 1 3 1.0 1.0 1.12246
+pair_coeff 1 4 1.0 1.0 1.12246
+
+# head/tail - size-averaged and repulsive
+
+pair_coeff 2 3 1.0 0.88 1.12246
+pair_coeff 2 4 1.0 0.75 1.12246
+
+thermo 1000
+
+#dump 1 all atom 2000 dump.micelle
+
+#dump 2 all image 2000 image.*.jpg type type zoom 1.6
+#dump_modify 2 pad 5 adiam 1 0.5 adiam 2 1.5 adiam 3 1.0 adiam 4 0.75
+
+#dump 3 all movie 2000 movie.mpg type type zoom 1.6
+#dump_modify 3 pad 5 adiam 1 0.5 adiam 2 1.5 adiam 3 1.0 adiam 4 0.75
+
+reset_timestep 0
+group solvent molecule 0
+750 atoms in group solvent
+group solute subtract all solvent
+450 atoms in group solute
+unfix 1
+unfix 2
+unfix 4
+fix 1 solvent nve
+fix 2 solvent temp/rescale 100 0.45 0.45 0.02 1.0
+fix 5 solute rigid molecule langevin 0.45 0.45 0.5 112211
+150 rigid bodies with 450 atoms
+fix 4 all enforce2d
+run 20000
+Neighbor list info ...
+ update every 1 steps, delay 5 steps, check yes
+ max neighbors/atom: 2000, page size: 100000
+ master list distance cutoff = 2.8
+ ghost atom cutoff = 2.8
+ binsize = 1.4, bins = 26 26 1
+ 1 neighbor lists, perpetual/occasional/extra = 1 0 0
+ (1) pair lj/cut, perpetual
+ attributes: half, newton on
+ pair build: half/bin/newton
+ stencil: half/bin/2d/newton
+ bin: standard
+Per MPI rank memory allocation (min/avg/max) = 5.274 | 5.274 | 5.274 Mbytes
+Step Temp E_pair E_mol TotEng Press
+ 0 0.44603578 -1.7056163 0.08808163 -1.2555023 3.4039736
+ 1000 0.46008168 -1.9040837 0.08808163 -1.4425691 0.93225457
+ 2000 0.44520658 -1.9317253 0.08808163 -1.4822843 3.8192896
+ 3000 0.43988556 -1.945898 0.08808163 -1.5007759 3.0371634
+ 4000 0.4646519 -1.9753553 0.08808163 -1.5101312 -1.8041178
+ 5000 0.4362993 -1.9763715 0.08808163 -1.5341603 1.5037284
+ 6000 0.47007384 -1.9833154 0.08808163 -1.5136905 2.1227653
+ 7000 0.44854623 -1.9914288 0.08808163 -1.5392772 3.9458099
+ 8000 0.43841372 -1.9779603 0.08808163 -1.5340328 -4.5429769
+ 9000 0.4518303 -1.9834387 0.08808163 -1.5286215 4.4230447
+ 10000 0.43562904 -2.001471 0.08808163 -1.5598038 1.8919582
+ 11000 0.44014575 -1.9820611 0.08808163 -1.5367278 -2.1189418
+ 12000 0.44466956 -2.0134014 0.08808163 -1.5643963 -2.5218497
+ 13000 0.45274369 -2.021443 0.08808163 -1.5658844 2.4795173
+ 14000 0.44742645 -2.011108 0.08808163 -1.5598653 -0.74697767
+ 15000 0.4674843 -2.024737 0.08808163 -1.5572139 -1.9539999
+ 16000 0.45610154 -2.0401029 0.08808163 -1.5818189 -0.53082066
+ 17000 0.44679292 -2.0365577 0.08808163 -1.5858291 -6.5040295
+ 18000 0.44279107 -2.0500326 0.08808163 -1.6025522 -0.051597102
+ 19000 0.45603993 -2.0306289 0.08808163 -1.5723948 1.0986608
+ 20000 0.44519606 -2.0412229 0.08808163 -1.5917904 -1.0406746
+Loop time of 3.68102 on 1 procs for 20000 steps with 1200 atoms
+
+Performance: 2347175.802 tau/day, 5433.277 timesteps/s
+99.8% CPU use with 1 MPI tasks x 1 OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 1.7349 | 1.7349 | 1.7349 | 0.0 | 47.13
+Bond | 0.079483 | 0.079483 | 0.079483 | 0.0 | 2.16
+Neigh | 0.49063 | 0.49063 | 0.49063 | 0.0 | 13.33
+Comm | 0.049093 | 0.049093 | 0.049093 | 0.0 | 1.33
+Output | 0.00022578 | 0.00022578 | 0.00022578 | 0.0 | 0.01
+Modify | 1.273 | 1.273 | 1.273 | 0.0 | 34.58
+Other | | 0.05369 | | | 1.46
+
+Nlocal: 1200 ave 1200 max 1200 min
+Histogram: 1 0 0 0 0 0 0 0 0 0
+Nghost: 395 ave 395 max 395 min
+Histogram: 1 0 0 0 0 0 0 0 0 0
+Neighs: 8915 ave 8915 max 8915 min
+Histogram: 1 0 0 0 0 0 0 0 0 0
+
+Total # of neighbors = 8915
+Ave neighs/atom = 7.42917
+Ave special neighs/atom = 0.5
+Neighbor list builds = 1580
+Dangerous builds = 0
+unfix 5
+unfix 4
+fix 5 solute rigid/small molecule langevin 0.45 0.45 0.5 112211
+ create bodies CPU = 0.00012517 secs
+150 rigid bodies with 450 atoms
+ 1.04536 = max distance from body owner to body atom
+fix 4 all enforce2d
+run 20000
+Per MPI rank memory allocation (min/avg/max) = 8.633 | 8.633 | 8.633 Mbytes
+Step Temp E_pair E_mol TotEng Press
+ 20000 0.44519606 -2.0412229 0.08808163 -1.5917904 1.3058893
+ 21000 0.4353376 -2.0483342 0.08808163 -1.6069035 0.53023317
+ 22000 0.44034324 -2.0416876 0.08808163 -1.5961941 4.0327077
+ 23000 0.4685403 -2.05295 0.08808163 -1.5845698 3.6792349
+ 24000 0.44872075 -2.0320623 0.08808163 -1.579769 -2.0476923
+ 25000 0.46829594 -2.0671408 0.08808163 -1.5989589 2.180811
+ 26000 0.45257544 -2.0418792 0.08808163 -1.5864572 3.3924018
+ 27000 0.44269664 -2.0409905 0.08808163 -1.5935868 -0.17012673
+ 28000 0.46961216 -2.0552479 0.08808163 -1.5859978 -7.2870888
+ 29000 0.46683129 -2.0438334 0.08808163 -1.5768404 3.0583141
+ 30000 0.44262228 -2.036737 0.08808163 -1.5893937 0.087520915
+ 31000 0.43517227 -2.0479672 0.08808163 -1.6066708 -0.3426009
+ 32000 0.44543779 -2.0538031 0.08808163 -1.6041744 -0.2093148
+ 33000 0.44629079 -2.0409901 0.08808163 -1.5906691 3.310113
+ 34000 0.43058831 -2.0713827 0.08808163 -1.6338069 0.14128843
+ 35000 0.44546512 -2.0427068 0.08808163 -1.593056 -3.1386697
+ 36000 0.42971129 -2.0527435 0.08808163 -1.6158795 -2.7334963
+ 37000 0.44707969 -2.0461803 0.08808163 -1.595219 -3.8777678
+ 38000 0.43150818 -2.0435276 0.08808163 -1.6052052 0.2905487
+ 39000 0.44463343 -2.0522113 0.08808163 -1.6032355 3.543123
+ 40000 0.44582593 -2.052213 0.08808163 -1.6022693 1.1486536
+Loop time of 3.69012 on 1 procs for 20000 steps with 1200 atoms
+
+Performance: 2341388.948 tau/day, 5419.882 timesteps/s
+99.8% CPU use with 1 MPI tasks x 1 OpenMP threads
+
+MPI task timing breakdown:
+Section | min time | avg time | max time |%varavg| %total
+---------------------------------------------------------------
+Pair | 1.756 | 1.756 | 1.756 | 0.0 | 47.59
+Bond | 0.079221 | 0.079221 | 0.079221 | 0.0 | 2.15
+Neigh | 0.49085 | 0.49085 | 0.49085 | 0.0 | 13.30
+Comm | 0.048317 | 0.048317 | 0.048317 | 0.0 | 1.31
+Output | 0.0002315 | 0.0002315 | 0.0002315 | 0.0 | 0.01
+Modify | 1.2616 | 1.2616 | 1.2616 | 0.0 | 34.19
+Other | | 0.05386 | | | 1.46
+
+Nlocal: 1200 ave 1200 max 1200 min
+Histogram: 1 0 0 0 0 0 0 0 0 0
+Nghost: 393 ave 393 max 393 min
+Histogram: 1 0 0 0 0 0 0 0 0 0
+Neighs: 9091 ave 9091 max 9091 min
+Histogram: 1 0 0 0 0 0 0 0 0 0
+
+Total # of neighbors = 9091
+Ave neighs/atom = 7.57583
+Ave special neighs/atom = 0.5
+Neighbor list builds = 1582
+Dangerous builds = 0
+Total wall time: 0:00:07
diff --git a/examples/micelle/log.28Feb2019.micelle.rigid.g++.4 b/examples/micelle/log.28Feb2019.micelle.rigid.g++.4
new file mode 100644
index 0000000000..a6687a3c00
--- /dev/null
+++ b/examples/micelle/log.28Feb2019.micelle.rigid.g++.4
@@ -0,0 +1,290 @@
+LAMMPS (28 Feb 2019)
+OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:88)
+ using 1 OpenMP thread(s) per MPI task
+# 2d micelle simulation
+
+dimension 2
+
+neighbor 0.3 bin
+neigh_modify delay 5
+
+atom_style bond
+
+# Soft potential push-off
+
+read_data data.micelle
+ orthogonal box = (0 0 -0.1) to (35.8569 35.8569 0.1)
+ 2 by 2 by 1 MPI processor grid
+ reading atoms ...
+ 1200 atoms
+ scanning bonds ...
+ 1 = max bonds/atom
+ reading bonds ...
+ 300 bonds
+ 2 = max # of 1-2 neighbors
+ 1 = max # of 1-3 neighbors
+ 1 = max # of 1-4 neighbors
+ 2 = max # of special neighbors
+ special bonds CPU = 0.000175714 secs
+ read_data CPU = 0.00145626 secs
+special_bonds fene
+ 2 = max # of 1-2 neighbors
+ 2 = max # of special neighbors
+ special bonds CPU = 7.22408e-05 secs
+
+pair_style soft 1.12246
+pair_coeff * * 0.0 1.12246
+
+bond_style harmonic
+bond_coeff 1 50.0 0.75
+
+velocity all create 0.45 2349852
+
+variable prefactor equal ramp(1.0,20.0)
+
+fix 1 all nve
+fix 2 all temp/rescale 100 0.45 0.45 0.02 1.0
+fix 3 all adapt 1 pair soft a * * v_prefactor
+fix 4 all enforce2d
+
+thermo 50
+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 = 1.42246
+ ghost atom cutoff = 1.42246
+ binsize = 0.71123, bins = 51 51 1
+ 1 neighbor lists, perpetual/occasional/extra = 1 0 0
+ (1) pair soft, perpetual
+ attributes: half, newton on
+ pair build: half/bin/newton
+ stencil: half/bin/2d/newton
+ bin: standard
+Per MPI rank memory allocation (min/avg/max) = 3.758 | 3.85 | 4.126 Mbytes
+Step Temp E_pair E_mol TotEng Press
+ 0 0.45 0.40003481 2.2200223e-06 0.84966203 0.78952518
+ 50 0.47411013 0.67721272 0.057404514 1.2083323 1.3375852
+ 100 0.45 0.73046745 0.054836584 1.234929 2.3196516
+ 150 0.67521742 0.72402001 0.043490075 1.4421648 2.8744416
+ 200 0.45 0.78481891 0.076931503 1.3113754 3.0412388
+ 250 0.66479018 0.69790602 0.081075564 1.4432178 3.6917024
+ 300 0.45 0.76820218 0.066727591 1.2845548 3.7861054
+ 350 0.67619136 0.625715 0.072722727 1.3740656 4.2861621
+ 400 0.45 0.68527759 0.090724527 1.2256271 4.4725214
+ 450 0.56702844 0.64402767 0.080555563 1.2911391 4.7402211
+ 500 0.45 0.64883009 0.078376672 1.1768318 4.7919294
+ 550 0.564664 0.58260368 0.080779475 1.2275766 4.9855705
+ 600 0.45 0.58193041 0.088386617 1.119942 5.131481
+ 650 0.52110993 0.5415273 0.097683746 1.1598867 5.2500294
+ 700 0.45 0.50856787 0.088471208 1.0466641 5.2550165
+ 750 0.51510855 0.47441291 0.089429375 1.0785216 5.375763
+ 800 0.45 0.49926696 0.085958476 1.0348504 5.4665914
+ 850 0.50688494 0.46614429 0.088962292 1.0615691 5.556932
+ 900 0.45 0.47785593 0.10150857 1.0289895 5.7765975
+ 950 0.49590559 0.46050477 0.096404887 1.052402 5.8649245
+ 1000 0.45 0.47691182 0.08808163 1.0146185 6.0177568
+Loop time of 0.0389124 on 4 procs for 1000 steps with 1200 atoms
+
+Performance: 11101855.138 tau/day, 25698.739 timesteps/s
+95.7% 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.016776 | 0.017405 | 0.018435 | 0.5 | 44.73
+Bond | 0.0010033 | 0.0011995 | 0.0015519 | 0.6 | 3.08
+Neigh | 0.0044944 | 0.0045093 | 0.0045218 | 0.0 | 11.59
+Comm | 0.0080328 | 0.0093863 | 0.010242 | 0.9 | 24.12
+Output | 0.00021577 | 0.00027579 | 0.00045323 | 0.0 | 0.71
+Modify | 0.0034575 | 0.0036355 | 0.0040002 | 0.4 | 9.34
+Other | | 0.002501 | | | 6.43
+
+Nlocal: 300 ave 305 max 292 min
+Histogram: 1 0 0 0 0 0 1 0 1 1
+Nghost: 100.25 ave 108 max 93 min
+Histogram: 1 0 1 0 0 0 1 0 0 1
+Neighs: 784 ave 815 max 739 min
+Histogram: 1 0 0 0 0 0 1 1 0 1
+
+Total # of neighbors = 3136
+Ave neighs/atom = 2.61333
+Ave special neighs/atom = 0.5
+Neighbor list builds = 92
+Dangerous builds = 0
+
+unfix 3
+
+# Main run
+
+pair_style lj/cut 2.5
+
+# solvent/head - full-size and long-range
+
+pair_coeff 1 1 1.0 1.0 2.5
+pair_coeff 2 2 1.0 1.0 2.5
+pair_coeff 1 2 1.0 1.0 2.5
+
+# tail/tail - size-averaged and long-range
+
+pair_coeff 3 3 1.0 0.75 2.5
+pair_coeff 4 4 1.0 0.50 2.5
+pair_coeff 3 4 1.0 0.67 2.5
+
+# solvent/tail - full-size and repulsive
+
+pair_coeff 1 3 1.0 1.0 1.12246
+pair_coeff 1 4 1.0 1.0 1.12246
+
+# head/tail - size-averaged and repulsive
+
+pair_coeff 2 3 1.0 0.88 1.12246
+pair_coeff 2 4 1.0 0.75 1.12246
+
+thermo 1000
+
+#dump 1 all atom 2000 dump.micelle
+
+#dump 2 all image 2000 image.*.jpg type type zoom 1.6
+#dump_modify 2 pad 5 adiam 1 0.5 adiam 2 1.5 adiam 3 1.0 adiam 4 0.75
+
+#dump 3 all movie 2000 movie.mpg type type zoom 1.6
+#dump_modify 3 pad 5 adiam 1 0.5 adiam 2 1.5 adiam 3 1.0 adiam 4 0.75
+
+reset_timestep 0
+group solvent molecule 0
+750 atoms in group solvent
+group solute subtract all solvent
+450 atoms in group solute
+unfix 1
+unfix 2
+unfix 4
+fix 1 solvent nve
+fix 2 solvent temp/rescale 100 0.45 0.45 0.02 1.0
+fix 5 solute rigid molecule langevin 0.45 0.45 0.5 112211
+150 rigid bodies with 450 atoms
+fix 4 all enforce2d
+run 20000
+Neighbor list info ...
+ update every 1 steps, delay 5 steps, check yes
+ max neighbors/atom: 2000, page size: 100000
+ master list distance cutoff = 2.8
+ ghost atom cutoff = 2.8
+ binsize = 1.4, bins = 26 26 1
+ 1 neighbor lists, perpetual/occasional/extra = 1 0 0
+ (1) pair lj/cut, perpetual
+ attributes: half, newton on
+ pair build: half/bin/newton
+ stencil: half/bin/2d/newton
+ bin: standard
+Per MPI rank memory allocation (min/avg/max) = 5.251 | 5.282 | 5.374 Mbytes
+Step Temp E_pair E_mol TotEng Press
+ 0 0.44603578 -1.7056163 0.08808163 -1.2555023 3.4039736
+ 1000 0.46008163 -1.9040835 0.08808163 -1.4425689 0.93225869
+ 2000 0.44943348 -1.9355135 0.08808163 -1.4826417 3.8399671
+ 3000 0.4448437 -1.9480307 0.08808163 -1.4988842 2.5506553
+ 4000 0.46013872 -1.9783821 0.08808163 -1.5168212 -1.8963215
+ 5000 0.45520233 -1.9659462 0.08808163 -1.5083921 1.9238897
+ 6000 0.44942049 -1.9663403 0.08808163 -1.513479 3.0633512
+ 7000 0.45975758 -1.988462 0.08808163 -1.5272105 4.8267309
+ 8000 0.45125238 -1.9913522 0.08808163 -1.5370041 -4.6644852
+ 9000 0.45863606 -1.9792375 0.08808163 -1.5188962 4.3655071
+ 10000 0.46264541 -1.9864611 0.08808163 -1.5228656 2.2176464
+ 11000 0.45048361 -1.9907235 0.08808163 -1.5369994 -0.055360699
+ 12000 0.44536719 -2.012875 0.08808163 -1.5633037 -0.2583823
+ 13000 0.44212663 -2.0060111 0.08808163 -1.55907 3.3616171
+ 14000 0.44984353 -2.0335408 0.08808163 -1.5803361 -0.21585645
+ 15000 0.44896672 -2.0385265 0.08808163 -1.5860335 -4.6186206
+ 16000 0.46694997 -2.032795 0.08808163 -1.5657056 0.53443281
+ 17000 0.43208201 -2.0272255 0.08808163 -1.5884373 -6.5239975
+ 18000 0.43281873 -2.0331268 0.08808163 -1.5937406 -0.048319943
+ 19000 0.44704527 -2.0286742 0.08808163 -1.5777408 1.6356417
+ 20000 0.44279735 -2.0443561 0.08808163 -1.5968706 -3.8337952
+Loop time of 1.71924 on 4 procs for 20000 steps with 1200 atoms
+
+Performance: 5025468.853 tau/day, 11633.030 timesteps/s
+98.2% 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.39864 | 0.40873 | 0.42192 | 1.6 | 23.77
+Bond | 0.02118 | 0.021816 | 0.022785 | 0.4 | 1.27
+Neigh | 0.13931 | 0.14031 | 0.14117 | 0.2 | 8.16
+Comm | 0.13974 | 0.15328 | 0.16884 | 3.3 | 8.92
+Output | 0.00026131 | 0.00044435 | 0.00099206 | 0.0 | 0.03
+Modify | 0.93275 | 0.94138 | 0.95072 | 0.7 | 54.76
+Other | | 0.05327 | | | 3.10
+
+Nlocal: 300 ave 303 max 298 min
+Histogram: 1 0 1 0 1 0 0 0 0 1
+Nghost: 218.5 ave 226 max 215 min
+Histogram: 2 1 0 0 0 0 0 0 0 1
+Neighs: 2258.75 ave 2283 max 2216 min
+Histogram: 1 0 0 0 0 0 1 0 1 1
+
+Total # of neighbors = 9035
+Ave neighs/atom = 7.52917
+Ave special neighs/atom = 0.5
+Neighbor list builds = 1580
+Dangerous builds = 0
+unfix 5
+unfix 4
+fix 5 solute rigid/small molecule langevin 0.45 0.45 0.5 112211
+ create bodies CPU = 5.43594e-05 secs
+150 rigid bodies with 450 atoms
+ 0.916597 = max distance from body owner to body atom
+fix 4 all enforce2d
+run 20000
+Per MPI rank memory allocation (min/avg/max) = 8.568 | 8.6 | 8.691 Mbytes
+Step Temp E_pair E_mol TotEng Press
+ 20000 0.44279735 -2.0443561 0.08808163 -1.5968706 -1.033643
+ 21000 0.4529129 -2.049461 0.08808163 -1.5937651 0.93160285
+ 22000 0.45039188 -2.0530092 0.08808163 -1.5993595 -0.10608965
+ 23000 0.45261583 -2.0336042 0.08808163 -1.5781494 -2.5769871
+ 24000 0.4608331 -2.0404645 0.08808163 -1.57834 3.1931675
+ 25000 0.43479001 -2.0617104 0.08808163 -1.6207242 2.8190122
+ 26000 0.47009651 -2.0754873 0.08808163 -1.605844 -0.9158501
+ 27000 0.45002704 -2.0782104 0.08808163 -1.6248568 0.98629661
+ 28000 0.45126136 -2.0592619 0.08808163 -1.6049065 0.03305448
+ 29000 0.44355328 -2.0572858 0.08808163 -1.6091868 -6.0797989
+ 30000 0.45053899 -2.0530953 0.08808163 -1.5993261 0.38382951
+ 31000 0.46931923 -2.0718827 0.08808163 -1.6028703 2.2346891
+ 32000 0.45348857 -2.0744024 0.08808163 -1.6182393 4.5028966
+ 33000 0.44767742 -2.0597127 0.08808163 -1.6082662 -2.8021641
+ 34000 0.45287544 -2.0857303 0.08808163 -1.6300648 -5.384091
+ 35000 0.44743898 -2.0927246 0.08808163 -1.6414717 1.4800508
+ 36000 0.45627028 -2.0720546 0.08808163 -1.6136336 -2.9961696
+ 37000 0.4641334 -2.0701098 0.08808163 -1.6053065 8.4186854
+ 38000 0.45922901 -2.0962331 0.08808163 -1.6354106 0.38361763
+ 39000 0.4692834 -2.0573815 0.08808163 -1.5883982 -2.2177345
+ 40000 0.46206931 -2.057851 0.08808163 -1.5947231 -1.0405727
+Loop time of 1.25476 on 4 procs for 20000 steps with 1200 atoms
+
+Performance: 6885775.862 tau/day, 15939.296 timesteps/s
+98.1% 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.40627 | 0.43037 | 0.45515 | 2.6 | 34.30
+Bond | 0.020504 | 0.021573 | 0.022739 | 0.5 | 1.72
+Neigh | 0.14337 | 0.14438 | 0.1453 | 0.2 | 11.51
+Comm | 0.13776 | 0.16647 | 0.19351 | 5.0 | 13.27
+Output | 0.00025082 | 0.00052994 | 0.0013635 | 0.0 | 0.04
+Modify | 0.45467 | 0.45822 | 0.46259 | 0.5 | 36.52
+Other | | 0.03321 | | | 2.65
+
+Nlocal: 300 ave 304 max 293 min
+Histogram: 1 0 0 0 0 1 0 0 0 2
+Nghost: 215.25 ave 217 max 213 min
+Histogram: 1 0 0 0 0 1 0 1 0 1
+Neighs: 2340 ave 2378 max 2290 min
+Histogram: 1 0 0 1 0 0 0 0 0 2
+
+Total # of neighbors = 9360
+Ave neighs/atom = 7.8
+Ave special neighs/atom = 0.5
+Neighbor list builds = 1579
+Dangerous builds = 0
+Total wall time: 0:00:03
diff --git a/lib/kim/Install.py b/lib/kim/Install.py
index dfb6bc53dc..c3588241c4 100644
--- a/lib/kim/Install.py
+++ b/lib/kim/Install.py
@@ -18,7 +18,7 @@ parser = ArgumentParser(prog='Install.py',
# settings
thisdir = fullpath('.')
-version = "kim-api-v2-2.0.1"
+version = "kim-api-2.0.2"
# help message
@@ -154,7 +154,7 @@ if buildflag:
# add all OpenKIM models, if desired
if everythingflag:
print("Adding all OpenKIM models, this will take a while ...")
- cmd = '%s/bin/kim-api-v2-collections-management install system OpenKIM' % (kimdir)
+ cmd = '%s/bin/kim-api-collections-management install system OpenKIM' % (kimdir)
txt = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True)
if verboseflag:
print(txt.decode("UTF-8"))
@@ -171,7 +171,7 @@ if addflag:
sys.exit("\nkim-api is not installed")
# download single model
- cmd = '%s/bin/kim-api-v2-collections-management install system %s' % (kimdir.decode("UTF-8"), addmodelname)
+ cmd = '%s/bin/kim-api-collections-management install system %s' % (kimdir.decode("UTF-8"), addmodelname)
txt = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True)
if verboseflag:
print(txt.decode("UTF-8"))
diff --git a/lib/kim/Makefile.lammps b/lib/kim/Makefile.lammps
index 492b9ddfc6..d4e10b0fb4 100644
--- a/lib/kim/Makefile.lammps
+++ b/lib/kim/Makefile.lammps
@@ -23,11 +23,11 @@ kim_PREFIX := $(if $(shell printf -- "$${PKG_CONFIG_PATH}"),$(kim_PREFIX):$(she
# there is no usable libcurl installation
ifeq ($(shell curl-config --version 2> /dev/null),)
-kim_SYSINC := $(shell export PKG_CONFIG_PATH="$(kim_PREFIX)"; pkg-config --cflags libkim-api-v2 2> /dev/null)
-kim_SYSLIB := $(shell export PKG_CONFIG_PATH="$(kim_PREFIX)"; pkg-config --libs libkim-api-v2 2> /dev/null)
+kim_SYSINC := $(shell export PKG_CONFIG_PATH="$(kim_PREFIX)"; pkg-config --cflags libkim-api 2> /dev/null)
+kim_SYSLIB := $(shell export PKG_CONFIG_PATH="$(kim_PREFIX)"; pkg-config --libs libkim-api 2> /dev/null)
else
-kim_SYSINC := $(shell export PKG_CONFIG_PATH="$(kim_PREFIX)"; pkg-config --cflags libkim-api-v2 2> /dev/null) $(shell curl-config --cflags) -DLMP_KIM_CURL
-kim_SYSLIB := $(shell export PKG_CONFIG_PATH="$(kim_PREFIX)"; pkg-config --libs libkim-api-v2 2> /dev/null) $(shell curl-config --libs)
+kim_SYSINC := $(shell export PKG_CONFIG_PATH="$(kim_PREFIX)"; pkg-config --cflags libkim-api 2> /dev/null) $(shell curl-config --cflags) -DLMP_KIM_CURL
+kim_SYSLIB := $(shell export PKG_CONFIG_PATH="$(kim_PREFIX)"; pkg-config --libs libkim-api 2> /dev/null) $(shell curl-config --libs)
endif
ifeq ($(strip $(kim_SYSINC)),)
diff --git a/lib/kim/README b/lib/kim/README
index 493758561d..d3327537b6 100644
--- a/lib/kim/README
+++ b/lib/kim/README
@@ -17,7 +17,7 @@ As of KIM API version 2, the KIM package also provides a LAMMPS command
to perform queries through the OpenKIM web API. This feature requires
that the CURL library (libcurl) development package and its configuration
query tool, curl-config, are installed. The provided Makefile.lammps
-is set up to automatically detect this.
+is set up to automatically detect this.
-----------------
@@ -26,17 +26,17 @@ Instructions:
1. Configure lammps for use with the kim-api library installed in this directory
# replace X.Y.Z as appropriate here and below
-$ printf "${PWD}/installed-kim-api-vX-X.Y.Z" > ./kim-prefix.txt
+$ printf "${PWD}/installed-kim-api-X-X.Y.Z" > ./kim-prefix.txt
2. Download and unpack the kim-api
-$ wget http://s3.openkim.org/kim-api/kim-api-vX-X.Y.Z.txz
-$ tar zxvf kim-api-vX-X.Y.Z.txz
+$ wget http://s3.openkim.org/kim-api/kim-api-X.Y.Z.txz
+$ tar zxvf kim-api-X.Y.Z.txz
# configure the kim-api
-$ cd kim-api-vX-X.Y.Z
+$ cd kim-api-X.Y.Z
$ mkdir build && cd build
-$ cmake .. -DCMAKE_INSTALL_PREFIX=${PWD}/../../installed-kim-api-vX-X.Y.Z
+$ cmake .. -DCMAKE_INSTALL_PREFIX=${PWD}/../../installed-kim-api-X.Y.Z
3. Build and install the kim-api and model
@@ -46,14 +46,14 @@ $ make install
4. Remove source and build files
$ cd ../../
-$ rm -rf kim-api-vX-X.Y.Z
-$ rm -rf kim-api-vX-X.Y.Z.txz
+$ rm -rf kim-api-X.Y.Z
+$ rm -rf kim-api-X.Y.Z.txz
5. To add items do the following (replace the kim item name with your
desired value)
-$ source ${PWD}/kim-api-vX-X.Y.Z/bin/kim-api-vX-activate
-$ kim-api-vX-collections-management install system Pair_Johnson_Fe__MO_857282754307_002
+$ source ${PWD}/kim-api-X.Y.Z/bin/kim-api-activate
+$ kim-api-collections-management install system Pair_Johnson_Fe__MO_857282754307_002
-----------------
diff --git a/python/README b/python/README
index 6b13959f4d..204ca2c28d 100644
--- a/python/README
+++ b/python/README
@@ -9,12 +9,12 @@ doc/Section_python.html and in doc/Section_start.html#start_5.
Basically you need to follow these steps in the src directory:
% make g++ mode=shlib # build for whatever machine target you wish
-% make install-python # may need to do this via sudo
+% make install-python # install into site-packages folder
You can replace the last step by a one-time setting of environment
variables in your shell script. Or you can run the python/install.py
script directly to give you more control over where the two relevant
-files are installed. See doc/Section_python.html for details.
+files are installed. See doc/Python_install.html for details.
You should then be able to launch Python and instantiate an instance
of LAMMPS:
diff --git a/python/install.py b/python/install.py
index 9308506fd2..7f7062103a 100644
--- a/python/install.py
+++ b/python/install.py
@@ -1,56 +1,96 @@
#!/usr/bin/env python
-# copy LAMMPS src/liblammps.so and lammps.py to system dirs
-
-from __future__ import print_function
-
-instructions = """
-Syntax: python install.py [-h] [pydir]
- pydir = target dir for lammps.py and liblammps.so
- default = Python site-packages dir
+"""
+Installer script to install the LAMMPS python module and the corresponding
+shared library into either the system-wide site-packages tree, or - failing
+that - into the corresponding user tree. Called from the 'install-python'
+build target in the conventional and CMake based build systems
"""
+# copy LAMMPS shared library and lammps.py to system dirs
+
+from __future__ import print_function
import sys,os,shutil
+from argparse import ArgumentParser
-if (len(sys.argv) > 1 and sys.argv[1] == "-h") or len(sys.argv) > 2:
- print(instructions)
- sys.exit()
+parser = ArgumentParser(prog='install.py',
+ description='LAMMPS python module installer script')
-if len(sys.argv) == 2: pydir = sys.argv[1]
-else: pydir = ""
+parser.add_argument("-m", "--module", required=True,
+ help="path to the source of the LAMMPS Python module")
+parser.add_argument("-l", "--lib", required=True,
+ help="path to the compiled LAMMPS shared library")
+parser.add_argument("-v", "--version", required=True,
+ help="path to the LAMMPS version.h header file")
-# copy lammps.py to pydir if it exists
-# if pydir not specified, install in site-packages via distutils setup()
+parser.add_argument("-d","--dir",
+ help="Legacy custom installation folder selection for module and library")
-if pydir:
- if not os.path.isdir(pydir):
- print( "ERROR: pydir %s does not exist" % pydir)
- sys.exit()
- str = "cp ../python/lammps.py %s" % pydir
- print(str)
+args = parser.parse_args()
+
+# validate arguments and make paths absolute
+
+if args.module:
+ if not os.path.exists(args.module):
+ print( "ERROR: LAMMPS module file %s does not exist" % args.module)
+ parser.print_help()
+ sys.exit(1)
+ else:
+ args.module = os.path.abspath(args.module)
+
+if args.lib:
+ if not os.path.exists(args.lib):
+ print( "ERROR: LAMMPS shared library %s does not exist" % args.lib)
+ parser.print_help()
+ sys.exit(1)
+ else:
+ args.lib = os.path.abspath(args.lib)
+
+if args.version:
+ if not os.path.exists(args.version):
+ print( "ERROR: LAMMPS version header file %s does not exist" % args.version)
+ parser.print_help()
+ sys.exit(1)
+ else:
+ args.version = os.path.abspath(args.version)
+
+if args.dir:
+ if not os.path.isdir(args.dir):
+ print( "ERROR: Installation folder %s does not exist" % args.dir)
+ parser.print_help()
+ sys.exit(1)
+ else:
+ args.dir = os.path.abspath(args.dir)
+
+# if a custom directory is given, we copy the files directly
+# without any special processing or additional steps to that folder
+
+if args.dir:
+ print("Copying LAMMPS Python module to custom folder %s" % args.dir)
try:
- shutil.copyfile("../python/lammps.py", os.path.join(pydir,'lammps.py') )
+ shutil.copyfile(args.module, os.path.join(args.dir,'lammps.py'))
except shutil.Error:
- pass # source and destination are identical
+ pass # fail silently
- str = "cp ../src/liblammps.so %s" % pydir
- print(str)
+ print("Copying LAMMPS shared library to custom folder %s" % args.dir)
try:
- shutil.copyfile("../src/liblammps.so", os.path.join(pydir,"liblammps.so") )
+ shutil.copyfile(args.lib, os.path.join(args.dir,os.path.basename(args.lib)))
except shutil.Error:
- pass # source and destination are identical
- sys.exit()
-
-print("installing lammps.py in Python site-packages dir")
+ pass # fail silently
-os.chdir('../python') # in case invoked via make in src dir
+ sys.exit()
# extract version string from header
-fp = open('../src/version.h','r')
+fp = open(args.version,'r')
txt=fp.read().split('"')[1].split()
verstr=txt[0]+txt[1]+txt[2]
fp.close()
+print("Installing LAMMPS Python module version %s into site-packages folder" % verstr)
+
+# we need to switch to the folder of the python module
+os.chdir(os.path.dirname(args.module))
+
from distutils.core import setup
from distutils.sysconfig import get_python_lib
import site
@@ -62,28 +102,26 @@ try:
version = verstr,
author = "Steve Plimpton",
author_email = "sjplimp@sandia.gov",
- url = "http://lammps.sandia.gov",
- description = "LAMMPS molecular dynamics library",
+ url = "https://lammps.sandia.gov",
+ description = "LAMMPS Molecular Dynamics Python module",
+ license = "GPL",
py_modules = ["lammps"],
- data_files = [(get_python_lib(), ["../src/liblammps.so"])])
+ data_files = [(get_python_lib(), [args.lib])])
except:
tryuser=True
- print ("Installation into global site-packages dir failed.\nTrying user site dir %s now." % site.USER_SITE)
-
+ print ("Installation into global site-packages folder failed.\nTrying user folder %s now." % site.USER_SITE)
if tryuser:
try:
sys.argv = ["setup.py","install","--user"] # as if had run "python setup.py install --user"
setup(name = "lammps",
- version = verstr,
- author = "Steve Plimpton",
- author_email = "sjplimp@sandia.gov",
- url = "http://lammps.sandia.gov",
- description = "LAMMPS molecular dynamics library",
- py_modules = ["lammps"],
- data_files = [(site.USER_SITE, ["../src/liblammps.so"])])
- except:
- print("Installation into user site package dir failed.\nGo to ../python and install manually.")
-
-
-
+ version = verstr,
+ author = "Steve Plimpton",
+ author_email = "sjplimp@sandia.gov",
+ url = "https://lammps.sandia.gov",
+ description = "LAMMPS Molecular Dynamics Python module",
+ license = "GPL",
+ py_modules = ["lammps"],
+ data_files = [(site.USER_SITE, [args.lib])])
+ except:
+ print("Installation into user site package folder failed.")
diff --git a/src/GRANULAR/fix_wall_gran.cpp b/src/GRANULAR/fix_wall_gran.cpp
index f0957423f9..555c5071e7 100644
--- a/src/GRANULAR/fix_wall_gran.cpp
+++ b/src/GRANULAR/fix_wall_gran.cpp
@@ -39,15 +39,34 @@ using namespace MathConst;
// XYZ PLANE need to be 0,1,2
enum{XPLANE=0,YPLANE=1,ZPLANE=2,ZCYLINDER,REGION};
-enum{HOOKE,HOOKE_HISTORY,HERTZ_HISTORY,BONDED_HISTORY};
+enum{HOOKE,HOOKE_HISTORY,HERTZ_HISTORY,GRANULAR};
enum{NONE,CONSTANT,EQUAL};
+#define PI27SQ 266.47931882941264802866 // 27*PI**2
+#define THREEROOT3 5.19615242270663202362 // 3*sqrt(3)
+#define SIXROOT6 14.69693845669906728801 // 6*sqrt(6)
+#define INVROOT6 0.40824829046386307274 // 1/sqrt(6)
+#define FOURTHIRDS 1.333333333333333 // 4/3
+#define THREEQUARTERS 0.75 // 3/4
+#define TWOPI 6.28318530717959 // 2*PI
+
+#define EPSILON 1e-10
+
+enum {NORMAL_HOOKE, NORMAL_HERTZ, HERTZ_MATERIAL, DMT, JKR};
+enum {VELOCITY, VISCOELASTIC, TSUJI};
+enum {TANGENTIAL_NOHISTORY, TANGENTIAL_HISTORY,
+ TANGENTIAL_MINDLIN, TANGENTIAL_MINDLIN_RESCALE};
+enum {TWIST_NONE, TWIST_SDS, TWIST_MARSHALL};
+enum {ROLL_NONE, ROLL_SDS};
+
#define BIG 1.0e20
+#define EPSILON 1e-10
/* ---------------------------------------------------------------------- */
FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) :
- Fix(lmp, narg, arg), idregion(NULL), shearone(NULL), fix_rigid(NULL), mass_rigid(NULL)
+ Fix(lmp, narg, arg), idregion(NULL), history_one(NULL),
+ fix_rigid(NULL), mass_rigid(NULL)
{
if (narg < 4) error->all(FLERR,"Illegal fix wall/gran command");
@@ -62,17 +81,18 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) :
if (strcmp(arg[3],"hooke") == 0) pairstyle = HOOKE;
else if (strcmp(arg[3],"hooke/history") == 0) pairstyle = HOOKE_HISTORY;
else if (strcmp(arg[3],"hertz/history") == 0) pairstyle = HERTZ_HISTORY;
- //else if (strcmp(arg[3],"bonded/history") == 0) pairstyle = BONDED_HISTORY;
+ else if (strcmp(arg[3],"granular") == 0) pairstyle = GRANULAR;
else error->all(FLERR,"Invalid fix wall/gran interaction style");
- history = restart_peratom = 1;
- if (pairstyle == HOOKE) history = restart_peratom = 0;
+ use_history = restart_peratom = 1;
+ if (pairstyle == HOOKE) use_history = restart_peratom = 0;
// wall/particle coefficients
int iarg;
- if (pairstyle != BONDED_HISTORY) {
+ if (pairstyle != GRANULAR) {
+ size_history = 3;
if (narg < 11) error->all(FLERR,"Illegal fix wall/gran command");
kn = force->numeric(FLERR,arg[4]);
@@ -97,25 +117,186 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) :
kn /= force->nktv2p;
kt /= force->nktv2p;
}
-
iarg = 10;
- }
-
- else {
- if (narg < 10) error->all(FLERR,"Illegal fix wall/gran command");
-
- E = force->numeric(FLERR,arg[4]);
- G = force->numeric(FLERR,arg[5]);
- SurfEnergy = force->numeric(FLERR,arg[6]);
- // Note: this doesn't get used, check w/ Jeremy?
- gamman = force->numeric(FLERR,arg[7]);
-
- xmu = force->numeric(FLERR,arg[8]);
- // pois = E/(2.0*G) - 1.0;
- // kn = 2.0*E/(3.0*(1.0+pois)*(1.0-pois));
- // gammat=0.5*gamman;
-
- iarg = 9;
+ } else {
+ iarg = 4;
+ damping_model = VISCOELASTIC;
+ roll_model = twist_model = NONE;
+ while (iarg < narg) {
+ if (strcmp(arg[iarg], "hooke") == 0) {
+ if (iarg + 2 >= narg)
+ error->all(FLERR,"Illegal fix wall/gran command, "
+ "not enough parameters provided for Hooke option");
+ normal_model = NORMAL_HOOKE;
+ normal_coeffs[0] = force->numeric(FLERR,arg[iarg+1]); //kn
+ normal_coeffs[1] = force->numeric(FLERR,arg[iarg+2]); //damping
+ iarg += 3;
+ } else if (strcmp(arg[iarg], "hertz") == 0) {
+ int num_coeffs = 2;
+ if (iarg + num_coeffs >= narg)
+ error->all(FLERR,"Illegal fix wall/gran command, "
+ "not enough parameters provided for Hertz option");
+ normal_model = NORMAL_HERTZ;
+ normal_coeffs[0] = force->numeric(FLERR,arg[iarg+1]); //kn
+ normal_coeffs[1] = force->numeric(FLERR,arg[iarg+2]); //damping
+ iarg += num_coeffs+1;
+ } else if (strcmp(arg[iarg], "hertz/material") == 0) {
+ int num_coeffs = 3;
+ if (iarg + num_coeffs >= narg)
+ error->all(FLERR,"Illegal fix wall/gran command, "
+ "not enough parameters provided for Hertz option");
+ normal_model = HERTZ_MATERIAL;
+ Emod = force->numeric(FLERR,arg[iarg+1]); //E
+ normal_coeffs[1] = force->numeric(FLERR,arg[iarg+2]); //damping
+ poiss = force->numeric(FLERR,arg[iarg+3]); //Poisson's ratio
+ normal_coeffs[0] = Emod/(2*(1-poiss))*FOURTHIRDS;
+ normal_coeffs[2] = poiss;
+ iarg += num_coeffs+1;
+ } else if (strcmp(arg[iarg], "dmt") == 0) {
+ if (iarg + 4 >= narg)
+ error->all(FLERR,"Illegal fix wall/gran command, "
+ "not enough parameters provided for Hertz option");
+ normal_model = DMT;
+ Emod = force->numeric(FLERR,arg[iarg+1]); //E
+ normal_coeffs[1] = force->numeric(FLERR,arg[iarg+2]); //damping
+ poiss = force->numeric(FLERR,arg[iarg+3]); //Poisson's ratio
+ normal_coeffs[0] = Emod/(2*(1-poiss))*FOURTHIRDS;
+ normal_coeffs[2] = poiss;
+ normal_coeffs[3] = force->numeric(FLERR,arg[iarg+4]); //cohesion
+ iarg += 5;
+ } else if (strcmp(arg[iarg], "jkr") == 0) {
+ if (iarg + 4 >= narg)
+ error->all(FLERR,"Illegal wall/gran command, "
+ "not enough parameters provided for JKR option");
+ normal_model = JKR;
+ Emod = force->numeric(FLERR,arg[iarg+1]); //E
+ normal_coeffs[1] = force->numeric(FLERR,arg[iarg+2]); //damping
+ poiss = force->numeric(FLERR,arg[iarg+3]); //Poisson's ratio
+ normal_coeffs[0] = Emod/(2*(1-poiss))*FOURTHIRDS;
+ normal_coeffs[2] = poiss;
+ normal_coeffs[3] = force->numeric(FLERR,arg[iarg+4]); //cohesion
+ iarg += 5;
+ } else if (strcmp(arg[iarg], "damping") == 0) {
+ if (iarg+1 >= narg)
+ error->all(FLERR, "Illegal wall/gran command, "
+ "not enough parameters provided for damping model");
+ if (strcmp(arg[iarg+1], "velocity") == 0) {
+ damping_model = VELOCITY;
+ iarg += 1;
+ } else if (strcmp(arg[iarg+1], "viscoelastic") == 0) {
+ damping_model = VISCOELASTIC;
+ iarg += 1;
+ } else if (strcmp(arg[iarg+1], "tsuji") == 0) {
+ damping_model = TSUJI;
+ iarg += 1;
+ } else error->all(FLERR, "Illegal wall/gran command, "
+ "unrecognized damping model");
+ iarg += 1;
+ } else if (strcmp(arg[iarg], "tangential") == 0) {
+ if (iarg + 1 >= narg)
+ error->all(FLERR,"Illegal pair_coeff command, "
+ "must specify tangential model after tangential keyword");
+ if (strcmp(arg[iarg+1], "linear_nohistory") == 0) {
+ if (iarg + 3 >= narg)
+ error->all(FLERR,"Illegal pair_coeff command, "
+ "not enough parameters provided for tangential model");
+ tangential_model = TANGENTIAL_NOHISTORY;
+ tangential_coeffs[0] = 0;
+ // gammat and friction coeff
+ tangential_coeffs[1] = force->numeric(FLERR,arg[iarg+2]);
+ tangential_coeffs[2] = force->numeric(FLERR,arg[iarg+3]);
+ iarg += 4;
+ } else if ((strcmp(arg[iarg+1], "linear_history") == 0) ||
+ (strcmp(arg[iarg+1], "mindlin") == 0) ||
+ (strcmp(arg[iarg+1], "mindlin_rescale") == 0)) {
+ if (iarg + 4 >= narg)
+ error->all(FLERR,"Illegal pair_coeff command, "
+ "not enough parameters provided for tangential model");
+ if (strcmp(arg[iarg+1], "linear_history") == 0)
+ tangential_model = TANGENTIAL_HISTORY;
+ else if (strcmp(arg[iarg+1], "mindlin") == 0)
+ tangential_model = TANGENTIAL_MINDLIN;
+ else if (strcmp(arg[iarg+1], "mindlin_rescale") == 0)
+ tangential_model = TANGENTIAL_MINDLIN_RESCALE;
+ if ((tangential_model == TANGENTIAL_MINDLIN ||
+ tangential_model == TANGENTIAL_MINDLIN_RESCALE) &&
+ (strcmp(arg[iarg+2], "NULL") == 0)) {
+ if (normal_model == NORMAL_HERTZ || normal_model == NORMAL_HOOKE) {
+ error->all(FLERR, "NULL setting for Mindlin tangential "
+ "stiffness requires a normal contact model "
+ "that specifies material properties");
+ }
+ tangential_coeffs[0] = 4*(2-poiss)*(1+poiss)/Emod;
+ } else {
+ tangential_coeffs[0] = force->numeric(FLERR,arg[iarg+2]); //kt
+ }
+ tangential_history = 1;
+ // gammat and friction coeff
+ tangential_coeffs[1] = force->numeric(FLERR,arg[iarg+3]);
+ tangential_coeffs[2] = force->numeric(FLERR,arg[iarg+4]);
+ iarg += 5;
+ } else {
+ error->all(FLERR, "Illegal pair_coeff command, "
+ "tangential model not recognized");
+ }
+ } else if (strcmp(arg[iarg], "rolling") == 0) {
+ if (iarg + 1 >= narg)
+ error->all(FLERR, "Illegal wall/gran command, not enough parameters");
+ if (strcmp(arg[iarg+1], "none") == 0) {
+ roll_model = ROLL_NONE;
+ iarg += 2;
+ } else if (strcmp(arg[iarg+1], "sds") == 0) {
+ if (iarg + 4 >= narg)
+ error->all(FLERR,"Illegal wall/gran command, "
+ "not enough parameters provided for rolling model");
+ roll_model = ROLL_SDS;
+ roll_history = 1;
+ // kR, gammaR, rolling friction coeff
+ roll_coeffs[0] = force->numeric(FLERR,arg[iarg+2]);
+ roll_coeffs[1] = force->numeric(FLERR,arg[iarg+3]);
+ roll_coeffs[2] = force->numeric(FLERR,arg[iarg+4]);
+ iarg += 5;
+ } else {
+ error->all(FLERR, "Illegal wall/gran command, "
+ "rolling friction model not recognized");
+ }
+ } else if (strcmp(arg[iarg], "twisting") == 0) {
+ if (iarg + 1 >= narg)
+ error->all(FLERR, "Illegal wall/gran command, not enough parameters");
+ if (strcmp(arg[iarg+1], "none") == 0) {
+ twist_model = TWIST_NONE;
+ iarg += 2;
+ } else if (strcmp(arg[iarg+1], "marshall") == 0) {
+ twist_model = TWIST_MARSHALL;
+ twist_history = 1;
+ iarg += 2;
+ } else if (strcmp(arg[iarg+1], "sds") == 0) {
+ if (iarg + 4 >= narg)
+ error->all(FLERR,"Illegal wall/gran command, "
+ "not enough parameters provided for twist model");
+ twist_model = TWIST_SDS;
+ twist_history = 1;
+ twist_coeffs[0] = force->numeric(FLERR,arg[iarg+2]); //kt
+ twist_coeffs[1] = force->numeric(FLERR,arg[iarg+3]); //gammat
+ twist_coeffs[2] = force->numeric(FLERR,arg[iarg+4]); //friction coeff.
+ iarg += 5;
+ } else {
+ error->all(FLERR, "Illegal wall/gran command, "
+ "twisting friction model not recognized");
+ }
+ } else if (strcmp(arg[iarg], "xplane") == 0 ||
+ strcmp(arg[iarg], "yplane") == 0 ||
+ strcmp(arg[iarg], "zplane") == 0 ||
+ strcmp(arg[iarg], "zcylinder") == 0 ||
+ strcmp(arg[iarg], "region") == 0) {
+ break;
+ } else {
+ error->all(FLERR, "Illegal fix wall/gran command");
+ }
+ }
+ size_history = 3*tangential_history + 3*roll_history + twist_history;
+ if (normal_model == JKR) size_history += 1;
+ if (tangential_model == TANGENTIAL_MINDLIN_RESCALE) size_history += 1;
}
// wallstyle args
@@ -165,6 +346,7 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) :
wiggle = 0;
wshear = 0;
+ peratom_flag = 0;
while (iarg < narg) {
if (strcmp(arg[iarg],"wiggle") == 0) {
@@ -186,6 +368,11 @@ 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) {
+ peratom_flag = 1;
+ size_peratom_cols = 8;
+ peratom_freq = 1;
+ iarg += 1;
} else error->all(FLERR,"Illegal fix wall/gran command");
}
@@ -218,10 +405,7 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) :
// perform initial allocation of atom-based arrays
// register with Atom class
- if (pairstyle == BONDED_HISTORY) sheardim = 7;
- else sheardim = 3;
-
- shearone = NULL;
+ history_one = NULL;
grow_arrays(atom->nmax);
atom->add_callback(0);
atom->add_callback(1);
@@ -229,14 +413,21 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) :
nmax = 0;
mass_rigid = NULL;
- // initialize shear history as if particle is not touching region
- // shearone will be NULL for wallstyle = REGION
+ // initialize history as if particle is not touching region
+ // history_one will be NULL for wallstyle = REGION
- if (history && shearone) {
+ if (use_history && history_one) {
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++)
- for (int j = 0; j < sheardim; j++)
- shearone[i][j] = 0.0;
+ for (int j = 0; j < size_history; j++)
+ history_one[i][j] = 0.0;
+ }
+
+ 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;
}
time_origin = update->ntimestep;
@@ -254,7 +445,7 @@ FixWallGran::~FixWallGran()
// delete local storage
delete [] idregion;
- memory->destroy(shearone);
+ memory->destroy(history_one);
memory->destroy(mass_rigid);
}
@@ -285,6 +476,38 @@ void FixWallGran::init()
for (i = 0; i < modify->nfix; i++)
if (modify->fix[i]->rigid_flag) break;
if (i < modify->nfix) fix_rigid = modify->fix[i];
+
+ tangential_history_index = 0;
+ if (roll_history) {
+ if (tangential_history) roll_history_index = 3;
+ else roll_history_index = 0;
+ }
+ if (twist_history) {
+ if (tangential_history) {
+ if (roll_history) twist_history_index = 6;
+ else twist_history_index = 3;
+ }
+ else{
+ if (roll_history) twist_history_index = 3;
+ else twist_history_index = 0;
+ }
+ }
+ if (normal_model == JKR) {
+ tangential_history_index += 1;
+ roll_history_index += 1;
+ twist_history_index += 1;
+ }
+ if (tangential_model == TANGENTIAL_MINDLIN_RESCALE) {
+ roll_history_index += 1;
+ twist_history_index += 1;
+ }
+
+ if (damping_model == TSUJI) {
+ double cor = normal_coeffs[1];
+ normal_coeffs[1] = 1.2728-4.2783*cor+11.087*pow(cor,2)-22.348*pow(cor,3)+
+ 27.467*pow(cor,4)-18.022*pow(cor,5)+
+ 4.8218*pow(cor,6);
+ }
}
/* ---------------------------------------------------------------------- */
@@ -308,10 +531,10 @@ void FixWallGran::post_force(int /*vflag*/)
double dx,dy,dz,del1,del2,delxy,delr,rsq,rwall,meff;
double vwall[3];
- // do not update shear history during setup
+ // do not update history during setup
- shearupdate = 1;
- if (update->setupflag) shearupdate = 0;
+ history_update = 1;
+ if (update->setupflag) history_update = 0;
// if just reneighbored:
// update rigid body masses for owned atoms if using FixRigid
@@ -357,7 +580,7 @@ void FixWallGran::post_force(int /*vflag*/)
// if wall was set to NULL, it's skipped since lo/hi are infinity
// compute force and torque on atom if close enough to wall
// via wall potential matched to pair potential
- // set shear if pair potential stores history
+ // set history if pair potential stores history
double **x = atom->x;
double **v = atom->v;
@@ -412,12 +635,28 @@ void FixWallGran::post_force(int /*vflag*/)
rsq = dx*dx + dy*dy + dz*dz;
- if (rsq > radius[i]*radius[i]) {
- if (history)
- for (j = 0; j < sheardim; j++)
- shearone[i][j] = 0.0;
+ double rad;
+ if (pairstyle == GRANULAR && normal_model == JKR) {
+ rad = radius[i] + pulloff_distance(radius[i]);
+ }
+ else
+ rad = radius[i];
- } else {
+ if (rsq > rad*rad) {
+ if (use_history)
+ for (j = 0; j < size_history; j++)
+ history_one[i][j] = 0.0;
+ }
+ else {
+ if (pairstyle == GRANULAR && normal_model == JKR && use_history) {
+ if ((history_one[i][0] == 0) && (rsq > radius[i]*radius[i])) {
+ // Particles have not contacted yet,
+ // and are outside of contact distance
+ for (j = 0; j < size_history; j++)
+ history_one[i][j] = 0.0;
+ continue;
+ }
+ }
// meff = effective mass of sphere
// if I is part of rigid body, use body mass
@@ -425,20 +664,37 @@ void FixWallGran::post_force(int /*vflag*/)
meff = rmass[i];
if (fix_rigid && mass_rigid[i] > 0.0) meff = mass_rigid[i];
+ // store contact info
+ if (peratom_flag) {
+ array_atom[i][0] = (double)atom->tag[i];
+ array_atom[i][4] = x[i][0] - dx;
+ array_atom[i][5] = x[i][1] - dy;
+ array_atom[i][6] = x[i][2] - dz;
+ array_atom[i][7] = radius[i];
+ }
+
// invoke sphere/wall interaction
+ double *contact;
+ if (peratom_flag)
+ contact = array_atom[i];
+ else
+ contact = NULL;
if (pairstyle == HOOKE)
hooke(rsq,dx,dy,dz,vwall,v[i],f[i],
- omega[i],torque[i],radius[i],meff);
+ omega[i],torque[i],radius[i],meff, contact);
else if (pairstyle == HOOKE_HISTORY)
hooke_history(rsq,dx,dy,dz,vwall,v[i],f[i],
- omega[i],torque[i],radius[i],meff,shearone[i]);
+ omega[i],torque[i],radius[i],meff,history_one[i],
+ contact);
else if (pairstyle == HERTZ_HISTORY)
hertz_history(rsq,dx,dy,dz,vwall,rwall,v[i],f[i],
- omega[i],torque[i],radius[i],meff,shearone[i]);
- else if (pairstyle == BONDED_HISTORY)
- bonded_history(rsq,dx,dy,dz,vwall,rwall,v[i],f[i],
- omega[i],torque[i],radius[i],meff,shearone[i]);
+ omega[i],torque[i],radius[i],meff,history_one[i],
+ contact);
+ else if (pairstyle == GRANULAR)
+ granular(rsq,dx,dy,dz,vwall,rwall,v[i],f[i],
+ omega[i],torque[i],radius[i],meff,history_one[i],
+ contact);
}
}
}
@@ -454,9 +710,9 @@ void FixWallGran::post_force_respa(int vflag, int ilevel, int /*iloop*/)
/* ---------------------------------------------------------------------- */
void FixWallGran::hooke(double rsq, double dx, double dy, double dz,
- double *vwall, double *v,
- double *f, double *omega, double *torque,
- double radius, double meff)
+ double *vwall, double *v,
+ double *f, double *omega, double *torque,
+ double radius, double meff, double* contact)
{
double r,vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3;
double wr1,wr2,wr3,damp,ccel,vtr1,vtr2,vtr3,vrel;
@@ -523,6 +779,12 @@ void FixWallGran::hooke(double rsq, double dx, double dy, double dz,
fy = dy*ccel + fs2;
fz = dz*ccel + fs3;
+ if (peratom_flag) {
+ contact[1] = fx;
+ contact[2] = fy;
+ contact[3] = fz;
+ }
+
f[0] += fx;
f[1] += fy;
f[2] += fz;
@@ -538,9 +800,10 @@ void FixWallGran::hooke(double rsq, double dx, double dy, double dz,
/* ---------------------------------------------------------------------- */
void FixWallGran::hooke_history(double rsq, double dx, double dy, double dz,
- double *vwall, double *v,
- double *f, double *omega, double *torque,
- double radius, double meff, double *shear)
+ double *vwall, double *v,
+ double *f, double *omega, double *torque,
+ double radius, double meff, double *history,
+ double *contact)
{
double r,vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3;
double wr1,wr2,wr3,damp,ccel,vtr1,vtr2,vtr3,vrel;
@@ -591,28 +854,29 @@ void FixWallGran::hooke_history(double rsq, double dx, double dy, double dz,
// shear history effects
- if (shearupdate) {
- shear[0] += vtr1*dt;
- shear[1] += vtr2*dt;
- shear[2] += vtr3*dt;
+ if (history_update) {
+ history[0] += vtr1*dt;
+ history[1] += vtr2*dt;
+ history[2] += vtr3*dt;
}
- shrmag = sqrt(shear[0]*shear[0] + shear[1]*shear[1] + shear[2]*shear[2]);
+ shrmag = sqrt(history[0]*history[0] + history[1]*history[1] +
+ history[2]*history[2]);
// rotate shear displacements
- rsht = shear[0]*dx + shear[1]*dy + shear[2]*dz;
+ rsht = history[0]*dx + history[1]*dy + history[2]*dz;
rsht = rsht*rsqinv;
- if (shearupdate) {
- shear[0] -= rsht*dx;
- shear[1] -= rsht*dy;
- shear[2] -= rsht*dz;
+ if (history_update) {
+ history[0] -= rsht*dx;
+ history[1] -= rsht*dy;
+ history[2] -= rsht*dz;
}
// tangential forces = shear + tangential velocity damping
- fs1 = - (kt*shear[0] + meff*gammat*vtr1);
- fs2 = - (kt*shear[1] + meff*gammat*vtr2);
- fs3 = - (kt*shear[2] + meff*gammat*vtr3);
+ fs1 = - (kt*history[0] + meff*gammat*vtr1);
+ fs2 = - (kt*history[1] + meff*gammat*vtr2);
+ fs3 = - (kt*history[2] + meff*gammat*vtr3);
// rescale frictional displacements and forces if needed
@@ -621,12 +885,12 @@ void FixWallGran::hooke_history(double rsq, double dx, double dy, double dz,
if (fs > fn) {
if (shrmag != 0.0) {
- shear[0] = (fn/fs) * (shear[0] + meff*gammat*vtr1/kt) -
- meff*gammat*vtr1/kt;
- shear[1] = (fn/fs) * (shear[1] + meff*gammat*vtr2/kt) -
- meff*gammat*vtr2/kt;
- shear[2] = (fn/fs) * (shear[2] + meff*gammat*vtr3/kt) -
- meff*gammat*vtr3/kt;
+ history[0] = (fn/fs) * (history[0] + meff*gammat*vtr1/kt) -
+ meff*gammat*vtr1/kt;
+ history[1] = (fn/fs) * (history[1] + meff*gammat*vtr2/kt) -
+ meff*gammat*vtr2/kt;
+ history[2] = (fn/fs) * (history[2] + meff*gammat*vtr3/kt) -
+ meff*gammat*vtr3/kt;
fs1 *= fn/fs ;
fs2 *= fn/fs;
fs3 *= fn/fs;
@@ -643,6 +907,12 @@ void FixWallGran::hooke_history(double rsq, double dx, double dy, double dz,
f[1] += fy;
f[2] += fz;
+ if (peratom_flag) {
+ contact[1] = fx;
+ contact[2] = fy;
+ contact[3] = fz;
+ }
+
tor1 = rinv * (dy*fs3 - dz*fs2);
tor2 = rinv * (dz*fs1 - dx*fs3);
tor3 = rinv * (dx*fs2 - dy*fs1);
@@ -654,9 +924,10 @@ void FixWallGran::hooke_history(double rsq, double dx, double dy, double dz,
/* ---------------------------------------------------------------------- */
void FixWallGran::hertz_history(double rsq, double dx, double dy, double dz,
- double *vwall, double rwall, double *v,
- double *f, double *omega, double *torque,
- double radius, double meff, double *shear)
+ double *vwall, double rwall, double *v,
+ double *f, double *omega, double *torque,
+ double radius, double meff, double *history,
+ double *contact)
{
double r,vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3;
double wr1,wr2,wr3,damp,ccel,vtr1,vtr2,vtr3,vrel;
@@ -714,28 +985,29 @@ void FixWallGran::hertz_history(double rsq, double dx, double dy, double dz,
// shear history effects
- if (shearupdate) {
- shear[0] += vtr1*dt;
- shear[1] += vtr2*dt;
- shear[2] += vtr3*dt;
+ if (history_update) {
+ history[0] += vtr1*dt;
+ history[1] += vtr2*dt;
+ history[2] += vtr3*dt;
}
- shrmag = sqrt(shear[0]*shear[0] + shear[1]*shear[1] + shear[2]*shear[2]);
+ shrmag = sqrt(history[0]*history[0] + history[1]*history[1] +
+ history[2]*history[2]);
- // rotate shear displacements
+ // rotate history displacements
- rsht = shear[0]*dx + shear[1]*dy + shear[2]*dz;
+ rsht = history[0]*dx + history[1]*dy + history[2]*dz;
rsht = rsht*rsqinv;
- if (shearupdate) {
- shear[0] -= rsht*dx;
- shear[1] -= rsht*dy;
- shear[2] -= rsht*dz;
+ if (history_update) {
+ history[0] -= rsht*dx;
+ history[1] -= rsht*dy;
+ history[2] -= rsht*dz;
}
// tangential forces = shear + tangential velocity damping
- fs1 = -polyhertz * (kt*shear[0] + meff*gammat*vtr1);
- fs2 = -polyhertz * (kt*shear[1] + meff*gammat*vtr2);
- fs3 = -polyhertz * (kt*shear[2] + meff*gammat*vtr3);
+ fs1 = -polyhertz * (kt*history[0] + meff*gammat*vtr1);
+ fs2 = -polyhertz * (kt*history[1] + meff*gammat*vtr2);
+ fs3 = -polyhertz * (kt*history[2] + meff*gammat*vtr3);
// rescale frictional displacements and forces if needed
@@ -744,12 +1016,12 @@ void FixWallGran::hertz_history(double rsq, double dx, double dy, double dz,
if (fs > fn) {
if (shrmag != 0.0) {
- shear[0] = (fn/fs) * (shear[0] + meff*gammat*vtr1/kt) -
- meff*gammat*vtr1/kt;
- shear[1] = (fn/fs) * (shear[1] + meff*gammat*vtr2/kt) -
- meff*gammat*vtr2/kt;
- shear[2] = (fn/fs) * (shear[2] + meff*gammat*vtr3/kt) -
- meff*gammat*vtr3/kt;
+ history[0] = (fn/fs) * (history[0] + meff*gammat*vtr1/kt) -
+ meff*gammat*vtr1/kt;
+ history[1] = (fn/fs) * (history[1] + meff*gammat*vtr2/kt) -
+ meff*gammat*vtr2/kt;
+ history[2] = (fn/fs) * (history[2] + meff*gammat*vtr3/kt) -
+ meff*gammat*vtr3/kt;
fs1 *= fn/fs ;
fs2 *= fn/fs;
fs3 *= fn/fs;
@@ -762,6 +1034,12 @@ void FixWallGran::hertz_history(double rsq, double dx, double dy, double dz,
fy = dy*ccel + fs2;
fz = dz*ccel + fs3;
+ if (peratom_flag) {
+ contact[1] = fx;
+ contact[2] = fy;
+ contact[3] = fz;
+ }
+
f[0] += fx;
f[1] += fy;
f[2] += fz;
@@ -774,33 +1052,62 @@ void FixWallGran::hertz_history(double rsq, double dx, double dy, double dz,
torque[2] -= radius*tor3;
}
-
/* ---------------------------------------------------------------------- */
-void FixWallGran::bonded_history(double rsq, double dx, double dy, double dz,
- double *vwall, double rwall, double *v,
- double *f, double *omega, double *torque,
- double radius, double meff, double *shear)
+void FixWallGran::granular(double rsq, double dx, double dy, double dz,
+ double *vwall, double rwall, double *v,
+ double *f, double *omega, double *torque,
+ double radius, double meff, double *history,
+ double *contact)
{
- double r,vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3;
- double wr1,wr2,wr3,damp,ccel,vtr1,vtr2,vtr3,vrel;
- double fn,fs,fs1,fs2,fs3,fx,fy,fz,tor1,tor2,tor3;
- double shrmag,rsht,polyhertz,rinv,rsqinv;
+ double fx,fy,fz,nx,ny,nz;
+ double radsum,r,rinv;
+ double Reff, delta, dR, dR2;
- double pois,E_eff,G_eff,rad_eff;
- double a0,Fcrit,delcrit,delcritinv;
- double overlap,olapsq,olapcubed,sqrtterm,tmp,keyterm,keyterm2,keyterm3;
- double aovera0,foverFc;
- double gammatsuji;
+ double vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3;
+ double wr1,wr2,wr3;
+ double vtr1,vtr2,vtr3,vrel;
- double ktwist,kroll,twistcrit,rollcrit;
- double relrot1,relrot2,relrot3,vrl1,vrl2,vrl3,vrlmag,vrlmaginv;
- double magtwist,magtortwist;
- double magrollsq,magroll,magrollinv,magtorroll;
+ double knfac, damp_normal, damp_normal_prefactor;
+ double k_tangential, damp_tangential;
+ double Fne, Ft, Fdamp, Fntot, Fncrit, Fscrit, Frcrit;
+ double fs, fs1, fs2, fs3;
+
+ double tor1,tor2,tor3;
+ double relrot1,relrot2,relrot3,vrl1,vrl2,vrl3;
+
+ // for JKR
+ double R2, coh, F_pulloff, a, a2, E;
+ double t0, t1, t2, t3, t4, t5, t6;
+ double sqrt1, sqrt2, sqrt3;
+
+ // rolling
+ double k_roll, damp_roll;
+ double torroll1, torroll2, torroll3;
+ double rollmag, rolldotn, scalefac;
+ double fr, fr1, fr2, fr3;
+
+ // twisting
+ double k_twist, damp_twist, mu_twist;
+ double signtwist, magtwist, magtortwist, Mtcrit;
+ double tortwist1, tortwist2, tortwist3;
+
+ double shrmag,rsht;
r = sqrt(rsq);
+ radsum = rwall + radius;
+
+ E = normal_coeffs[0];
+
+ radsum = radius + rwall;
+ if (rwall == 0) Reff = radius;
+ else Reff = radius*rwall/(radius+rwall);
+
rinv = 1.0/r;
- rsqinv = 1.0/rsq;
+
+ nx = dx*rinv;
+ ny = dy*rinv;
+ nz = dz*rinv;
// relative translational velocity
@@ -810,209 +1117,315 @@ void FixWallGran::bonded_history(double rsq, double dx, double dy, double dz,
// normal component
- vnnr = vr1*dx + vr2*dy + vr3*dz;
- vn1 = dx*vnnr / rsq;
- vn2 = dy*vnnr / rsq;
- vn3 = dz*vnnr / rsq;
+ vnnr = vr1*nx + vr2*ny + vr3*nz; //v_R . n
+ vn1 = nx*vnnr;
+ vn2 = ny*vnnr;
+ vn3 = nz*vnnr;
+
+ delta = radsum - r;
+ dR = delta*Reff;
+ if (normal_model == JKR) {
+ history[0] = 1.0;
+ E *= THREEQUARTERS;
+ R2=Reff*Reff;
+ coh = normal_coeffs[3];
+ dR2 = dR*dR;
+ t0 = coh*coh*R2*R2*E;
+ t1 = PI27SQ*t0;
+ t2 = 8*dR*dR2*E*E*E;
+ t3 = 4*dR2*E;
+ sqrt1 = MAX(0, t0*(t1+2*t2)); // in case sqrt(0) < 0 due to precision issues
+ t4 = cbrt(t1+t2+THREEROOT3*M_PI*sqrt(sqrt1));
+ t5 = t3/t4 + t4/E;
+ sqrt2 = MAX(0, 2*dR + t5);
+ t6 = sqrt(sqrt2);
+ sqrt3 = MAX(0, 4*dR - t5 + SIXROOT6*coh*M_PI*R2/(E*t6));
+ a = INVROOT6*(t6 + sqrt(sqrt3));
+ a2 = a*a;
+ knfac = normal_coeffs[0]*a;
+ Fne = knfac*a2/Reff - TWOPI*a2*sqrt(4*coh*E/(M_PI*a));
+ }
+ else{
+ knfac = E; //Hooke
+ a = sqrt(dR);
+ if (normal_model != HOOKE) {
+ Fne *= a;
+ knfac *= a;
+ }
+ Fne = knfac*delta;
+ if (normal_model == DMT)
+ Fne -= 4*MY_PI*normal_coeffs[3]*Reff;
+ }
+
+ if (damping_model == VELOCITY) {
+ damp_normal = 1;
+ }
+ else if (damping_model == VISCOELASTIC) {
+ damp_normal = a*meff;
+ }
+ else if (damping_model == TSUJI) {
+ damp_normal = sqrt(meff*knfac);
+ }
+
+ damp_normal_prefactor = normal_coeffs[1]*damp_normal;
+ Fdamp = -damp_normal_prefactor*vnnr;
+
+ Fntot = Fne + Fdamp;
+
+ //****************************************
+ // tangential force, including history effects
+ //****************************************
// tangential component
-
vt1 = vr1 - vn1;
vt2 = vr2 - vn2;
vt3 = vr3 - vn3;
// relative rotational velocity
-
wr1 = radius*omega[0] * rinv;
wr2 = radius*omega[1] * rinv;
wr3 = radius*omega[2] * rinv;
- // normal forces = Hertzian contact + normal velocity damping
- // material properties: currently assumes identical materials
-
- pois = E/(2.0*G) - 1.0;
- E_eff=0.5*E/(1.0-pois*pois);
- G_eff=G/(4.0-2.0*pois);
-
- // rwall = 0 is infinite wall radius of curvature (flat wall)
-
- if (rwall == 0) rad_eff = radius;
- else rad_eff = radius*rwall/(radius+rwall);
-
- Fcrit = rad_eff * (3.0 * M_PI * SurfEnergy);
- a0=pow(9.0*M_PI*SurfEnergy*rad_eff*rad_eff/E_eff,1.0/3.0);
- delcrit = 1.0/rad_eff*(0.5 * a0*a0/pow(6.0,1.0/3.0));
- delcritinv = 1.0/delcrit;
-
- overlap = (radius-r) * delcritinv;
- olapsq = overlap*overlap;
- olapcubed = olapsq*overlap;
- sqrtterm = sqrt(1.0 + olapcubed);
- tmp = 2.0 + olapcubed + 2.0*sqrtterm;
- keyterm = pow(tmp,THIRD);
- keyterm2 = olapsq/keyterm;
- keyterm3 = sqrt(overlap + keyterm2 + keyterm);
- aovera0 = pow(6.0,-TWOTHIRDS) * (keyterm3 +
- sqrt(2.0*overlap - keyterm2 - keyterm + 4.0/keyterm3));
- foverFc = 4.0*((aovera0*aovera0*aovera0) - pow(aovera0,1.5));
- ccel = Fcrit*foverFc*rinv;
-
- // damp = meff*gamman*vnnr*rsqinv;
- // ccel = kn*(radius-r)*rinv - damp;
- // polyhertz = sqrt((radius-r)*radius);
- // ccel *= polyhertz;
-
- // use Tsuji et al form
-
- polyhertz = 1.2728- 4.2783*0.9 + 11.087*0.9*0.9 - 22.348*0.9*0.9*0.9 +
- 27.467*0.9*0.9*0.9*0.9 - 18.022*0.9*0.9*0.9*0.9*0.9 +
- 4.8218*0.9*0.9*0.9*0.9*0.9*0.9;
-
- gammatsuji = 0.2*sqrt(meff*kn);
- damp = gammatsuji*vnnr/rsq;
- ccel = ccel - polyhertz * damp;
-
- // relative velocities
-
- vtr1 = vt1 - (dz*wr2-dy*wr3);
- vtr2 = vt2 - (dx*wr3-dz*wr1);
- vtr3 = vt3 - (dy*wr1-dx*wr2);
+ // relative tangential velocities
+ vtr1 = vt1 - (nz*wr2-ny*wr3);
+ vtr2 = vt2 - (nx*wr3-nz*wr1);
+ vtr3 = vt3 - (ny*wr1-nx*wr2);
vrel = vtr1*vtr1 + vtr2*vtr2 + vtr3*vtr3;
vrel = sqrt(vrel);
- // shear history effects
-
- if (shearupdate) {
- shear[0] += vtr1*dt;
- shear[1] += vtr2*dt;
- shear[2] += vtr3*dt;
+ if (normal_model == JKR) {
+ F_pulloff = 3*M_PI*coh*Reff;
+ Fncrit = fabs(Fne + 2*F_pulloff);
}
- shrmag = sqrt(shear[0]*shear[0] + shear[1]*shear[1] + shear[2]*shear[2]);
-
- // rotate shear displacements
-
- rsht = shear[0]*dx + shear[1]*dy + shear[2]*dz;
- rsht = rsht*rsqinv;
- if (shearupdate) {
- shear[0] -= rsht*dx;
- shear[1] -= rsht*dy;
- shear[2] -= rsht*dz;
+ else if (normal_model == DMT) {
+ F_pulloff = 4*M_PI*coh*Reff;
+ Fncrit = fabs(Fne + 2*F_pulloff);
+ }
+ else{
+ Fncrit = fabs(Fntot);
}
- // tangential forces = shear + tangential velocity damping
+ //------------------------------
+ // tangential forces
+ //------------------------------
- fs1 = -polyhertz * (kt*shear[0] + meff*gammat*vtr1);
- fs2 = -polyhertz * (kt*shear[1] + meff*gammat*vtr2);
- fs3 = -polyhertz * (kt*shear[2] + meff*gammat*vtr3);
+ k_tangential = tangential_coeffs[0];
+ damp_tangential = tangential_coeffs[1]*damp_normal_prefactor;
- kt=8.0*G_eff*a0*aovera0;
+ int thist0 = tangential_history_index;
+ int thist1 = thist0 + 1;
+ int thist2 = thist1 + 1;
- // shear damping uses Tsuji et al form also
+ if (tangential_history) {
+ if (tangential_model == TANGENTIAL_MINDLIN) {
+ k_tangential *= a;
+ }
+ else if (tangential_model == TANGENTIAL_MINDLIN_RESCALE) {
+ k_tangential *= a;
+ if (a < history[3]) { //On unloading, rescale the shear displacements
+ double factor = a/history[thist2+1];
+ history[thist0] *= factor;
+ history[thist1] *= factor;
+ history[thist2] *= factor;
+ }
+ }
+ shrmag = sqrt(history[thist0]*history[thist0] +
+ history[thist1]*history[thist1] +
+ history[thist2]*history[thist2]);
- fs1 = -kt*shear[0] - polyhertz*gammatsuji*vtr1;
- fs2 = -kt*shear[1] - polyhertz*gammatsuji*vtr2;
- fs3 = -kt*shear[2] - polyhertz*gammatsuji*vtr3;
+ // rotate and update displacements.
+ // see e.g. eq. 17 of Luding, Gran. Matter 2008, v10,p235
+ if (history_update) {
+ rsht = history[thist0]*nx + history[thist1]*ny + history[thist2]*nz;
+ if (fabs(rsht) < EPSILON) rsht = 0;
+ if (rsht > 0) {
+ // if rhst == shrmag, contacting pair has rotated 90 deg in one step,
+ // in which case you deserve a crash!
+ scalefac = shrmag/(shrmag - rsht);
+ history[thist0] -= rsht*nx;
+ history[thist1] -= rsht*ny;
+ history[thist2] -= rsht*nz;
+ // also rescale to preserve magnitude
+ history[thist0] *= scalefac;
+ history[thist1] *= scalefac;
+ history[thist2] *= scalefac;
+ }
+ // update history
+ history[thist0] += vtr1*dt;
+ history[thist1] += vtr2*dt;
+ history[thist2] += vtr3*dt;
+ }
- // rescale frictional displacements and forces if needed
+ // tangential forces = history + tangential velocity damping
+ fs1 = -k_tangential*history[thist0] - damp_tangential*vtr1;
+ fs2 = -k_tangential*history[thist1] - damp_tangential*vtr2;
+ fs3 = -k_tangential*history[thist2] - damp_tangential*vtr3;
- fs = sqrt(fs1*fs1 + fs2*fs2 + fs3*fs3);
- fn = xmu * fabs(ccel*r + 2.0*Fcrit);
-
- if (fs > fn) {
- if (shrmag != 0.0) {
- shear[0] = (fn/fs) * (shear[0] + polyhertz*gammatsuji*vtr1/kt) -
- polyhertz*gammatsuji*vtr1/kt;
- shear[1] = (fn/fs) * (shear[1] + polyhertz*gammatsuji*vtr2/kt) -
- polyhertz*gammatsuji*vtr2/kt;
- shear[2] = (fn/fs) * (shear[2] + polyhertz*gammatsuji*vtr3/kt) -
- polyhertz*gammatsuji*vtr3/kt;
- fs1 *= fn/fs ;
- fs2 *= fn/fs;
- fs3 *= fn/fs;
- } else fs1 = fs2 = fs3 = 0.0;
+ // rescale frictional displacements and forces if needed
+ Fscrit = tangential_coeffs[2] * Fncrit;
+ fs = sqrt(fs1*fs1 + fs2*fs2 + fs3*fs3);
+ if (fs > Fscrit) {
+ if (shrmag != 0.0) {
+ history[thist0] = -1.0/k_tangential*(Fscrit*fs1/fs +
+ damp_tangential*vtr1);
+ history[thist1] = -1.0/k_tangential*(Fscrit*fs2/fs +
+ damp_tangential*vtr2);
+ history[thist2] = -1.0/k_tangential*(Fscrit*fs3/fs +
+ damp_tangential*vtr3);
+ fs1 *= Fscrit/fs;
+ fs2 *= Fscrit/fs;
+ fs3 *= Fscrit/fs;
+ } else fs1 = fs2 = fs3 = 0.0;
+ }
+ } else { // classic pair gran/hooke (no history)
+ fs = meff*damp_tangential*vrel;
+ if (vrel != 0.0) Ft = MIN(Fne,fs) / vrel;
+ else Ft = 0.0;
+ fs1 = -Ft*vtr1;
+ fs2 = -Ft*vtr2;
+ fs3 = -Ft*vtr3;
}
- // calculate twisting and rolling components of torque
- // NOTE: this assumes spheres!
+ //****************************************
+ // rolling resistance
+ //****************************************
- relrot1 = omega[0];
- relrot2 = omega[1];
- relrot3 = omega[2];
+ if (roll_model != ROLL_NONE) {
+ relrot1 = omega[0];
+ relrot2 = omega[1];
+ relrot3 = omega[2];
- // rolling velocity
- // NOTE: this assumes mondisperse spheres!
+ // rolling velocity, see eq. 31 of Wang et al, Particuology v 23, p 49 (2015)
+ // This is different from the Marshall papers,
+ // which use the Bagi/Kuhn formulation
+ // for rolling velocity (see Wang et al for why the latter is wrong)
+ vrl1 = Reff*(relrot2*nz - relrot3*ny); //- 0.5*((radj-radi)/radsum)*vtr1;
+ vrl2 = Reff*(relrot3*nx - relrot1*nz); //- 0.5*((radj-radi)/radsum)*vtr2;
+ vrl3 = Reff*(relrot1*ny - relrot2*nx); //- 0.5*((radj-radi)/radsum)*vtr3;
- vrl1 = -rad_eff*rinv * (relrot2*dz - relrot3*dy);
- vrl2 = -rad_eff*rinv * (relrot3*dx - relrot1*dz);
- vrl3 = -rad_eff*rinv * (relrot1*dy - relrot2*dx);
- vrlmag = sqrt(vrl1*vrl1+vrl2*vrl2+vrl3*vrl3);
- if (vrlmag != 0.0) vrlmaginv = 1.0/vrlmag;
- else vrlmaginv = 0.0;
+ int rhist0 = roll_history_index;
+ int rhist1 = rhist0 + 1;
+ int rhist2 = rhist1 + 1;
- // bond history effects
+ // rolling displacement
+ rollmag = sqrt(history[rhist0]*history[rhist0] +
+ history[rhist1]*history[rhist1] +
+ history[rhist2]*history[rhist2]);
- shear[3] += vrl1*dt;
- shear[4] += vrl2*dt;
- shear[5] += vrl3*dt;
+ rolldotn = history[rhist0]*nx + history[rhist1]*ny + history[rhist2]*nz;
- // rotate bonded displacements correctly
+ if (history_update) {
+ if (fabs(rolldotn) < EPSILON) rolldotn = 0;
+ if (rolldotn > 0) { // rotate into tangential plane
+ scalefac = rollmag/(rollmag - rolldotn);
+ history[rhist0] -= rolldotn*nx;
+ history[rhist1] -= rolldotn*ny;
+ history[rhist2] -= rolldotn*nz;
+ // also rescale to preserve magnitude
+ history[rhist0] *= scalefac;
+ history[rhist1] *= scalefac;
+ history[rhist2] *= scalefac;
+ }
+ history[rhist0] += vrl1*dt;
+ history[rhist1] += vrl2*dt;
+ history[rhist2] += vrl3*dt;
+ }
- double rlt = shear[3]*dx + shear[4]*dy + shear[5]*dz;
- rlt /= rsq;
- shear[3] -= rlt*dx;
- shear[4] -= rlt*dy;
- shear[5] -= rlt*dz;
+ k_roll = roll_coeffs[0];
+ damp_roll = roll_coeffs[1];
+ fr1 = -k_roll*history[rhist0] - damp_roll*vrl1;
+ fr2 = -k_roll*history[rhist1] - damp_roll*vrl2;
+ fr3 = -k_roll*history[rhist2] - damp_roll*vrl3;
- // twisting torque
+ // rescale frictional displacements and forces if needed
+ Frcrit = roll_coeffs[2] * Fncrit;
- magtwist = rinv*(relrot1*dx + relrot2*dy + relrot3*dz);
- shear[6] += magtwist*dt;
+ fr = sqrt(fr1*fr1 + fr2*fr2 + fr3*fr3);
+ if (fr > Frcrit) {
+ if (rollmag != 0.0) {
+ history[rhist0] = -1.0/k_roll*(Frcrit*fr1/fr + damp_roll*vrl1);
+ history[rhist1] = -1.0/k_roll*(Frcrit*fr2/fr + damp_roll*vrl2);
+ history[rhist2] = -1.0/k_roll*(Frcrit*fr3/fr + damp_roll*vrl3);
+ fr1 *= Frcrit/fr;
+ fr2 *= Frcrit/fr;
+ fr3 *= Frcrit/fr;
+ } else fr1 = fr2 = fr3 = 0.0;
+ }
+ }
- ktwist = 0.5*kt*(a0*aovera0)*(a0*aovera0);
- magtortwist = -ktwist*shear[6] -
- 0.5*polyhertz*gammatsuji*(a0*aovera0)*(a0*aovera0)*magtwist;
+ //****************************************
+ // twisting torque, including history effects
+ //****************************************
- twistcrit=TWOTHIRDS*a0*aovera0*Fcrit;
- if (fabs(magtortwist) > twistcrit)
- magtortwist = -twistcrit * magtwist/fabs(magtwist);
+ if (twist_model != TWIST_NONE) {
+ magtwist = relrot1*nx + relrot2*ny + relrot3*nz; //Omega_T (eq 29 of Marshall)
+ if (twist_model == TWIST_MARSHALL) {
+ k_twist = 0.5*k_tangential*a*a;; // eq 32 of Marshall paper
+ damp_twist = 0.5*damp_tangential*a*a;
+ mu_twist = TWOTHIRDS*a*tangential_coeffs[2];
+ }
+ else{
+ k_twist = twist_coeffs[0];
+ damp_twist = twist_coeffs[1];
+ mu_twist = twist_coeffs[2];
+ }
+ if (history_update) {
+ history[twist_history_index] += magtwist*dt;
+ }
+ // M_t torque (eq 30)
+ magtortwist = -k_twist*history[twist_history_index] - damp_twist*magtwist;
+ signtwist = (magtwist > 0) - (magtwist < 0);
+ Mtcrit = mu_twist*Fncrit; // critical torque (eq 44)
+ if (fabs(magtortwist) > Mtcrit) {
+ history[twist_history_index] = 1.0/k_twist*(Mtcrit*signtwist -
+ damp_twist*magtwist);
+ magtortwist = -Mtcrit * signtwist; // eq 34
+ }
+ }
- // rolling torque
+ // apply forces & torques
- magrollsq = shear[3]*shear[3] + shear[4]*shear[4] + shear[5]*shear[5];
- magroll = sqrt(magrollsq);
- if (magroll != 0.0) magrollinv = 1.0/magroll;
- else magrollinv = 0.0;
+ fx = nx*Fntot + fs1;
+ fy = ny*Fntot + fs2;
+ fz = nz*Fntot + fs3;
- kroll = 1.0*4.0*Fcrit*pow(aovera0,1.5);
- magtorroll = -kroll*magroll - 0.1*gammat*vrlmag;
-
- rollcrit = 0.01;
- if (magroll > rollcrit) magtorroll = -kroll*rollcrit;
-
- // forces & torques
-
- fx = dx*ccel + fs1;
- fy = dy*ccel + fs2;
- fz = dz*ccel + fs3;
+ if (peratom_flag) {
+ contact[1] = fx;
+ contact[2] = fy;
+ contact[3] = fz;
+ }
f[0] += fx;
f[1] += fy;
f[2] += fz;
- tor1 = rinv * (dy*fs3 - dz*fs2);
- tor2 = rinv * (dz*fs1 - dx*fs3);
- tor3 = rinv * (dx*fs2 - dy*fs1);
+ tor1 = ny*fs3 - nz*fs2;
+ tor2 = nz*fs1 - nx*fs3;
+ tor3 = nx*fs2 - ny*fs1;
+
torque[0] -= radius*tor1;
torque[1] -= radius*tor2;
torque[2] -= radius*tor3;
- torque[0] += magtortwist * dx*rinv;
- torque[1] += magtortwist * dy*rinv;
- torque[2] += magtortwist * dz*rinv;
+ if (twist_model != TWIST_NONE) {
+ tortwist1 = magtortwist * nx;
+ tortwist2 = magtortwist * ny;
+ tortwist3 = magtortwist * nz;
- torque[0] += magtorroll * (shear[4]*dz - shear[5]*dy)*rinv*magrollinv;
- torque[1] += magtorroll * (shear[5]*dx - shear[3]*dz)*rinv*magrollinv;
- torque[2] += magtorroll * (shear[3]*dy - shear[4]*dx)*rinv*magrollinv;
+ torque[0] += tortwist1;
+ torque[1] += tortwist2;
+ torque[2] += tortwist3;
+ }
+
+ if (roll_model != ROLL_NONE) {
+ torroll1 = Reff*(ny*fr3 - nz*fr2); //n cross fr
+ torroll2 = Reff*(nz*fr1 - nx*fr3);
+ torroll3 = Reff*(nx*fr2 - ny*fr1);
+
+ torque[0] += torroll1;
+ torque[1] += torroll2;
+ torque[2] += torroll3;
+ }
}
/* ----------------------------------------------------------------------
@@ -1023,8 +1436,10 @@ double FixWallGran::memory_usage()
{
int nmax = atom->nmax;
double bytes = 0.0;
- if (history) bytes += nmax*sheardim * sizeof(double); // shear history
- if (fix_rigid) bytes += nmax * sizeof(int); // mass_rigid
+ if (use_history) bytes += nmax*size_history * sizeof(double); // shear history
+ if (fix_rigid) bytes += nmax * sizeof(int); // mass_rigid
+ // store contacts
+ if (peratom_flag) bytes += nmax*size_peratom_cols*sizeof(double);
return bytes;
}
@@ -1034,7 +1449,11 @@ double FixWallGran::memory_usage()
void FixWallGran::grow_arrays(int nmax)
{
- if (history) memory->grow(shearone,nmax,sheardim,"fix_wall_gran:shearone");
+ if (use_history) memory->grow(history_one,nmax,size_history,
+ "fix_wall_gran:history_one");
+ if (peratom_flag) {
+ memory->grow(array_atom,nmax,size_peratom_cols,"fix_wall_gran:array_atom");
+ }
}
/* ----------------------------------------------------------------------
@@ -1043,9 +1462,13 @@ void FixWallGran::grow_arrays(int nmax)
void FixWallGran::copy_arrays(int i, int j, int /*delflag*/)
{
- if (history)
- for (int m = 0; m < sheardim; m++)
- shearone[j][m] = shearone[i][m];
+ if (use_history)
+ for (int m = 0; m < size_history; m++)
+ history_one[j][m] = history_one[i][m];
+ if (peratom_flag) {
+ for (int m = 0; m < size_peratom_cols; m++)
+ array_atom[j][m] = array_atom[i][m];
+ }
}
/* ----------------------------------------------------------------------
@@ -1054,9 +1477,13 @@ void FixWallGran::copy_arrays(int i, int j, int /*delflag*/)
void FixWallGran::set_arrays(int i)
{
- if (history)
- for (int m = 0; m < sheardim; m++)
- shearone[i][m] = 0;
+ if (use_history)
+ for (int m = 0; m < size_history; m++)
+ history_one[i][m] = 0;
+ if (peratom_flag) {
+ for (int m = 0; m < size_peratom_cols; m++)
+ array_atom[i][m] = 0;
+ }
}
/* ----------------------------------------------------------------------
@@ -1065,11 +1492,15 @@ void FixWallGran::set_arrays(int i)
int FixWallGran::pack_exchange(int i, double *buf)
{
- if (!history) return 0;
-
int n = 0;
- for (int m = 0; m < sheardim; m++)
- buf[n++] = shearone[i][m];
+ if (use_history) {
+ for (int m = 0; m < size_history; m++)
+ buf[n++] = history_one[i][m];
+ }
+ if (peratom_flag) {
+ for (int m = 0; m < size_peratom_cols; m++)
+ buf[n++] = array_atom[i][m];
+ }
return n;
}
@@ -1079,11 +1510,15 @@ int FixWallGran::pack_exchange(int i, double *buf)
int FixWallGran::unpack_exchange(int nlocal, double *buf)
{
- if (!history) return 0;
-
int n = 0;
- for (int m = 0; m < sheardim; m++)
- shearone[nlocal][m] = buf[n++];
+ if (use_history) {
+ for (int m = 0; m < size_history; m++)
+ history_one[nlocal][m] = buf[n++];
+ }
+ if (peratom_flag) {
+ for (int m = 0; m < size_peratom_cols; m++)
+ array_atom[nlocal][m] = buf[n++];
+ }
return n;
}
@@ -1093,12 +1528,12 @@ int FixWallGran::unpack_exchange(int nlocal, double *buf)
int FixWallGran::pack_restart(int i, double *buf)
{
- if (!history) return 0;
+ if (!use_history) return 0;
int n = 0;
- buf[n++] = sheardim + 1;
- for (int m = 0; m < sheardim; m++)
- buf[n++] = shearone[i][m];
+ buf[n++] = size_history + 1;
+ for (int m = 0; m < size_history; m++)
+ buf[n++] = history_one[i][m];
return n;
}
@@ -1108,7 +1543,7 @@ int FixWallGran::pack_restart(int i, double *buf)
void FixWallGran::unpack_restart(int nlocal, int nth)
{
- if (!history) return;
+ if (!use_history) return;
double **extra = atom->extra;
@@ -1118,8 +1553,8 @@ void FixWallGran::unpack_restart(int nlocal, int nth)
for (int i = 0; i < nth; i++) m += static_cast (extra[nlocal][m]);
m++;
- for (int i = 0; i < sheardim; i++)
- shearone[nlocal][i] = extra[nlocal][m++];
+ for (int i = 0; i < size_history; i++)
+ history_one[nlocal][i] = extra[nlocal][m++];
}
/* ----------------------------------------------------------------------
@@ -1128,8 +1563,8 @@ void FixWallGran::unpack_restart(int nlocal, int nth)
int FixWallGran::maxsize_restart()
{
- if (!history) return 0;
- return 1 + sheardim;
+ if (!use_history) return 0;
+ return 1 + size_history;
}
/* ----------------------------------------------------------------------
@@ -1138,8 +1573,8 @@ int FixWallGran::maxsize_restart()
int FixWallGran::size_restart(int /*nlocal*/)
{
- if (!history) return 0;
- return 1 + sheardim;
+ if (!use_history) return 0;
+ return 1 + size_history;
}
/* ---------------------------------------------------------------------- */
@@ -1148,3 +1583,14 @@ void FixWallGran::reset_dt()
{
dt = update->dt;
}
+
+double FixWallGran::pulloff_distance(double radius)
+{
+ double coh, E, a, dist;
+ coh = normal_coeffs[3];
+ E = normal_coeffs[0]*THREEQUARTERS;
+ a = cbrt(9*M_PI*coh*radius/(4*E));
+ dist = a*a/radius - 2*sqrt(M_PI*coh*a/E);
+ return dist;
+}
+
diff --git a/src/GRANULAR/fix_wall_gran.h b/src/GRANULAR/fix_wall_gran.h
index 2403a31907..f147e29433 100644
--- a/src/GRANULAR/fix_wall_gran.h
+++ b/src/GRANULAR/fix_wall_gran.h
@@ -46,42 +46,70 @@ class FixWallGran : public Fix {
virtual int maxsize_restart();
void reset_dt();
- void hooke(double, double, double, double, double *,
- double *, double *, double *, double *, double, double);
+ void hooke(double, double, double, double, double *, double *,
+ double *, double *, double *, double, double, double*);
void hooke_history(double, double, double, double, double *,
- double *, double *, double *, double *, double, double,
- double *);
- void hertz_history(double, double, double, double, double *, double,
- double *, double *, double *, double *, double, double,
- double *);
- void bonded_history(double, double, double, double, double *, double,
- double *, double *, double *, double *, double, double,
- double *);
+ double *, double *, double *, double *, double,
+ double, double *, double *);
+ void hertz_history(double, double, double, double, double *,
+ double, double *, double *, double *, double *,
+ double, double, double *, double *);
+ void granular(double, double, double, double, double *, double,
+ double *, double *, double *, double *, double,
+ double, double *, double *);
+
+ double pulloff_distance(double);
protected:
int wallstyle,wiggle,wshear,axis;
int pairstyle,nlevels_respa;
bigint time_origin;
double kn,kt,gamman,gammat,xmu;
- double E,G,SurfEnergy;
+
+ // for granular model choices
+ int normal_model, damping_model;
+ int tangential_model, roll_model, twist_model;
+
+ // history flags
+ int normal_history, tangential_history, roll_history, twist_history;
+
+ // indices of history entries
+ int normal_history_index;
+ int tangential_history_index;
+ int roll_history_index;
+ int twist_history_index;
+
+ // material coefficients
+ double Emod, poiss, Gmod;
+
+ // contact model coefficients
+ double normal_coeffs[4];
+ double tangential_coeffs[3];
+ double roll_coeffs[3];
+ double twist_coeffs[3];
+
double lo,hi,cylradius;
double amplitude,period,omega,vshear;
double dt;
char *idregion;
- int history; // if particle/wall interaction stores history
- int shearupdate; // flag for whether shear history is updated
- int sheardim; // # of shear history values per contact
+ int use_history; // if particle/wall interaction stores history
+ int history_update; // flag for whether shear history is updated
+ int size_history; // # of shear history values per contact
// shear history for single contact per particle
- double **shearone;
+ double **history_one;
// rigid body masses for use in granular interactions
class Fix *fix_rigid; // ptr to rigid body fix, NULL if none
double *mass_rigid; // rigid mass for owned+ghost atoms
int nmax; // allocated size of mass_rigid
+
+ // store particle interactions
+
+ int store;
};
}
diff --git a/src/GRANULAR/fix_wall_gran_region.cpp b/src/GRANULAR/fix_wall_gran_region.cpp
index 8633587ad5..7702967504 100644
--- a/src/GRANULAR/fix_wall_gran_region.cpp
+++ b/src/GRANULAR/fix_wall_gran_region.cpp
@@ -39,15 +39,17 @@ using namespace MathConst;
// same as FixWallGran
-enum{HOOKE,HOOKE_HISTORY,HERTZ_HISTORY,BONDED_HISTORY};
+enum{HOOKE,HOOKE_HISTORY,HERTZ_HISTORY,GRANULAR};
+enum {NORMAL_HOOKE, NORMAL_HERTZ, HERTZ_MATERIAL, DMT, JKR};
#define BIG 1.0e20
/* ---------------------------------------------------------------------- */
FixWallGranRegion::FixWallGranRegion(LAMMPS *lmp, int narg, char **arg) :
- FixWallGran(lmp, narg, arg), region(NULL), region_style(NULL), ncontact(NULL),
- walls(NULL), shearmany(NULL), c2r(NULL)
+ FixWallGran(lmp, narg, arg), region(NULL), region_style(NULL),
+ ncontact(NULL),
+ walls(NULL), history_many(NULL), c2r(NULL)
{
restart_global = 1;
motion_resetflag = 0;
@@ -66,17 +68,17 @@ FixWallGranRegion::FixWallGranRegion(LAMMPS *lmp, int narg, char **arg) :
// re-allocate atom-based arrays with nshear
// do not register with Atom class, since parent class did that
- memory->destroy(shearone);
- shearone = NULL;
+ memory->destroy(history_one);
+ history_one = NULL;
ncontact = NULL;
walls = NULL;
- shearmany = NULL;
+ history_many = NULL;
grow_arrays(atom->nmax);
// initialize shear history as if particle is not touching region
- if (history) {
+ if (use_history) {
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++)
ncontact[i] = 0;
@@ -92,7 +94,7 @@ FixWallGranRegion::~FixWallGranRegion()
memory->destroy(ncontact);
memory->destroy(walls);
- memory->destroy(shearmany);
+ memory->destroy(history_many);
}
/* ---------------------------------------------------------------------- */
@@ -138,8 +140,8 @@ void FixWallGranRegion::post_force(int /*vflag*/)
// do not update shear history during setup
- shearupdate = 1;
- if (update->setupflag) shearupdate = 0;
+ history_update = 1;
+ if (update->setupflag) history_update = 0;
// if just reneighbored:
// update rigid body masses for owned atoms if using FixRigid
@@ -188,7 +190,13 @@ void FixWallGranRegion::post_force(int /*vflag*/)
if (mask[i] & groupbit) {
if (!region->match(x[i][0],x[i][1],x[i][2])) continue;
- nc = region->surface(x[i][0],x[i][1],x[i][2],radius[i]);
+ if (pairstyle == GRANULAR && normal_model == JKR){
+ nc = region->surface(x[i][0],x[i][1],x[i][2],
+ radius[i]+pulloff_distance(radius[i]));
+ }
+ else{
+ nc = region->surface(x[i][0],x[i][1],x[i][2],radius[i]);
+ }
if (nc > tmax)
error->one(FLERR,"Too many wall/gran/region contacts for one particle");
@@ -198,7 +206,7 @@ void FixWallGranRegion::post_force(int /*vflag*/)
// also set c2r[] = indices into region->contact[] for each of N contacts
// process zero or one contact here, otherwise invoke update_contacts()
- if (history) {
+ if (use_history) {
if (nc == 0) {
ncontact[i] = 0;
continue;
@@ -209,15 +217,14 @@ void FixWallGranRegion::post_force(int /*vflag*/)
if (ncontact[i] == 0) {
ncontact[i] = 1;
walls[i][0] = iwall;
- for (m = 0; m < sheardim; m++)
- shearmany[i][0][m] = 0.0;
+ for (m = 0; m < size_history; m++)
+ history_many[i][0][m] = 0.0;
} else if (ncontact[i] > 1 || iwall != walls[i][0])
update_contacts(i,nc);
} else update_contacts(i,nc);
}
// process current contacts
-
for (int ic = 0; ic < nc; ic++) {
// rsq = squared contact distance
@@ -225,36 +232,57 @@ void FixWallGranRegion::post_force(int /*vflag*/)
rsq = region->contact[ic].r*region->contact[ic].r;
+ if (pairstyle == GRANULAR && normal_model == JKR){
+ if (history_many[i][c2r[ic]][0] == 0.0 && rsq > radius[i]*radius[i]){
+ for (m = 0; m < size_history; m++)
+ history_many[i][0][m] = 0.0;
+ continue;
+ }
+ }
+
dx = region->contact[ic].delx;
dy = region->contact[ic].dely;
dz = region->contact[ic].delz;
if (regiondynamic) region->velocity_contact(vwall, x[i], ic);
-
// meff = effective mass of sphere
// if I is part of rigid body, use body mass
meff = rmass[i];
if (fix_rigid && mass_rigid[i] > 0.0) meff = mass_rigid[i];
+ // store contact info
+ if (peratom_flag){
+ array_atom[i][0] = (double)atom->tag[i];
+ array_atom[i][4] = x[i][0] - dx;
+ array_atom[i][5] = x[i][1] - dy;
+ array_atom[i][6] = x[i][2] - dz;
+ array_atom[i][7] = radius[i];
+ }
+
// invoke sphere/wall interaction
+ double *contact;
+ if (peratom_flag)
+ contact = array_atom[i];
+ else
+ contact = NULL;
if (pairstyle == HOOKE)
hooke(rsq,dx,dy,dz,vwall,v[i],f[i],
- omega[i],torque[i],radius[i],meff);
+ omega[i],torque[i],radius[i],meff, contact);
else if (pairstyle == HOOKE_HISTORY)
hooke_history(rsq,dx,dy,dz,vwall,v[i],f[i],
- omega[i],torque[i],radius[i],meff,
- shearmany[i][c2r[ic]]);
+ omega[i],torque[i],radius[i],meff,
+ history_many[i][c2r[ic]], contact);
else if (pairstyle == HERTZ_HISTORY)
hertz_history(rsq,dx,dy,dz,vwall,region->contact[ic].radius,
- v[i],f[i],omega[i],torque[i],
- radius[i],meff,shearmany[i][c2r[ic]]);
- else if (pairstyle == BONDED_HISTORY)
- bonded_history(rsq,dx,dy,dz,vwall,region->contact[ic].radius,
- v[i],f[i],omega[i],torque[i],
- radius[i],meff,shearmany[i][c2r[ic]]);
+ v[i],f[i],omega[i],torque[i],
+ radius[i],meff,history_many[i][c2r[ic]], contact);
+ else if (pairstyle == GRANULAR)
+ granular(rsq,dx,dy,dz,vwall,region->contact[ic].radius,
+ v[i],f[i],omega[i],torque[i],
+ radius[i],meff,history_many[i][c2r[ic]],contact);
}
}
}
@@ -282,8 +310,8 @@ void FixWallGranRegion::update_contacts(int i, int nc)
if (region->contact[m].iwall == walls[i][iold]) break;
if (m >= nc) {
ilast = ncontact[i]-1;
- for (j = 0; j < sheardim; j++)
- shearmany[i][iold][j] = shearmany[i][ilast][j];
+ for (j = 0; j < size_history; j++)
+ history_many[i][iold][j] = history_many[i][ilast][j];
walls[i][iold] = walls[i][ilast];
ncontact[i]--;
} else iold++;
@@ -305,8 +333,8 @@ void FixWallGranRegion::update_contacts(int i, int nc)
iadd = ncontact[i];
c2r[iadd] = inew;
- for (j = 0; j < sheardim; j++)
- shearmany[i][iadd][j] = 0.0;
+ for (j = 0; j < size_history; j++)
+ history_many[i][iadd][j] = 0.0;
walls[i][iadd] = iwall;
ncontact[i]++;
}
@@ -321,10 +349,10 @@ double FixWallGranRegion::memory_usage()
{
int nmax = atom->nmax;
double bytes = 0.0;
- if (history) { // shear history
+ if (use_history) { // shear history
bytes += nmax * sizeof(int); // ncontact
bytes += nmax*tmax * sizeof(int); // walls
- bytes += nmax*tmax*sheardim * sizeof(double); // shearmany
+ bytes += nmax*tmax*size_history * sizeof(double); // history_many
}
if (fix_rigid) bytes += nmax * sizeof(int); // mass_rigid
return bytes;
@@ -336,11 +364,14 @@ double FixWallGranRegion::memory_usage()
void FixWallGranRegion::grow_arrays(int nmax)
{
- if (history) {
+ if (use_history) {
memory->grow(ncontact,nmax,"fix_wall_gran:ncontact");
memory->grow(walls,nmax,tmax,"fix_wall_gran:walls");
- memory->grow(shearmany,nmax,tmax,sheardim,"fix_wall_gran:shearmany");
+ memory->grow(history_many,nmax,tmax,size_history,
+ "fix_wall_gran:history_many");
}
+ if (peratom_flag)
+ memory->grow(array_atom,nmax,size_peratom_cols,"fix_wall_gran:array_atom");
}
/* ----------------------------------------------------------------------
@@ -351,16 +382,20 @@ void FixWallGranRegion::copy_arrays(int i, int j, int /*delflag*/)
{
int m,n,iwall;
- if (!history) return;
-
- n = ncontact[i];
-
- for (iwall = 0; iwall < n; iwall++) {
- walls[j][iwall] = walls[i][iwall];
- for (m = 0; m < sheardim; m++)
- shearmany[j][iwall][m] = shearmany[i][iwall][m];
+ if (use_history){
+ n = ncontact[i];
+ for (iwall = 0; iwall < n; iwall++) {
+ walls[j][iwall] = walls[i][iwall];
+ for (m = 0; m < size_history; m++)
+ history_many[j][iwall][m] = history_many[i][iwall][m];
+ }
+ ncontact[j] = ncontact[i];
+ }
+
+ if (peratom_flag){
+ for (int m = 0; m < size_peratom_cols; m++)
+ array_atom[j][m] = array_atom[i][m];
}
- ncontact[j] = ncontact[i];
}
/* ----------------------------------------------------------------------
@@ -369,8 +404,12 @@ void FixWallGranRegion::copy_arrays(int i, int j, int /*delflag*/)
void FixWallGranRegion::set_arrays(int i)
{
- if (!history) return;
- ncontact[i] = 0;
+ if (use_history)
+ ncontact[i] = 0;
+ if (peratom_flag){
+ for (int m = 0; m < size_peratom_cols; m++)
+ array_atom[i][m] = 0;
+ }
}
/* ----------------------------------------------------------------------
@@ -381,16 +420,19 @@ int FixWallGranRegion::pack_exchange(int i, double *buf)
{
int m;
- if (!history) return 0;
-
int n = 0;
- int count = ncontact[i];
-
- buf[n++] = ubuf(count).d;
- for (int iwall = 0; iwall < count; iwall++) {
- buf[n++] = ubuf(walls[i][iwall]).d;
- for (m = 0; m < sheardim; m++)
- buf[n++] = shearmany[i][iwall][m];
+ if (use_history){
+ int count = ncontact[i];
+ buf[n++] = ubuf(count).d;
+ for (int iwall = 0; iwall < count; iwall++) {
+ buf[n++] = ubuf(walls[i][iwall]).d;
+ for (m = 0; m < size_history; m++)
+ buf[n++] = history_many[i][iwall][m];
+ }
+ }
+ if (peratom_flag){
+ for (int m = 0; m < size_peratom_cols; m++)
+ buf[n++] = array_atom[i][m];
}
return n;
@@ -404,15 +446,19 @@ int FixWallGranRegion::unpack_exchange(int nlocal, double *buf)
{
int m;
- if (!history) return 0;
int n = 0;
- int count = ncontact[nlocal] = (int) ubuf(buf[n++]).i;
-
- for (int iwall = 0; iwall < count; iwall++) {
- walls[nlocal][iwall] = (int) ubuf(buf[n++]).i;
- for (m = 0; m < sheardim; m++)
- shearmany[nlocal][iwall][m] = buf[n++];
+ if (use_history){
+ int count = ncontact[nlocal] = (int) ubuf(buf[n++]).i;
+ for (int iwall = 0; iwall < count; iwall++) {
+ walls[nlocal][iwall] = (int) ubuf(buf[n++]).i;
+ for (m = 0; m < size_history; m++)
+ history_many[nlocal][iwall][m] = buf[n++];
+ }
+ }
+ if (peratom_flag){
+ for (int m = 0; m < size_peratom_cols; m++)
+ array_atom[nlocal][m] = buf[n++];
}
return n;
@@ -426,7 +472,7 @@ int FixWallGranRegion::pack_restart(int i, double *buf)
{
int m;
- if (!history) return 0;
+ if (!use_history) return 0;
int n = 1;
int count = ncontact[i];
@@ -434,8 +480,8 @@ int FixWallGranRegion::pack_restart(int i, double *buf)
buf[n++] = ubuf(count).d;
for (int iwall = 0; iwall < count; iwall++) {
buf[n++] = ubuf(walls[i][iwall]).d;
- for (m = 0; m < sheardim; m++)
- buf[n++] = shearmany[i][iwall][m];
+ for (m = 0; m < size_history; m++)
+ buf[n++] = history_many[i][iwall][m];
}
buf[0] = n;
return n;
@@ -449,7 +495,7 @@ void FixWallGranRegion::unpack_restart(int nlocal, int nth)
{
int k;
- if (!history) return;
+ if (!use_history) return;
double **extra = atom->extra;
@@ -462,8 +508,8 @@ void FixWallGranRegion::unpack_restart(int nlocal, int nth)
int count = ncontact[nlocal] = (int) ubuf(extra[nlocal][m++]).i;
for (int iwall = 0; iwall < count; iwall++) {
walls[nlocal][iwall] = (int) ubuf(extra[nlocal][m++]).i;
- for (k = 0; k < sheardim; k++)
- shearmany[nlocal][iwall][k] = extra[nlocal][m++];
+ for (k = 0; k < size_history; k++)
+ history_many[nlocal][iwall][k] = extra[nlocal][m++];
}
}
@@ -473,8 +519,8 @@ void FixWallGranRegion::unpack_restart(int nlocal, int nth)
int FixWallGranRegion::maxsize_restart()
{
- if (!history) return 0;
- return 2 + tmax*(sheardim+1);
+ if (!use_history) return 0;
+ return 2 + tmax*(size_history+1);
}
/* ----------------------------------------------------------------------
@@ -483,8 +529,8 @@ int FixWallGranRegion::maxsize_restart()
int FixWallGranRegion::size_restart(int nlocal)
{
- if (!history) return 0;
- return 2 + ncontact[nlocal]*(sheardim+1);
+ if (!use_history) return 0;
+ return 2 + ncontact[nlocal]*(size_history+1);
}
/* ----------------------------------------------------------------------
diff --git a/src/GRANULAR/fix_wall_gran_region.h b/src/GRANULAR/fix_wall_gran_region.h
index 8d1b6d533a..fd40e27e4c 100644
--- a/src/GRANULAR/fix_wall_gran_region.h
+++ b/src/GRANULAR/fix_wall_gran_region.h
@@ -54,7 +54,7 @@ class FixWallGranRegion : public FixWallGran {
int tmax; // max # of region walls one particle can touch
int *ncontact; // # of shear contacts per particle
int **walls; // which wall each contact is with
- double ***shearmany; // shear history per particle per contact
+ double ***history_many; // history per particle per contact
int *c2r; // contact to region mapping
// c2r[i] = index of Ith contact in
// region-contact[] list of contacts
diff --git a/src/GRANULAR/pair_gran_hooke_history.cpp b/src/GRANULAR/pair_gran_hooke_history.cpp
index cec825316c..5a78b9d79a 100644
--- a/src/GRANULAR/pair_gran_hooke_history.cpp
+++ b/src/GRANULAR/pair_gran_hooke_history.cpp
@@ -44,6 +44,7 @@ PairGranHookeHistory::PairGranHookeHistory(LAMMPS *lmp) : Pair(lmp)
single_enable = 1;
no_virial_fdotr_compute = 1;
history = 1;
+ size_history = 3;
fix_history = NULL;
single_extra = 10;
@@ -57,6 +58,10 @@ PairGranHookeHistory::PairGranHookeHistory(LAMMPS *lmp) : Pair(lmp)
// set comm size needed by this Pair if used with fix rigid
comm_forward = 1;
+
+ // keep default behavior of history[i][j] = -history[j][i]
+
+ nondefault_history_transfer = 0;
}
/* ---------------------------------------------------------------------- */
@@ -413,7 +418,7 @@ void PairGranHookeHistory::init_style()
if (history && fix_history == NULL) {
char dnumstr[16];
- sprintf(dnumstr,"%d",3);
+ sprintf(dnumstr,"%d",size_history);
char **fixarg = new char*[4];
fixarg[0] = (char *) "NEIGH_HISTORY";
fixarg[1] = (char *) "all";
diff --git a/src/GRANULAR/pair_gran_hooke_history.h b/src/GRANULAR/pair_gran_hooke_history.h
index 3ca5c73116..81f2d8fd4a 100644
--- a/src/GRANULAR/pair_gran_hooke_history.h
+++ b/src/GRANULAR/pair_gran_hooke_history.h
@@ -54,6 +54,8 @@ class PairGranHookeHistory : public Pair {
double *onerad_dynamic,*onerad_frozen;
double *maxrad_dynamic,*maxrad_frozen;
+ int size_history;
+
class FixNeighHistory *fix_history;
// storage of rigid body masses for use in granular interactions
diff --git a/src/GRANULAR/pair_granular.cpp b/src/GRANULAR/pair_granular.cpp
new file mode 100644
index 0000000000..973acbbaf4
--- /dev/null
+++ b/src/GRANULAR/pair_granular.cpp
@@ -0,0 +1,1741 @@
+/* ----------------------------------------------------------------------
+http://lammps.sandia.gov, Sandia National Laboratories
+Steve Plimpton, sjplimp@sandia.gov
+
+Copyright (2003) Sandia Corporation. Under the terms of Contract
+DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
+certain rights in this software. This software is distributed under
+the GNU General Public License.
+
+See the README file in the top-level LAMMPS directory.
+------------------------------------------------------------------------- */
+
+/* ----------------------------------------------------------------------
+ Contributing authors:
+ Dan Bolintineanu (SNL), Ishan Srivastava (SNL), Jeremy Lechman(SNL)
+ Leo Silbert (SNL), Gary Grest (SNL)
+----------------------------------------------------------------------- */
+
+#include
+#include
+#include
+#include
+#include "pair_granular.h"
+#include "atom.h"
+#include "atom_vec.h"
+#include "domain.h"
+#include "force.h"
+#include "update.h"
+#include "modify.h"
+#include "fix.h"
+#include "fix_neigh_history.h"
+#include "comm.h"
+#include "neighbor.h"
+#include "neigh_list.h"
+#include "neigh_request.h"
+#include "memory.h"
+#include "error.h"
+#include "math_const.h"
+#include "math_special.h"
+
+using namespace LAMMPS_NS;
+using namespace MathConst;
+using namespace MathSpecial;
+
+#define PI27SQ 266.47931882941264802866 // 27*PI**2
+#define THREEROOT3 5.19615242270663202362 // 3*sqrt(3)
+#define SIXROOT6 14.69693845669906728801 // 6*sqrt(6)
+#define INVROOT6 0.40824829046386307274 // 1/sqrt(6)
+#define FOURTHIRDS 4.0/3.0 // 4/3
+#define THREEQUARTERS 0.75 // 3/4
+
+#define EPSILON 1e-10
+
+enum {HOOKE, HERTZ, HERTZ_MATERIAL, DMT, JKR};
+enum {VELOCITY, VISCOELASTIC, TSUJI};
+enum {TANGENTIAL_NOHISTORY, TANGENTIAL_HISTORY,
+ TANGENTIAL_MINDLIN, TANGENTIAL_MINDLIN_RESCALE};
+enum {TWIST_NONE, TWIST_SDS, TWIST_MARSHALL};
+enum {ROLL_NONE, ROLL_SDS};
+
+/* ---------------------------------------------------------------------- */
+
+PairGranular::PairGranular(LAMMPS *lmp) : Pair(lmp)
+{
+ single_enable = 1;
+ no_virial_fdotr_compute = 1;
+ fix_history = NULL;
+
+ single_extra = 12;
+ svector = new double[single_extra];
+
+ neighprev = 0;
+
+ nmax = 0;
+ mass_rigid = NULL;
+
+ onerad_dynamic = NULL;
+ onerad_frozen = NULL;
+ maxrad_dynamic = NULL;
+ maxrad_frozen = NULL;
+
+ history_transfer_factors = NULL;
+
+ dt = update->dt;
+
+ // set comm size needed by this Pair if used with fix rigid
+
+ comm_forward = 1;
+
+ use_history = 0;
+ beyond_contact = 0;
+ nondefault_history_transfer = 0;
+ tangential_history_index = 0;
+ roll_history_index = twist_history_index = 0;
+}
+
+/* ---------------------------------------------------------------------- */
+
+PairGranular::~PairGranular()
+{
+ delete [] svector;
+ if (fix_history) modify->delete_fix("NEIGH_HISTORY");
+
+ if (allocated) {
+ memory->destroy(setflag);
+ memory->destroy(cutsq);
+ memory->destroy(cutoff_type);
+
+ memory->destroy(normal_coeffs);
+ memory->destroy(tangential_coeffs);
+ memory->destroy(roll_coeffs);
+ memory->destroy(twist_coeffs);
+
+ memory->destroy(Emod);
+ memory->destroy(poiss);
+
+ memory->destroy(normal_model);
+ memory->destroy(damping_model);
+ memory->destroy(tangential_model);
+ memory->destroy(roll_model);
+ memory->destroy(twist_model);
+
+ delete [] onerad_dynamic;
+ delete [] onerad_frozen;
+ delete [] maxrad_dynamic;
+ delete [] maxrad_frozen;
+ }
+
+ memory->destroy(mass_rigid);
+}
+
+/* ---------------------------------------------------------------------- */
+
+void PairGranular::compute(int eflag, int vflag)
+{
+ int i,j,ii,jj,inum,jnum,itype,jtype;
+ double xtmp,ytmp,ztmp,delx,dely,delz,fx,fy,fz,nx,ny,nz;
+ double radi,radj,radsum,rsq,r,rinv;
+ double Reff, delta, dR, dR2, dist_to_contact;
+
+ double vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3;
+ double wr1,wr2,wr3;
+ double vtr1,vtr2,vtr3,vrel;
+
+ double knfac, damp_normal, damp_normal_prefactor;
+ double k_tangential, damp_tangential;
+ double Fne, Ft, Fdamp, Fntot, Fncrit, Fscrit, Frcrit;
+ double fs, fs1, fs2, fs3, tor1, tor2, tor3;
+
+ double mi,mj,meff;
+ double relrot1,relrot2,relrot3,vrl1,vrl2,vrl3;
+
+ // for JKR
+ double R2, coh, F_pulloff, delta_pulloff, dist_pulloff, a, a2, E;
+ double t0, t1, t2, t3, t4, t5, t6;
+ double sqrt1, sqrt2, sqrt3;
+
+ // rolling
+ double k_roll, damp_roll;
+ double torroll1, torroll2, torroll3;
+ double rollmag, rolldotn, scalefac;
+ double fr, fr1, fr2, fr3;
+
+ // twisting
+ double k_twist, damp_twist, mu_twist;
+ double signtwist, magtwist, magtortwist, Mtcrit;
+ double tortwist1, tortwist2, tortwist3;
+
+ double shrmag,rsht;
+ int *ilist,*jlist,*numneigh,**firstneigh;
+ int *touch,**firsttouch;
+ double *history,*allhistory,**firsthistory;
+
+ bool touchflag = false;
+ const bool historyupdate = (update->setupflag) ? false : true;
+
+ ev_init(eflag,vflag);
+
+ // update rigid body info for owned & ghost atoms if using FixRigid masses
+ // body[i] = which body atom I is in, -1 if none
+ // mass_body = mass of each rigid body
+
+ if (fix_rigid && neighbor->ago == 0) {
+ int tmp;
+ int *body = (int *) fix_rigid->extract("body",tmp);
+ double *mass_body = (double *) fix_rigid->extract("masstotal",tmp);
+ if (atom->nmax > nmax) {
+ memory->destroy(mass_rigid);
+ nmax = atom->nmax;
+ memory->create(mass_rigid,nmax,"pair:mass_rigid");
+ }
+ int nlocal = atom->nlocal;
+ for (i = 0; i < nlocal; i++)
+ if (body[i] >= 0) mass_rigid[i] = mass_body[body[i]];
+ else mass_rigid[i] = 0.0;
+ comm->forward_comm_pair(this);
+ }
+
+ double **x = atom->x;
+ double **v = atom->v;
+ double **f = atom->f;
+ int *type = atom->type;
+ double **omega = atom->omega;
+ double **torque = atom->torque;
+ double *radius = atom->radius;
+ double *rmass = atom->rmass;
+ int *mask = atom->mask;
+ int nlocal = atom->nlocal;
+
+ inum = list->inum;
+ ilist = list->ilist;
+ numneigh = list->numneigh;
+ firstneigh = list->firstneigh;
+ if (use_history) {
+ firsttouch = fix_history->firstflag;
+ firsthistory = fix_history->firstvalue;
+ }
+
+ for (ii = 0; ii < inum; ii++) {
+ i = ilist[ii];
+ itype = type[i];
+ xtmp = x[i][0];
+ ytmp = x[i][1];
+ ztmp = x[i][2];
+ itype = type[i];
+ radi = radius[i];
+ if (use_history) {
+ touch = firsttouch[i];
+ allhistory = firsthistory[i];
+ }
+ jlist = firstneigh[i];
+ jnum = numneigh[i];
+
+ for (jj = 0; jj < jnum; jj++) {
+ j = jlist[jj];
+ j &= NEIGHMASK;
+
+ delx = xtmp - x[j][0];
+ dely = ytmp - x[j][1];
+ delz = ztmp - x[j][2];
+ jtype = type[j];
+ rsq = delx*delx + dely*dely + delz*delz;
+ radj = radius[j];
+ radsum = radi + radj;
+
+ E = normal_coeffs[itype][jtype][0];
+ Reff = radi*radj/radsum;
+ touchflag = false;
+
+ if (normal_model[itype][jtype] == JKR) {
+ E *= THREEQUARTERS;
+ if (touch[jj]) {
+ R2 = Reff*Reff;
+ coh = normal_coeffs[itype][jtype][3];
+ a = cbrt(9.0*MY_PI*coh*R2/(4*E));
+ delta_pulloff = a*a/Reff - 2*sqrt(MY_PI*coh*a/E);
+ dist_pulloff = radsum-delta_pulloff;
+ touchflag = (rsq < dist_pulloff*dist_pulloff);
+ } else {
+ touchflag = (rsq < radsum*radsum);
+ }
+ } else {
+ touchflag = (rsq < radsum*radsum);
+ }
+
+ if (!touchflag) {
+ // unset non-touching neighbors
+ if (use_history) {
+ touch[jj] = 0;
+ history = &allhistory[size_history*jj];
+ for (int k = 0; k < size_history; k++) history[k] = 0.0;
+ }
+ } else {
+ r = sqrt(rsq);
+ rinv = 1.0/r;
+
+ nx = delx*rinv;
+ ny = dely*rinv;
+ nz = delz*rinv;
+
+ // relative translational velocity
+
+ vr1 = v[i][0] - v[j][0];
+ vr2 = v[i][1] - v[j][1];
+ vr3 = v[i][2] - v[j][2];
+
+ // normal component
+
+ vnnr = vr1*nx + vr2*ny + vr3*nz; //v_R . n
+ vn1 = nx*vnnr;
+ vn2 = ny*vnnr;
+ vn3 = nz*vnnr;
+
+ // meff = effective mass of pair of particles
+ // if I or J part of rigid body, use body mass
+ // if I or J is frozen, meff is other particle
+
+ mi = rmass[i];
+ mj = rmass[j];
+ if (fix_rigid) {
+ if (mass_rigid[i] > 0.0) mi = mass_rigid[i];
+ if (mass_rigid[j] > 0.0) mj = mass_rigid[j];
+ }
+
+ meff = mi*mj / (mi+mj);
+ if (mask[i] & freeze_group_bit) meff = mj;
+ if (mask[j] & freeze_group_bit) meff = mi;
+
+ delta = radsum - r;
+ dR = delta*Reff;
+ if (normal_model[itype][jtype] == JKR) {
+ touch[jj] = 1;
+ R2=Reff*Reff;
+ coh = normal_coeffs[itype][jtype][3];
+ dR2 = dR*dR;
+ t0 = coh*coh*R2*R2*E;
+ t1 = PI27SQ*t0;
+ t2 = 8*dR*dR2*E*E*E;
+ t3 = 4*dR2*E;
+ // in case sqrt(0) < 0 due to precision issues
+ sqrt1 = MAX(0, t0*(t1+2*t2));
+ t4 = cbrt(t1+t2+THREEROOT3*MY_PI*sqrt(sqrt1));
+ t5 = t3/t4 + t4/E;
+ sqrt2 = MAX(0, 2*dR + t5);
+ t6 = sqrt(sqrt2);
+ sqrt3 = MAX(0, 4*dR - t5 + SIXROOT6*coh*MY_PI*R2/(E*t6));
+ a = INVROOT6*(t6 + sqrt(sqrt3));
+ a2 = a*a;
+ knfac = normal_coeffs[itype][jtype][0]*a;
+ Fne = knfac*a2/Reff - MY_2PI*a2*sqrt(4*coh*E/(MY_PI*a));
+ } else {
+ knfac = E; // Hooke
+ Fne = knfac*delta;
+ a = sqrt(dR);
+ if (normal_model[itype][jtype] != HOOKE) {
+ Fne *= a;
+ knfac *= a;
+ }
+ if (normal_model[itype][jtype] == DMT)
+ Fne -= 4*MY_PI*normal_coeffs[itype][jtype][3]*Reff;
+ }
+
+ // NOTE: consider restricting Hooke to only have
+ // 'velocity' as an option for damping?
+
+ if (damping_model[itype][jtype] == VELOCITY) {
+ damp_normal = 1;
+ } else if (damping_model[itype][jtype] == VISCOELASTIC) {
+ damp_normal = a*meff;
+ } else if (damping_model[itype][jtype] == TSUJI) {
+ damp_normal = sqrt(meff*knfac);
+ }
+
+ damp_normal_prefactor = normal_coeffs[itype][jtype][1]*damp_normal;
+ Fdamp = -damp_normal_prefactor*vnnr;
+
+ Fntot = Fne + Fdamp;
+
+ //****************************************
+ // tangential force, including history effects
+ //****************************************
+
+ // tangential component
+ vt1 = vr1 - vn1;
+ vt2 = vr2 - vn2;
+ vt3 = vr3 - vn3;
+
+ // relative rotational velocity
+ wr1 = (radi*omega[i][0] + radj*omega[j][0]);
+ wr2 = (radi*omega[i][1] + radj*omega[j][1]);
+ wr3 = (radi*omega[i][2] + radj*omega[j][2]);
+
+ // relative tangential velocities
+ vtr1 = vt1 - (nz*wr2-ny*wr3);
+ vtr2 = vt2 - (nx*wr3-nz*wr1);
+ vtr3 = vt3 - (ny*wr1-nx*wr2);
+ vrel = vtr1*vtr1 + vtr2*vtr2 + vtr3*vtr3;
+ vrel = sqrt(vrel);
+
+ // if any history is needed
+ if (use_history) {
+ touch[jj] = 1;
+ history = &allhistory[size_history*jj];
+ }
+
+ if (normal_model[itype][jtype] == JKR) {
+ F_pulloff = 3*MY_PI*coh*Reff;
+ Fncrit = fabs(Fne + 2*F_pulloff);
+ } else if (normal_model[itype][jtype] == DMT) {
+ F_pulloff = 4*MY_PI*coh*Reff;
+ Fncrit = fabs(Fne + 2*F_pulloff);
+ } else {
+ Fncrit = fabs(Fntot);
+ }
+
+ //------------------------------
+ // tangential forces
+ //------------------------------
+ k_tangential = tangential_coeffs[itype][jtype][0];
+ damp_tangential = tangential_coeffs[itype][jtype][1] *
+ damp_normal_prefactor;
+
+ if (tangential_history) {
+ if (tangential_model[itype][jtype] == TANGENTIAL_MINDLIN) {
+ k_tangential *= a;
+ } else if (tangential_model[itype][jtype] ==
+ TANGENTIAL_MINDLIN_RESCALE) {
+ k_tangential *= a;
+ // on unloading, rescale the shear displacements
+ if (a < history[3]) {
+ double factor = a/history[3];
+ history[0] *= factor;
+ history[1] *= factor;
+ history[2] *= factor;
+ }
+ }
+ // rotate and update displacements.
+ // see e.g. eq. 17 of Luding, Gran. Matter 2008, v10,p235
+ if (historyupdate) {
+ rsht = history[0]*nx + history[1]*ny + history[2]*nz;
+ if (fabs(rsht) < EPSILON) rsht = 0;
+ if (rsht > 0) {
+ shrmag = sqrt(history[0]*history[0] + history[1]*history[1] +
+ history[2]*history[2]);
+ // if rsht == shrmag, contacting pair has rotated 90 deg
+ // in one step, in which case you deserve a crash!
+ scalefac = shrmag/(shrmag - rsht);
+ history[0] -= rsht*nx;
+ history[1] -= rsht*ny;
+ history[2] -= rsht*nz;
+ // also rescale to preserve magnitude
+ history[0] *= scalefac;
+ history[1] *= scalefac;
+ history[2] *= scalefac;
+ }
+ // update history
+ history[0] += vtr1*dt;
+ history[1] += vtr2*dt;
+ history[2] += vtr3*dt;
+ if (tangential_model[itype][jtype] == TANGENTIAL_MINDLIN_RESCALE)
+ history[3] = a;
+ }
+
+ // tangential forces = history + tangential velocity damping
+ fs1 = -k_tangential*history[0] - damp_tangential*vtr1;
+ fs2 = -k_tangential*history[1] - damp_tangential*vtr2;
+ fs3 = -k_tangential*history[2] - damp_tangential*vtr3;
+
+ // rescale frictional displacements and forces if needed
+ Fscrit = tangential_coeffs[itype][jtype][2] * Fncrit;
+ fs = sqrt(fs1*fs1 + fs2*fs2 + fs3*fs3);
+ if (fs > Fscrit) {
+ shrmag = sqrt(history[0]*history[0] + history[1]*history[1] +
+ history[2]*history[2]);
+ if (shrmag != 0.0) {
+ history[0] = -1.0/k_tangential*(Fscrit*fs1/fs +
+ damp_tangential*vtr1);
+ history[1] = -1.0/k_tangential*(Fscrit*fs2/fs +
+ damp_tangential*vtr2);
+ history[2] = -1.0/k_tangential*(Fscrit*fs3/fs +
+ damp_tangential*vtr3);
+ fs1 *= Fscrit/fs;
+ fs2 *= Fscrit/fs;
+ fs3 *= Fscrit/fs;
+ } else fs1 = fs2 = fs3 = 0.0;
+ }
+ } else { // classic pair gran/hooke (no history)
+ fs = meff*damp_tangential*vrel;
+ if (vrel != 0.0) Ft = MIN(Fne,fs) / vrel;
+ else Ft = 0.0;
+ fs1 = -Ft*vtr1;
+ fs2 = -Ft*vtr2;
+ fs3 = -Ft*vtr3;
+ }
+
+ //****************************************
+ // rolling resistance
+ //****************************************
+
+ if (roll_model[itype][jtype] != ROLL_NONE) {
+ relrot1 = omega[i][0] - omega[j][0];
+ relrot2 = omega[i][1] - omega[j][1];
+ relrot3 = omega[i][2] - omega[j][2];
+
+ // rolling velocity,
+ // see eq. 31 of Wang et al, Particuology v 23, p 49 (2015)
+ // this is different from the Marshall papers,
+ // which use the Bagi/Kuhn formulation
+ // for rolling velocity (see Wang et al for why the latter is wrong)
+ // - 0.5*((radj-radi)/radsum)*vtr1;
+ // - 0.5*((radj-radi)/radsum)*vtr2;
+ // - 0.5*((radj-radi)/radsum)*vtr3;
+
+ vrl1 = Reff*(relrot2*nz - relrot3*ny);
+ vrl2 = Reff*(relrot3*nx - relrot1*nz);
+ vrl3 = Reff*(relrot1*ny - relrot2*nx);
+
+ int rhist0 = roll_history_index;
+ int rhist1 = rhist0 + 1;
+ int rhist2 = rhist1 + 1;
+
+ rolldotn = history[rhist0]*nx + history[rhist1]*ny + history[rhist2]*nz;
+ if (historyupdate) {
+ if (fabs(rolldotn) < EPSILON) rolldotn = 0;
+ if (rolldotn > 0) { // rotate into tangential plane
+ rollmag = sqrt(history[rhist0]*history[rhist0] +
+ history[rhist1]*history[rhist1] +
+ history[rhist2]*history[rhist2]);
+ scalefac = rollmag/(rollmag - rolldotn);
+ history[rhist0] -= rolldotn*nx;
+ history[rhist1] -= rolldotn*ny;
+ history[rhist2] -= rolldotn*nz;
+ // also rescale to preserve magnitude
+ history[rhist0] *= scalefac;
+ history[rhist1] *= scalefac;
+ history[rhist2] *= scalefac;
+ }
+ history[rhist0] += vrl1*dt;
+ history[rhist1] += vrl2*dt;
+ history[rhist2] += vrl3*dt;
+ }
+
+ k_roll = roll_coeffs[itype][jtype][0];
+ damp_roll = roll_coeffs[itype][jtype][1];
+ fr1 = -k_roll*history[rhist0] - damp_roll*vrl1;
+ fr2 = -k_roll*history[rhist1] - damp_roll*vrl2;
+ fr3 = -k_roll*history[rhist2] - damp_roll*vrl3;
+
+ // rescale frictional displacements and forces if needed
+ Frcrit = roll_coeffs[itype][jtype][2] * Fncrit;
+
+ fr = sqrt(fr1*fr1 + fr2*fr2 + fr3*fr3);
+ if (fr > Frcrit) {
+ rollmag = sqrt(history[rhist0]*history[rhist0] +
+ history[rhist1]*history[rhist1] +
+ history[rhist2]*history[rhist2]);
+ if (rollmag != 0.0) {
+ history[rhist0] = -1.0/k_roll*(Frcrit*fr1/fr + damp_roll*vrl1);
+ history[rhist1] = -1.0/k_roll*(Frcrit*fr2/fr + damp_roll*vrl2);
+ history[rhist2] = -1.0/k_roll*(Frcrit*fr3/fr + damp_roll*vrl3);
+ fr1 *= Frcrit/fr;
+ fr2 *= Frcrit/fr;
+ fr3 *= Frcrit/fr;
+ } else fr1 = fr2 = fr3 = 0.0;
+ }
+ }
+
+ //****************************************
+ // twisting torque, including history effects
+ //****************************************
+
+ if (twist_model[itype][jtype] != TWIST_NONE) {
+ // omega_T (eq 29 of Marshall)
+ magtwist = relrot1*nx + relrot2*ny + relrot3*nz;
+ if (twist_model[itype][jtype] == TWIST_MARSHALL) {
+ k_twist = 0.5*k_tangential*a*a;; // eq 32 of Marshall paper
+ damp_twist = 0.5*damp_tangential*a*a;
+ mu_twist = TWOTHIRDS*a*tangential_coeffs[itype][jtype][2];
+ } else {
+ k_twist = twist_coeffs[itype][jtype][0];
+ damp_twist = twist_coeffs[itype][jtype][1];
+ mu_twist = twist_coeffs[itype][jtype][2];
+ }
+ if (historyupdate) {
+ history[twist_history_index] += magtwist*dt;
+ }
+ magtortwist = -k_twist*history[twist_history_index] -
+ damp_twist*magtwist; // M_t torque (eq 30)
+ signtwist = (magtwist > 0) - (magtwist < 0);
+ Mtcrit = mu_twist*Fncrit; // critical torque (eq 44)
+ if (fabs(magtortwist) > Mtcrit) {
+ history[twist_history_index] = 1.0/k_twist*(Mtcrit*signtwist -
+ damp_twist*magtwist);
+ magtortwist = -Mtcrit * signtwist; // eq 34
+ }
+ }
+
+ // apply forces & torques
+
+ fx = nx*Fntot + fs1;
+ fy = ny*Fntot + fs2;
+ fz = nz*Fntot + fs3;
+
+ f[i][0] += fx;
+ f[i][1] += fy;
+ f[i][2] += fz;
+
+ tor1 = ny*fs3 - nz*fs2;
+ tor2 = nz*fs1 - nx*fs3;
+ tor3 = nx*fs2 - ny*fs1;
+
+ dist_to_contact = radi-0.5*delta;
+ torque[i][0] -= dist_to_contact*tor1;
+ torque[i][1] -= dist_to_contact*tor2;
+ torque[i][2] -= dist_to_contact*tor3;
+
+ if (twist_model[itype][jtype] != TWIST_NONE) {
+ tortwist1 = magtortwist * nx;
+ tortwist2 = magtortwist * ny;
+ tortwist3 = magtortwist * nz;
+
+ torque[i][0] += tortwist1;
+ torque[i][1] += tortwist2;
+ torque[i][2] += tortwist3;
+ }
+
+ if (roll_model[itype][jtype] != ROLL_NONE) {
+ torroll1 = Reff*(ny*fr3 - nz*fr2); // n cross fr
+ torroll2 = Reff*(nz*fr1 - nx*fr3);
+ torroll3 = Reff*(nx*fr2 - ny*fr1);
+
+ torque[i][0] += torroll1;
+ torque[i][1] += torroll2;
+ torque[i][2] += torroll3;
+ }
+
+ if (force->newton_pair || j < nlocal) {
+ f[j][0] -= fx;
+ f[j][1] -= fy;
+ f[j][2] -= fz;
+
+ dist_to_contact = radj-0.5*delta;
+ torque[j][0] -= dist_to_contact*tor1;
+ torque[j][1] -= dist_to_contact*tor2;
+ torque[j][2] -= dist_to_contact*tor3;
+
+ if (twist_model[itype][jtype] != TWIST_NONE) {
+ torque[j][0] -= tortwist1;
+ torque[j][1] -= tortwist2;
+ torque[j][2] -= tortwist3;
+ }
+ if (roll_model[itype][jtype] != ROLL_NONE) {
+ torque[j][0] -= torroll1;
+ torque[j][1] -= torroll2;
+ torque[j][2] -= torroll3;
+ }
+ }
+ if (evflag) ev_tally_xyz(i,j,nlocal,0,
+ 0.0,0.0,fx,fy,fz,delx,dely,delz);
+ }
+ }
+ }
+}
+
+/* ----------------------------------------------------------------------
+ allocate all arrays
+------------------------------------------------------------------------- */
+
+void PairGranular::allocate()
+{
+ allocated = 1;
+ int n = atom->ntypes;
+
+ memory->create(setflag,n+1,n+1,"pair:setflag");
+ for (int i = 1; i <= n; i++)
+ for (int j = i; j <= n; j++)
+ setflag[i][j] = 0;
+
+ memory->create(cutsq,n+1,n+1,"pair:cutsq");
+ memory->create(cutoff_type,n+1,n+1,"pair:cutoff_type");
+ memory->create(normal_coeffs,n+1,n+1,4,"pair:normal_coeffs");
+ memory->create(tangential_coeffs,n+1,n+1,3,"pair:tangential_coeffs");
+ memory->create(roll_coeffs,n+1,n+1,3,"pair:roll_coeffs");
+ memory->create(twist_coeffs,n+1,n+1,3,"pair:twist_coeffs");
+
+ memory->create(Emod,n+1,n+1,"pair:Emod");
+ memory->create(poiss,n+1,n+1,"pair:poiss");
+
+ memory->create(normal_model,n+1,n+1,"pair:normal_model");
+ memory->create(damping_model,n+1,n+1,"pair:damping_model");
+ memory->create(tangential_model,n+1,n+1,"pair:tangential_model");
+ memory->create(roll_model,n+1,n+1,"pair:roll_model");
+ memory->create(twist_model,n+1,n+1,"pair:twist_model");
+
+ onerad_dynamic = new double[n+1];
+ onerad_frozen = new double[n+1];
+ maxrad_dynamic = new double[n+1];
+ maxrad_frozen = new double[n+1];
+}
+
+/* ----------------------------------------------------------------------
+ global settings
+------------------------------------------------------------------------- */
+
+void PairGranular::settings(int narg, char **arg)
+{
+ if (narg == 1) {
+ cutoff_global = force->numeric(FLERR,arg[0]);
+ } else {
+ cutoff_global = -1; // will be set based on particle sizes, model choice
+ }
+
+ normal_history = tangential_history = 0;
+ roll_history = twist_history = 0;
+}
+
+/* ----------------------------------------------------------------------
+ set coeffs for one or more type pairs
+------------------------------------------------------------------------- */
+
+void PairGranular::coeff(int narg, char **arg)
+{
+ int normal_model_one, damping_model_one;
+ int tangential_model_one, roll_model_one, twist_model_one;
+
+ double normal_coeffs_one[4];
+ double tangential_coeffs_one[4];
+ double roll_coeffs_one[4];
+ double twist_coeffs_one[4];
+
+ double cutoff_one = -1;
+
+ if (narg < 2)
+ error->all(FLERR,"Incorrect args for pair coefficients");
+
+ if (!allocated) allocate();
+
+ int ilo,ihi,jlo,jhi;
+ force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi);
+ force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi);
+
+ //Defaults
+ normal_model_one = tangential_model_one = -1;
+ roll_model_one = twist_model_one = 0;
+ damping_model_one = VISCOELASTIC;
+
+ int iarg = 2;
+ while (iarg < narg) {
+ if (strcmp(arg[iarg], "hooke") == 0) {
+ if (iarg + 2 >= narg)
+ error->all(FLERR,"Illegal pair_coeff command, "
+ "not enough parameters provided for Hooke option");
+ normal_model_one = HOOKE;
+ normal_coeffs_one[0] = force->numeric(FLERR,arg[iarg+1]); // kn
+ normal_coeffs_one[1] = force->numeric(FLERR,arg[iarg+2]); // damping
+ iarg += 3;
+ } else if (strcmp(arg[iarg], "hertz") == 0) {
+ int num_coeffs = 2;
+ if (iarg + num_coeffs >= narg)
+ error->all(FLERR,"Illegal pair_coeff command, "
+ "not enough parameters provided for Hertz option");
+ normal_model_one = HERTZ;
+ normal_coeffs_one[0] = force->numeric(FLERR,arg[iarg+1]); // kn
+ normal_coeffs_one[1] = force->numeric(FLERR,arg[iarg+2]); // damping
+ iarg += num_coeffs+1;
+ } else if (strcmp(arg[iarg], "hertz/material") == 0) {
+ int num_coeffs = 3;
+ if (iarg + num_coeffs >= narg)
+ error->all(FLERR,"Illegal pair_coeff command, "
+ "not enough parameters provided for Hertz/material option");
+ normal_model_one = HERTZ_MATERIAL;
+ normal_coeffs_one[0] = force->numeric(FLERR,arg[iarg+1]); // E
+ normal_coeffs_one[1] = force->numeric(FLERR,arg[iarg+2]); // damping
+ normal_coeffs_one[2] = force->numeric(FLERR,arg[iarg+3]); // Poisson's ratio
+ iarg += num_coeffs+1;
+ } else if (strcmp(arg[iarg], "dmt") == 0) {
+ if (iarg + 4 >= narg)
+ error->all(FLERR,"Illegal pair_coeff command, "
+ "not enough parameters provided for Hertz option");
+ normal_model_one = DMT;
+ normal_coeffs_one[0] = force->numeric(FLERR,arg[iarg+1]); // E
+ normal_coeffs_one[1] = force->numeric(FLERR,arg[iarg+2]); // damping
+ normal_coeffs_one[2] = force->numeric(FLERR,arg[iarg+3]); // Poisson's ratio
+ normal_coeffs_one[3] = force->numeric(FLERR,arg[iarg+4]); // cohesion
+ iarg += 5;
+ } else if (strcmp(arg[iarg], "jkr") == 0) {
+ if (iarg + 4 >= narg)
+ error->all(FLERR,"Illegal pair_coeff command, "
+ "not enough parameters provided for JKR option");
+ beyond_contact = 1;
+ normal_model_one = JKR;
+ normal_coeffs_one[0] = force->numeric(FLERR,arg[iarg+1]); // E
+ normal_coeffs_one[1] = force->numeric(FLERR,arg[iarg+2]); // damping
+ normal_coeffs_one[2] = force->numeric(FLERR,arg[iarg+3]); // Poisson's ratio
+ normal_coeffs_one[3] = force->numeric(FLERR,arg[iarg+4]); // cohesion
+ iarg += 5;
+ } else if (strcmp(arg[iarg], "damping") == 0) {
+ if (iarg+1 >= narg)
+ error->all(FLERR, "Illegal pair_coeff command, "
+ "not enough parameters provided for damping model");
+ if (strcmp(arg[iarg+1], "velocity") == 0) {
+ damping_model_one = VELOCITY;
+ iarg += 1;
+ } else if (strcmp(arg[iarg+1], "viscoelastic") == 0) {
+ damping_model_one = VISCOELASTIC;
+ iarg += 1;
+ } else if (strcmp(arg[iarg+1], "tsuji") == 0) {
+ damping_model_one = TSUJI;
+ iarg += 1;
+ } else error->all(FLERR, "Illegal pair_coeff command, "
+ "unrecognized damping model");
+ iarg += 1;
+ } else if (strcmp(arg[iarg], "tangential") == 0) {
+ if (iarg + 1 >= narg)
+ error->all(FLERR,"Illegal pair_coeff command, must specify "
+ "tangential model after tangential keyword");
+ if (strcmp(arg[iarg+1], "linear_nohistory") == 0) {
+ if (iarg + 3 >= narg)
+ error->all(FLERR,"Illegal pair_coeff command, "
+ "not enough parameters provided for tangential model");
+ tangential_model_one = TANGENTIAL_NOHISTORY;
+ tangential_coeffs_one[0] = 0;
+ // gammat and friction coeff
+ tangential_coeffs_one[1] = force->numeric(FLERR,arg[iarg+2]);
+ tangential_coeffs_one[2] = force->numeric(FLERR,arg[iarg+3]);
+ iarg += 4;
+ } else if ((strcmp(arg[iarg+1], "linear_history") == 0) ||
+ (strcmp(arg[iarg+1], "mindlin") == 0) ||
+ (strcmp(arg[iarg+1], "mindlin_rescale") == 0)) {
+ if (iarg + 4 >= narg)
+ error->all(FLERR,"Illegal pair_coeff command, "
+ "not enough parameters provided for tangential model");
+ if (strcmp(arg[iarg+1], "linear_history") == 0)
+ tangential_model_one = TANGENTIAL_HISTORY;
+ else if (strcmp(arg[iarg+1], "mindlin") == 0)
+ tangential_model_one = TANGENTIAL_MINDLIN;
+ else if (strcmp(arg[iarg+1], "mindlin_rescale") == 0)
+ tangential_model_one = TANGENTIAL_MINDLIN_RESCALE;
+ tangential_history = 1;
+ if ((tangential_model_one == TANGENTIAL_MINDLIN ||
+ tangential_model_one == TANGENTIAL_MINDLIN_RESCALE) &&
+ (strcmp(arg[iarg+2], "NULL") == 0)) {
+ if (normal_model_one == HERTZ || normal_model_one == HOOKE) {
+ error->all(FLERR, "NULL setting for Mindlin tangential "
+ "stiffness requires a normal contact model that "
+ "specifies material properties");
+ }
+ tangential_coeffs_one[0] = -1;
+ } else {
+ tangential_coeffs_one[0] = force->numeric(FLERR,arg[iarg+2]); // kt
+ }
+ // gammat and friction coeff
+ tangential_coeffs_one[1] = force->numeric(FLERR,arg[iarg+3]);
+ tangential_coeffs_one[2] = force->numeric(FLERR,arg[iarg+4]);
+ iarg += 5;
+ } else {
+ error->all(FLERR, "Illegal pair_coeff command, "
+ "tangential model not recognized");
+ }
+ } else if (strcmp(arg[iarg], "rolling") == 0) {
+ if (iarg + 1 >= narg)
+ error->all(FLERR, "Illegal pair_coeff command, not enough parameters");
+ if (strcmp(arg[iarg+1], "none") == 0) {
+ roll_model_one = ROLL_NONE;
+ iarg += 2;
+ } else if (strcmp(arg[iarg+1], "sds") == 0) {
+ if (iarg + 4 >= narg)
+ error->all(FLERR,"Illegal pair_coeff command, "
+ "not enough parameters provided for rolling model");
+ roll_model_one = ROLL_SDS;
+ roll_history = 1;
+ // kR and gammaR and rolling friction coeff
+ roll_coeffs_one[0] = force->numeric(FLERR,arg[iarg+2]);
+ roll_coeffs_one[1] = force->numeric(FLERR,arg[iarg+3]);
+ roll_coeffs_one[2] = force->numeric(FLERR,arg[iarg+4]);
+ iarg += 5;
+ } else {
+ error->all(FLERR, "Illegal pair_coeff command, "
+ "rolling friction model not recognized");
+ }
+ } else if (strcmp(arg[iarg], "twisting") == 0) {
+ if (iarg + 1 >= narg)
+ error->all(FLERR, "Illegal pair_coeff command, not enough parameters");
+ if (strcmp(arg[iarg+1], "none") == 0) {
+ twist_model_one = TWIST_NONE;
+ iarg += 2;
+ } else if (strcmp(arg[iarg+1], "marshall") == 0) {
+ twist_model_one = TWIST_MARSHALL;
+ twist_history = 1;
+ iarg += 2;
+ } else if (strcmp(arg[iarg+1], "sds") == 0) {
+ if (iarg + 4 >= narg)
+ error->all(FLERR,"Illegal pair_coeff command, "
+ "not enough parameters provided for twist model");
+ twist_model_one = TWIST_SDS;
+ twist_history = 1;
+ // kt and gammat and friction coeff
+ twist_coeffs_one[0] = force->numeric(FLERR,arg[iarg+2]);
+ twist_coeffs_one[1] = force->numeric(FLERR,arg[iarg+3]);
+ twist_coeffs_one[2] = force->numeric(FLERR,arg[iarg+4]);
+ iarg += 5;
+ } else {
+ error->all(FLERR, "Illegal pair_coeff command, "
+ "twisting friction model not recognized");
+ }
+ } else if (strcmp(arg[iarg], "cutoff") == 0) {
+ if (iarg + 1 >= narg)
+ error->all(FLERR, "Illegal pair_coeff command, not enough parameters");
+ cutoff_one = force->numeric(FLERR,arg[iarg+1]);
+ } else error->all(FLERR, "Illegal pair coeff command");
+ }
+
+ // error not to specify normal or tangential model
+ if ((normal_model_one < 0) || (tangential_model_one < 0))
+ error->all(FLERR, "Illegal pair coeff command, "
+ "must specify normal or tangential contact model");
+
+ int count = 0;
+ double damp;
+ if (damping_model_one == TSUJI) {
+ double cor;
+ cor = normal_coeffs_one[1];
+ damp = 1.2728-4.2783*cor+11.087*square(cor)-22.348*cube(cor)+
+ 27.467*powint(cor,4)-18.022*powint(cor,5)+4.8218*powint(cor,6);
+ } else damp = normal_coeffs_one[1];
+
+ for (int i = ilo; i <= ihi; i++) {
+ for (int j = MAX(jlo,i); j <= jhi; j++) {
+ normal_model[i][j] = normal_model[j][i] = normal_model_one;
+ normal_coeffs[i][j][1] = normal_coeffs[j][i][1] = damp;
+ if (normal_model_one != HERTZ && normal_model_one != HOOKE) {
+ Emod[i][j] = Emod[j][i] = normal_coeffs_one[0];
+ poiss[i][j] = poiss[j][i] = normal_coeffs_one[2];
+ normal_coeffs[i][j][0] = normal_coeffs[j][i][0] =
+ FOURTHIRDS*mix_stiffnessE(Emod[i][j],Emod[i][j],
+ poiss[i][j],poiss[i][j]);
+ } else {
+ normal_coeffs[i][j][0] = normal_coeffs[j][i][0] = normal_coeffs_one[0];
+ }
+ if ((normal_model_one == JKR) || (normal_model_one == DMT))
+ normal_coeffs[i][j][3] = normal_coeffs[j][i][3] = normal_coeffs_one[3];
+
+ damping_model[i][j] = damping_model[j][i] = damping_model_one;
+
+ tangential_model[i][j] = tangential_model[j][i] = tangential_model_one;
+ if (tangential_coeffs_one[0] == -1) {
+ tangential_coeffs[i][j][0] = tangential_coeffs[j][i][0] =
+ 8*mix_stiffnessG(Emod[i][j],Emod[i][j],poiss[i][j],poiss[i][j]);
+ } else {
+ tangential_coeffs[i][j][0] = tangential_coeffs[j][i][0] =
+ tangential_coeffs_one[0];
+ }
+ for (int k = 1; k < 3; k++)
+ tangential_coeffs[i][j][k] = tangential_coeffs[j][i][k] =
+ tangential_coeffs_one[k];
+
+ roll_model[i][j] = roll_model[j][i] = roll_model_one;
+ if (roll_model_one != ROLL_NONE)
+ for (int k = 0; k < 3; k++)
+ roll_coeffs[i][j][k] = roll_coeffs[j][i][k] = roll_coeffs_one[k];
+
+ twist_model[i][j] = twist_model[j][i] = twist_model_one;
+ if (twist_model_one != TWIST_NONE && twist_model_one != TWIST_MARSHALL)
+ for (int k = 0; k < 3; k++)
+ twist_coeffs[i][j][k] = twist_coeffs[j][i][k] = twist_coeffs_one[k];
+
+ cutoff_type[i][j] = cutoff_type[j][i] = cutoff_one;
+
+ setflag[i][j] = 1;
+ count++;
+ }
+ }
+
+ if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients");
+}
+
+/* ----------------------------------------------------------------------
+ init specific to this pair style
+------------------------------------------------------------------------- */
+
+void PairGranular::init_style()
+{
+ int i;
+
+ // error and warning checks
+
+ if (!atom->radius_flag || !atom->rmass_flag)
+ error->all(FLERR,"Pair granular requires atom attributes radius, rmass");
+ if (comm->ghost_velocity == 0)
+ error->all(FLERR,"Pair granular requires ghost atoms store velocity");
+
+ // determine whether we need a granular neigh list, how large it needs to be
+
+ use_history = normal_history || tangential_history ||
+ roll_history || twist_history;
+
+ // for JKR, will need fix/neigh/history to keep track of touch arrays
+
+ for (int i = 1; i <= atom->ntypes; i++)
+ for (int j = i; j <= atom->ntypes; j++)
+ if (normal_model[i][j] == JKR) use_history = 1;
+
+ size_history = 3*tangential_history + 3*roll_history + twist_history;
+
+ // determine location of tangential/roll/twist histories in array
+
+ if (roll_history) {
+ if (tangential_history) roll_history_index = 3;
+ else roll_history_index = 0;
+ }
+ if (twist_history) {
+ if (tangential_history) {
+ if (roll_history) twist_history_index = 6;
+ else twist_history_index = 3;
+ } else {
+ if (roll_history) twist_history_index = 3;
+ else twist_history_index = 0;
+ }
+ }
+ for (int i = 1; i <= atom->ntypes; i++)
+ for (int j = i; j <= atom->ntypes; j++)
+ if (tangential_model[i][j] == TANGENTIAL_MINDLIN_RESCALE) {
+ size_history += 1;
+ roll_history_index += 1;
+ twist_history_index += 1;
+ nondefault_history_transfer = 1;
+ history_transfer_factors = new int[size_history];
+ for (int ii = 0; ii < size_history; ++ii)
+ history_transfer_factors[ii] = -1;
+ history_transfer_factors[3] = 1;
+ break;
+ }
+
+ int irequest = neighbor->request(this,instance_me);
+ neighbor->requests[irequest]->size = 1;
+ if (use_history) neighbor->requests[irequest]->history = 1;
+
+ dt = update->dt;
+
+ // if history is stored:
+ // if first init, create Fix needed for storing history
+
+ if (use_history && fix_history == NULL) {
+ char dnumstr[16];
+ sprintf(dnumstr,"%d",size_history);
+ char **fixarg = new char*[4];
+ fixarg[0] = (char *) "NEIGH_HISTORY";
+ fixarg[1] = (char *) "all";
+ fixarg[2] = (char *) "NEIGH_HISTORY";
+ fixarg[3] = dnumstr;
+ modify->add_fix(4,fixarg,1);
+ delete [] fixarg;
+ fix_history = (FixNeighHistory *) modify->fix[modify->nfix-1];
+ fix_history->pair = this;
+ }
+
+ // check for FixFreeze and set freeze_group_bit
+
+ for (i = 0; i < modify->nfix; i++)
+ if (strcmp(modify->fix[i]->style,"freeze") == 0) break;
+ if (i < modify->nfix) freeze_group_bit = modify->fix[i]->groupbit;
+ else freeze_group_bit = 0;
+
+ // check for FixRigid so can extract rigid body masses
+
+ fix_rigid = NULL;
+ for (i = 0; i < modify->nfix; i++)
+ if (modify->fix[i]->rigid_flag) break;
+ if (i < modify->nfix) fix_rigid = modify->fix[i];
+
+ // check for FixPour and FixDeposit so can extract particle radii
+
+ int ipour;
+ for (ipour = 0; ipour < modify->nfix; ipour++)
+ if (strcmp(modify->fix[ipour]->style,"pour") == 0) break;
+ if (ipour == modify->nfix) ipour = -1;
+
+ int idep;
+ for (idep = 0; idep < modify->nfix; idep++)
+ if (strcmp(modify->fix[idep]->style,"deposit") == 0) break;
+ if (idep == modify->nfix) idep = -1;
+
+ // set maxrad_dynamic and maxrad_frozen for each type
+ // include future FixPour and FixDeposit particles as dynamic
+
+ int itype;
+ for (i = 1; i <= atom->ntypes; i++) {
+ onerad_dynamic[i] = onerad_frozen[i] = 0.0;
+ if (ipour >= 0) {
+ itype = i;
+ double radmax = *((double *) modify->fix[ipour]->extract("radius",itype));
+ onerad_dynamic[i] = radmax;
+ }
+ if (idep >= 0) {
+ itype = i;
+ double radmax = *((double *) modify->fix[idep]->extract("radius",itype));
+ onerad_dynamic[i] = radmax;
+ }
+ }
+
+ double *radius = atom->radius;
+ int *mask = atom->mask;
+ int *type = atom->type;
+ int nlocal = atom->nlocal;
+
+ for (i = 0; i < nlocal; i++) {
+ double radius_cut = radius[i];
+ if (mask[i] & freeze_group_bit) {
+ onerad_frozen[type[i]] = MAX(onerad_frozen[type[i]],radius_cut);
+ } else {
+ onerad_dynamic[type[i]] = MAX(onerad_dynamic[type[i]],radius_cut);
+ }
+ }
+
+ MPI_Allreduce(&onerad_dynamic[1],&maxrad_dynamic[1],atom->ntypes,
+ MPI_DOUBLE,MPI_MAX,world);
+ MPI_Allreduce(&onerad_frozen[1],&maxrad_frozen[1],atom->ntypes,
+ MPI_DOUBLE,MPI_MAX,world);
+
+ // set fix which stores history info
+
+ if (size_history > 0) {
+ int ifix = modify->find_fix("NEIGH_HISTORY");
+ if (ifix < 0) error->all(FLERR,"Could not find pair fix neigh history ID");
+ fix_history = (FixNeighHistory *) modify->fix[ifix];
+ }
+}
+
+/* ----------------------------------------------------------------------
+ init for one type pair i,j and corresponding j,i
+------------------------------------------------------------------------- */
+
+double PairGranular::init_one(int i, int j)
+{
+ double cutoff;
+
+ if (setflag[i][j] == 0) {
+ if ((normal_model[i][i] != normal_model[j][j]) ||
+ (damping_model[i][i] != damping_model[j][j]) ||
+ (tangential_model[i][i] != tangential_model[j][j]) ||
+ (roll_model[i][i] != roll_model[j][j]) ||
+ (twist_model[i][i] != twist_model[j][j])) {
+
+ char str[512];
+ sprintf(str,"Granular pair style functional forms are different, "
+ "cannot mix coefficients for types %d and %d. \n"
+ "This combination must be set explicitly "
+ "via pair_coeff command",i,j);
+ error->one(FLERR,str);
+ }
+
+ if (normal_model[i][j] == HERTZ || normal_model[i][j] == HOOKE)
+ normal_coeffs[i][j][0] = normal_coeffs[j][i][0] =
+ mix_geom(normal_coeffs[i][i][0], normal_coeffs[j][j][0]);
+ else
+ normal_coeffs[i][j][0] = normal_coeffs[j][i][0] =
+ mix_stiffnessE(Emod[i][i], Emod[j][j], poiss[i][i], poiss[j][j]);
+
+ normal_coeffs[i][j][1] = normal_coeffs[j][i][1] =
+ mix_geom(normal_coeffs[i][i][1], normal_coeffs[j][j][1]);
+ if ((normal_model[i][j] == JKR) || (normal_model[i][j] == DMT))
+ normal_coeffs[i][j][3] = normal_coeffs[j][i][3] =
+ mix_geom(normal_coeffs[i][i][3], normal_coeffs[j][j][3]);
+
+ for (int k = 0; k < 3; k++)
+ tangential_coeffs[i][j][k] = tangential_coeffs[j][i][k] =
+ mix_geom(tangential_coeffs[i][i][k], tangential_coeffs[j][j][k]);
+
+ if (roll_model[i][j] != ROLL_NONE) {
+ for (int k = 0; k < 3; k++)
+ roll_coeffs[i][j][k] = roll_coeffs[j][i][k] =
+ mix_geom(roll_coeffs[i][i][k], roll_coeffs[j][j][k]);
+ }
+
+ if (twist_model[i][j] != TWIST_NONE && twist_model[i][j] != TWIST_MARSHALL) {
+ for (int k = 0; k < 3; k++)
+ twist_coeffs[i][j][k] = twist_coeffs[j][i][k] =
+ mix_geom(twist_coeffs[i][i][k], twist_coeffs[j][j][k]);
+ }
+ }
+
+ // It is possible that cut[i][j] at this point is still 0.0.
+ // This can happen when
+ // there is a future fix_pour after the current run. A cut[i][j] = 0.0 creates
+ // problems because neighbor.cpp uses min(cut[i][j]) to decide on the bin size
+ // To avoid this issue, for cases involving cut[i][j] = 0.0 (possible only
+ // if there is no current information about radius/cutoff of type i and j).
+ // we assign cutoff = max(cut[i][j]) for i,j such that cut[i][j] > 0.0.
+
+ double pulloff;
+
+ if (cutoff_type[i][j] < 0 && cutoff_global < 0) {
+ if (((maxrad_dynamic[i] > 0.0) && (maxrad_dynamic[j] > 0.0)) ||
+ ((maxrad_dynamic[i] > 0.0) && (maxrad_frozen[j] > 0.0)) ||
+ // radius info about both i and j exist
+ ((maxrad_frozen[i] > 0.0) && (maxrad_dynamic[j] > 0.0))) {
+ cutoff = maxrad_dynamic[i]+maxrad_dynamic[j];
+ pulloff = 0.0;
+ if (normal_model[i][j] == JKR) {
+ pulloff = pulloff_distance(maxrad_dynamic[i], maxrad_dynamic[j], i, j);
+ cutoff += pulloff;
+ }
+
+ if (normal_model[i][j] == JKR)
+ pulloff = pulloff_distance(maxrad_frozen[i], maxrad_dynamic[j], i, j);
+ cutoff = MAX(cutoff, maxrad_frozen[i]+maxrad_dynamic[j]+pulloff);
+
+ if (normal_model[i][j] == JKR)
+ pulloff = pulloff_distance(maxrad_dynamic[i], maxrad_frozen[j], i, j);
+ cutoff = MAX(cutoff,maxrad_dynamic[i]+maxrad_frozen[j]+pulloff);
+
+ } else {
+
+ // radius info about either i or j does not exist
+ // (i.e. not present and not about to get poured;
+ // set to largest value to not interfere with neighbor list)
+
+ double cutmax = 0.0;
+ for (int k = 1; k <= atom->ntypes; k++) {
+ cutmax = MAX(cutmax,2.0*maxrad_dynamic[k]);
+ cutmax = MAX(cutmax,2.0*maxrad_frozen[k]);
+ }
+ cutoff = cutmax;
+ }
+ } else if (cutoff_type[i][j] > 0) {
+ cutoff = cutoff_type[i][j];
+ } else if (cutoff_global > 0) {
+ cutoff = cutoff_global;
+ }
+
+ return cutoff;
+}
+
+/* ----------------------------------------------------------------------
+ proc 0 writes to restart file
+------------------------------------------------------------------------- */
+
+void PairGranular::write_restart(FILE *fp)
+{
+ int i,j;
+ for (i = 1; i <= atom->ntypes; i++) {
+ for (j = i; j <= atom->ntypes; j++) {
+ fwrite(&setflag[i][j],sizeof(int),1,fp);
+ if (setflag[i][j]) {
+ fwrite(&normal_model[i][j],sizeof(int),1,fp);
+ fwrite(&damping_model[i][j],sizeof(int),1,fp);
+ fwrite(&tangential_model[i][j],sizeof(int),1,fp);
+ fwrite(&roll_model[i][j],sizeof(int),1,fp);
+ fwrite(&twist_model[i][j],sizeof(int),1,fp);
+ fwrite(&normal_coeffs[i][j],sizeof(double),4,fp);
+ fwrite(&tangential_coeffs[i][j],sizeof(double),3,fp);
+ fwrite(&roll_coeffs[i][j],sizeof(double),3,fp);
+ fwrite(&twist_coeffs[i][j],sizeof(double),3,fp);
+ fwrite(&cut[i][j],sizeof(double),1,fp);
+ }
+ }
+ }
+}
+
+/* ----------------------------------------------------------------------
+ proc 0 reads from restart file, bcasts
+------------------------------------------------------------------------- */
+
+void PairGranular::read_restart(FILE *fp)
+{
+ allocate();
+ int i,j;
+ int me = comm->me;
+ for (i = 1; i <= atom->ntypes; i++) {
+ for (j = i; j <= atom->ntypes; j++) {
+ if (me == 0) fread(&setflag[i][j],sizeof(int),1,fp);
+ MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world);
+ if (setflag[i][j]) {
+ if (me == 0) {
+ fread(&normal_model[i][j],sizeof(int),1,fp);
+ fread(&damping_model[i][j],sizeof(int),1,fp);
+ fread(&tangential_model[i][j],sizeof(int),1,fp);
+ fread(&roll_model[i][j],sizeof(int),1,fp);
+ fread(&twist_model[i][j],sizeof(int),1,fp);
+ fread(&normal_coeffs[i][j],sizeof(double),4,fp);
+ fread(&tangential_coeffs[i][j],sizeof(double),3,fp);
+ fread(&roll_coeffs[i][j],sizeof(double),3,fp);
+ fread(&twist_coeffs[i][j],sizeof(double),3,fp);
+ fread(&cut[i][j],sizeof(double),1,fp);
+ }
+ MPI_Bcast(&normal_model[i][j],1,MPI_INT,0,world);
+ MPI_Bcast(&damping_model[i][j],1,MPI_INT,0,world);
+ MPI_Bcast(&tangential_model[i][j],1,MPI_INT,0,world);
+ MPI_Bcast(&roll_model[i][j],1,MPI_INT,0,world);
+ MPI_Bcast(&twist_model[i][j],1,MPI_INT,0,world);
+ MPI_Bcast(&normal_coeffs[i][j],4,MPI_DOUBLE,0,world);
+ MPI_Bcast(&tangential_coeffs[i][j],3,MPI_DOUBLE,0,world);
+ MPI_Bcast(&roll_coeffs[i][j],3,MPI_DOUBLE,0,world);
+ MPI_Bcast(&twist_coeffs[i][j],3,MPI_DOUBLE,0,world);
+ MPI_Bcast(&cut[i][j],1,MPI_DOUBLE,0,world);
+ }
+ }
+ }
+}
+
+/* ---------------------------------------------------------------------- */
+
+void PairGranular::reset_dt()
+{
+ dt = update->dt;
+}
+
+/* ---------------------------------------------------------------------- */
+
+double PairGranular::single(int i, int j, int itype, int jtype,
+ double rsq, double /* factor_coul */,
+ double /* factor_lj */, double &fforce)
+{
+ double radi,radj,radsum;
+ double r,rinv,delx,dely,delz, nx, ny, nz, Reff;
+ double dR, dR2;
+ double vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3,wr1,wr2,wr3;
+ double vtr1,vtr2,vtr3,vrel;
+ double mi,mj,meff;
+ double relrot1,relrot2,relrot3,vrl1,vrl2,vrl3;
+
+ double knfac, damp_normal, damp_normal_prefactor;
+ double k_tangential, damp_tangential;
+ double Fne, Ft, Fdamp, Fntot, Fncrit, Fscrit, Frcrit;
+ double fs, fs1, fs2, fs3;
+
+ // for JKR
+ double R2, coh, F_pulloff, delta_pulloff, dist_pulloff, a, a2, E;
+ double delta, t0, t1, t2, t3, t4, t5, t6;
+ double sqrt1, sqrt2, sqrt3;
+
+ // rolling
+ double k_roll, damp_roll;
+ double rollmag;
+ double fr, fr1, fr2, fr3;
+
+ // twisting
+ double k_twist, damp_twist, mu_twist;
+ double signtwist, magtwist, magtortwist, Mtcrit;
+
+ double shrmag;
+ int jnum;
+ int *jlist;
+ double *history,*allhistory;
+
+ double *radius = atom->radius;
+ radi = radius[i];
+ radj = radius[j];
+ radsum = radi + radj;
+ Reff = radi*radj/radsum;
+
+ bool touchflag;
+ E = normal_coeffs[itype][jtype][0];
+ if (normal_model[itype][jtype] == JKR) {
+ E *= THREEQUARTERS;
+ R2 = Reff*Reff;
+ coh = normal_coeffs[itype][jtype][3];
+ a = cbrt(9.0*MY_PI*coh*R2/(4*E));
+ delta_pulloff = a*a/Reff - 2*sqrt(MY_PI*coh*a/E);
+ dist_pulloff = radsum+delta_pulloff;
+ touchflag = (rsq <= dist_pulloff*dist_pulloff);
+ } else touchflag = (rsq <= radsum*radsum);
+
+ if (!touchflag) {
+ fforce = 0.0;
+ for (int m = 0; m < single_extra; m++) svector[m] = 0.0;
+ return 0.0;
+ }
+
+ double **x = atom->x;
+ delx = x[i][0] - x[j][0];
+ dely = x[i][1] - x[j][1];
+ delz = x[i][2] - x[j][2];
+ r = sqrt(rsq);
+ rinv = 1.0/r;
+
+ nx = delx*rinv;
+ ny = dely*rinv;
+ nz = delz*rinv;
+
+ // relative translational velocity
+
+ double **v = atom->v;
+ vr1 = v[i][0] - v[j][0];
+ vr2 = v[i][1] - v[j][1];
+ vr3 = v[i][2] - v[j][2];
+
+ // normal component
+
+ vnnr = vr1*nx + vr2*ny + vr3*nz;
+ vn1 = nx*vnnr;
+ vn2 = ny*vnnr;
+ vn3 = nz*vnnr;
+
+ double *rmass = atom->rmass;
+ int *mask = atom->mask;
+ mi = rmass[i];
+ mj = rmass[j];
+ if (fix_rigid) {
+ if (mass_rigid[i] > 0.0) mi = mass_rigid[i];
+ if (mass_rigid[j] > 0.0) mj = mass_rigid[j];
+ }
+
+ meff = mi*mj / (mi+mj);
+ if (mask[i] & freeze_group_bit) meff = mj;
+ if (mask[j] & freeze_group_bit) meff = mi;
+
+ delta = radsum - r;
+ dR = delta*Reff;
+
+ // tangential component
+
+ vt1 = vr1 - vn1;
+ vt2 = vr2 - vn2;
+ vt3 = vr3 - vn3;
+
+ // relative rotational velocity
+
+ double **omega = atom->omega;
+ wr1 = (radi*omega[i][0] + radj*omega[j][0]);
+ wr2 = (radi*omega[i][1] + radj*omega[j][1]);
+ wr3 = (radi*omega[i][2] + radj*omega[j][2]);
+
+ // meff = effective mass of pair of particles
+ // if I or J part of rigid body, use body mass
+ // if I or J is frozen, meff is other particle
+
+ mi = rmass[i];
+ mj = rmass[j];
+ if (fix_rigid) {
+ // NOTE: ensure mass_rigid is current for owned+ghost atoms?
+ if (mass_rigid[i] > 0.0) mi = mass_rigid[i];
+ if (mass_rigid[j] > 0.0) mj = mass_rigid[j];
+ }
+
+ meff = mi*mj / (mi+mj);
+ if (mask[i] & freeze_group_bit) meff = mj;
+ if (mask[j] & freeze_group_bit) meff = mi;
+
+ delta = radsum - r;
+ dR = delta*Reff;
+ if (normal_model[itype][jtype] == JKR) {
+ dR2 = dR*dR;
+ t0 = coh*coh*R2*R2*E;
+ t1 = PI27SQ*t0;
+ t2 = 8*dR*dR2*E*E*E;
+ t3 = 4*dR2*E;
+ // in case sqrt(0) < 0 due to precision issues
+ sqrt1 = MAX(0, t0*(t1+2*t2));
+ t4 = cbrt(t1+t2+THREEROOT3*MY_PI*sqrt(sqrt1));
+ t5 = t3/t4 + t4/E;
+ sqrt2 = MAX(0, 2*dR + t5);
+ t6 = sqrt(sqrt2);
+ sqrt3 = MAX(0, 4*dR - t5 + SIXROOT6*coh*MY_PI*R2/(E*t6));
+ a = INVROOT6*(t6 + sqrt(sqrt3));
+ a2 = a*a;
+ knfac = normal_coeffs[itype][jtype][0]*a;
+ Fne = knfac*a2/Reff - MY_2PI*a2*sqrt(4*coh*E/(MY_PI*a));
+ } else {
+ knfac = E;
+ Fne = knfac*delta;
+ a = sqrt(dR);
+ if (normal_model[itype][jtype] != HOOKE) {
+ Fne *= a;
+ knfac *= a;
+ }
+ if (normal_model[itype][jtype] == DMT)
+ Fne -= 4*MY_PI*normal_coeffs[itype][jtype][3]*Reff;
+ }
+
+ if (damping_model[itype][jtype] == VELOCITY) {
+ damp_normal = normal_coeffs[itype][jtype][1];
+ } else if (damping_model[itype][jtype] == VISCOELASTIC) {
+ damp_normal = normal_coeffs[itype][jtype][1]*a*meff;
+ } else if (damping_model[itype][jtype] == TSUJI) {
+ damp_normal = normal_coeffs[itype][jtype][1]*sqrt(meff*knfac);
+ }
+
+ damp_normal_prefactor = normal_coeffs[itype][jtype][1]*damp_normal;
+ Fdamp = -damp_normal_prefactor*vnnr;
+
+ Fntot = Fne + Fdamp;
+
+ jnum = list->numneigh[i];
+ jlist = list->firstneigh[i];
+
+ if (use_history) {
+ allhistory = fix_history->firstvalue[i];
+ for (int jj = 0; jj < jnum; jj++) {
+ neighprev++;
+ if (neighprev >= jnum) neighprev = 0;
+ if (jlist[neighprev] == j) break;
+ }
+ history = &allhistory[size_history*neighprev];
+ }
+
+ //****************************************
+ // tangential force, including history effects
+ //****************************************
+
+ // tangential component
+ vt1 = vr1 - vn1;
+ vt2 = vr2 - vn2;
+ vt3 = vr3 - vn3;
+
+ // relative rotational velocity
+ wr1 = (radi*omega[i][0] + radj*omega[j][0]);
+ wr2 = (radi*omega[i][1] + radj*omega[j][1]);
+ wr3 = (radi*omega[i][2] + radj*omega[j][2]);
+
+ // relative tangential velocities
+ vtr1 = vt1 - (nz*wr2-ny*wr3);
+ vtr2 = vt2 - (nx*wr3-nz*wr1);
+ vtr3 = vt3 - (ny*wr1-nx*wr2);
+ vrel = vtr1*vtr1 + vtr2*vtr2 + vtr3*vtr3;
+ vrel = sqrt(vrel);
+
+ if (normal_model[itype][jtype] == JKR) {
+ F_pulloff = 3*MY_PI*coh*Reff;
+ Fncrit = fabs(Fne + 2*F_pulloff);
+ } else if (normal_model[itype][jtype] == DMT) {
+ F_pulloff = 4*MY_PI*coh*Reff;
+ Fncrit = fabs(Fne + 2*F_pulloff);
+ } else {
+ Fncrit = fabs(Fntot);
+ }
+
+ //------------------------------
+ // tangential forces
+ //------------------------------
+ k_tangential = tangential_coeffs[itype][jtype][0];
+ damp_tangential = tangential_coeffs[itype][jtype][1]*damp_normal_prefactor;
+
+ if (tangential_history) {
+ if (tangential_model[itype][jtype] == TANGENTIAL_MINDLIN) {
+ k_tangential *= a;
+ } else if (tangential_model[itype][jtype] == TANGENTIAL_MINDLIN_RESCALE) {
+ k_tangential *= a;
+ // on unloading, rescale the shear displacements
+ if (a < history[3]) {
+ double factor = a/history[3];
+ history[0] *= factor;
+ history[1] *= factor;
+ history[2] *= factor;
+ }
+ }
+
+ shrmag = sqrt(history[0]*history[0] + history[1]*history[1] +
+ history[2]*history[2]);
+
+ // tangential forces = history + tangential velocity damping
+ fs1 = -k_tangential*history[0] - damp_tangential*vtr1;
+ fs2 = -k_tangential*history[1] - damp_tangential*vtr2;
+ fs3 = -k_tangential*history[2] - damp_tangential*vtr3;
+
+ // rescale frictional displacements and forces if needed
+ Fscrit = tangential_coeffs[itype][jtype][2] * Fncrit;
+ fs = sqrt(fs1*fs1 + fs2*fs2 + fs3*fs3);
+ if (fs > Fscrit) {
+ if (shrmag != 0.0) {
+ history[0] = -1.0/k_tangential*(Fscrit*fs1/fs + damp_tangential*vtr1);
+ history[1] = -1.0/k_tangential*(Fscrit*fs2/fs + damp_tangential*vtr2);
+ history[2] = -1.0/k_tangential*(Fscrit*fs3/fs + damp_tangential*vtr3);
+ fs1 *= Fscrit/fs;
+ fs2 *= Fscrit/fs;
+ fs3 *= Fscrit/fs;
+ } else fs1 = fs2 = fs3 = 0.0;
+ }
+
+ // classic pair gran/hooke (no history)
+ } else {
+ fs = meff*damp_tangential*vrel;
+ if (vrel != 0.0) Ft = MIN(Fne,fs) / vrel;
+ else Ft = 0.0;
+ fs1 = -Ft*vtr1;
+ fs2 = -Ft*vtr2;
+ fs3 = -Ft*vtr3;
+ }
+
+ //****************************************
+ // rolling resistance
+ //****************************************
+
+ if (roll_model[itype][jtype] != ROLL_NONE) {
+ relrot1 = omega[i][0] - omega[j][0];
+ relrot2 = omega[i][1] - omega[j][1];
+ relrot3 = omega[i][2] - omega[j][2];
+
+ // rolling velocity, see eq. 31 of Wang et al, Particuology v 23, p 49 (2015)
+ // this is different from the Marshall papers,
+ // which use the Bagi/Kuhn formulation
+ // for rolling velocity (see Wang et al for why the latter is wrong)
+
+ vrl1 = Reff*(relrot2*nz - relrot3*ny); //- 0.5*((radj-radi)/radsum)*vtr1;
+ vrl2 = Reff*(relrot3*nx - relrot1*nz); //- 0.5*((radj-radi)/radsum)*vtr2;
+ vrl3 = Reff*(relrot1*ny - relrot2*nx); //- 0.5*((radj-radi)/radsum)*vtr3;
+
+ int rhist0 = roll_history_index;
+ int rhist1 = rhist0 + 1;
+ int rhist2 = rhist1 + 1;
+
+ // rolling displacement
+ rollmag = sqrt(history[rhist0]*history[rhist0] +
+ history[rhist1]*history[rhist1] +
+ history[rhist2]*history[rhist2]);
+
+ k_roll = roll_coeffs[itype][jtype][0];
+ damp_roll = roll_coeffs[itype][jtype][1];
+ fr1 = -k_roll*history[rhist0] - damp_roll*vrl1;
+ fr2 = -k_roll*history[rhist1] - damp_roll*vrl2;
+ fr3 = -k_roll*history[rhist2] - damp_roll*vrl3;
+
+ // rescale frictional displacements and forces if needed
+ Frcrit = roll_coeffs[itype][jtype][2] * Fncrit;
+
+ fr = sqrt(fr1*fr1 + fr2*fr2 + fr3*fr3);
+ if (fr > Frcrit) {
+ if (rollmag != 0.0) {
+ fr1 *= Frcrit/fr;
+ fr2 *= Frcrit/fr;
+ fr3 *= Frcrit/fr;
+ } else fr1 = fr2 = fr3 = 0.0;
+ }
+
+ }
+
+ //****************************************
+ // twisting torque, including history effects
+ //****************************************
+
+ if (twist_model[itype][jtype] != TWIST_NONE) {
+ // omega_T (eq 29 of Marshall)
+ magtwist = relrot1*nx + relrot2*ny + relrot3*nz;
+ if (twist_model[itype][jtype] == TWIST_MARSHALL) {
+ k_twist = 0.5*k_tangential*a*a;; //eq 32
+ damp_twist = 0.5*damp_tangential*a*a;
+ mu_twist = TWOTHIRDS*a*tangential_coeffs[itype][jtype][2];;
+ } else {
+ k_twist = twist_coeffs[itype][jtype][0];
+ damp_twist = twist_coeffs[itype][jtype][1];
+ mu_twist = twist_coeffs[itype][jtype][2];
+ }
+ // M_t torque (eq 30)
+ magtortwist = -k_twist*history[twist_history_index] - damp_twist*magtwist;
+ signtwist = (magtwist > 0) - (magtwist < 0);
+ Mtcrit = mu_twist*Fncrit; // critical torque (eq 44)
+ if (fabs(magtortwist) > Mtcrit) {
+ magtortwist = -Mtcrit * signtwist; // eq 34
+ }
+ }
+
+ // set single_extra quantities
+
+ svector[0] = fs1;
+ svector[1] = fs2;
+ svector[2] = fs3;
+ svector[3] = fs;
+ svector[4] = fr1;
+ svector[5] = fr2;
+ svector[6] = fr3;
+ svector[7] = fr;
+ svector[8] = magtortwist;
+ svector[9] = delx;
+ svector[10] = dely;
+ svector[11] = delz;
+ return 0.0;
+}
+
+/* ---------------------------------------------------------------------- */
+
+int PairGranular::pack_forward_comm(int n, int *list, double *buf,
+ int /* pbc_flag */, int * /* pbc */)
+{
+ int i,j,m;
+
+ m = 0;
+ for (i = 0; i < n; i++) {
+ j = list[i];
+ buf[m++] = mass_rigid[j];
+ }
+ return m;
+}
+
+/* ---------------------------------------------------------------------- */
+
+void PairGranular::unpack_forward_comm(int n, int first, double *buf)
+{
+ int i,m,last;
+
+ m = 0;
+ last = first + n;
+ for (i = first; i < last; i++)
+ mass_rigid[i] = buf[m++];
+}
+
+/* ----------------------------------------------------------------------
+ memory usage of local atom-based arrays
+------------------------------------------------------------------------- */
+
+double PairGranular::memory_usage()
+{
+ double bytes = nmax * sizeof(double);
+ return bytes;
+}
+
+/* ----------------------------------------------------------------------
+ mixing of Young's modulus (E)
+------------------------------------------------------------------------- */
+
+double PairGranular::mix_stiffnessE(double Eii, double Ejj,
+ double poisii, double poisjj)
+{
+ return 1/((1-poisii*poisii)/Eii+(1-poisjj*poisjj)/Ejj);
+}
+
+/* ----------------------------------------------------------------------
+ mixing of shear modulus (G)
+------------------------------------------------------------------------ */
+
+double PairGranular::mix_stiffnessG(double Eii, double Ejj,
+ double poisii, double poisjj)
+{
+ return 1/((2*(2-poisii)*(1+poisii)/Eii) + (2*(2-poisjj)*(1+poisjj)/Ejj));
+}
+
+/* ----------------------------------------------------------------------
+ mixing of everything else
+------------------------------------------------------------------------- */
+
+double PairGranular::mix_geom(double valii, double valjj)
+{
+ return sqrt(valii*valjj);
+}
+
+
+/* ----------------------------------------------------------------------
+ compute pull-off distance (beyond contact) for a given radius and atom type
+------------------------------------------------------------------------- */
+
+double PairGranular::pulloff_distance(double radi, double radj,
+ int itype, int jtype)
+{
+ double E, coh, a, Reff;
+ Reff = radi*radj/(radi+radj);
+ if (Reff <= 0) return 0;
+ coh = normal_coeffs[itype][itype][3];
+ E = normal_coeffs[itype][jtype][0]*THREEQUARTERS;
+ a = cbrt(9*MY_PI*coh*Reff/(4*E));
+ return a*a/Reff - 2*sqrt(MY_PI*coh*a/E);
+}
+
+/* ----------------------------------------------------------------------
+ transfer history during fix/neigh/history exchange
+ only needed if any history entries i-j are not just negative of j-i entries
+------------------------------------------------------------------------- */
+
+void PairGranular::transfer_history(double* source, double* target)
+{
+ for (int i = 0; i < size_history; i++)
+ target[i] = history_transfer_factors[i]*source[i];
+}
diff --git a/src/GRANULAR/pair_granular.h b/src/GRANULAR/pair_granular.h
new file mode 100644
index 0000000000..d799acb733
--- /dev/null
+++ b/src/GRANULAR/pair_granular.h
@@ -0,0 +1,114 @@
+/* ----------------------------------------------------------
+ LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
+ http://lammps.sandia.gov, Sandia National Laboratories
+ Steve Plimpton, sjplimp@sandia.gov
+
+ Copyright (2003) Sandia Corporation. Under the terms of Contract
+ DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
+ certain rights in this software. This software is distributed under
+ the GNU General Public License.
+
+ See the README file in the top-level LAMMPS directory.
+------------------------------------------------------------------------- */
+
+#ifdef PAIR_CLASS
+
+PairStyle(granular,PairGranular)
+
+#else
+
+#ifndef LMP_PAIR_GRANULAR_H
+#define LMP_PAIR_GRANULAR_H
+
+#include "pair.h"
+
+namespace LAMMPS_NS {
+
+class PairGranular : public Pair {
+ public:
+ PairGranular(class LAMMPS *);
+ ~PairGranular();
+ void compute(int, int);
+ void settings(int, char **);
+ void coeff(int, char **);
+ void init_style();
+ double init_one(int, int);
+ void write_restart(FILE *);
+ void read_restart(FILE *);
+ void reset_dt();
+ double single(int, int, int, int, double, double, double, double &);
+ int pack_forward_comm(int, int *, double *, int, int *);
+ void unpack_forward_comm(int, int, double *);
+ double memory_usage();
+
+ protected:
+ double dt;
+ int freeze_group_bit;
+ int use_history;
+
+ int neighprev;
+ double *onerad_dynamic,*onerad_frozen;
+ double *maxrad_dynamic,*maxrad_frozen;
+ double **cut;
+
+ class FixNeighHistory *fix_history;
+
+ // storage of rigid body masses for use in granular interactions
+
+ class Fix *fix_rigid; // ptr to rigid body fix, NULL if none
+ double *mass_rigid; // rigid mass for owned+ghost atoms
+ int nmax; // allocated size of mass_rigid
+
+ void allocate();
+ void transfer_history(double*, double*);
+
+ private:
+ int size_history;
+ int *history_transfer_factors;
+
+ // model choices
+ int **normal_model, **damping_model;
+ int **tangential_model, **roll_model, **twist_model;
+
+ // history flags
+ int normal_history, tangential_history, roll_history, twist_history;
+
+ // indices of history entries
+ int normal_history_index;
+ int tangential_history_index;
+ int roll_history_index;
+ int twist_history_index;
+
+ // per-type material coefficients
+ double **Emod, **poiss, **Gmod;
+
+ // per-type coefficients, set in pair coeff command
+ double ***normal_coeffs;
+ double ***tangential_coeffs;
+ double ***roll_coeffs;
+ double ***twist_coeffs;
+
+ // optional user-specified global cutoff, per-type user-specified cutoffs
+ double **cutoff_type;
+ double cutoff_global;
+
+ double mix_stiffnessE(double, double, double, double);
+ double mix_stiffnessG(double, double, double, double);
+ double mix_geom(double, double);
+ double pulloff_distance(double, double, int, int);
+};
+
+}
+
+#endif
+#endif
+
+/* ERROR/WARNING messages:
+
+E: Illegal ... command
+
+Self-explanatory. Check the input script syntax and compare to the
+documentation for the command. You can use -echo screen as a
+command-line option when running LAMMPS to see the offending line.
+
+ */
diff --git a/src/KIM/kim_query.cpp b/src/KIM/kim_query.cpp
index 2e1f752dc1..7480703ce8 100644
--- a/src/KIM/kim_query.cpp
+++ b/src/KIM/kim_query.cpp
@@ -64,8 +64,10 @@
#include "input.h"
#include "variable.h"
+#if defined(LMP_KIM_CURL)
#include
#include
+#endif
using namespace LAMMPS_NS;
diff --git a/src/MAKE/Makefile.mpi b/src/MAKE/Makefile.mpi
index aebb465454..f30220da3d 100644
--- a/src/MAKE/Makefile.mpi
+++ b/src/MAKE/Makefile.mpi
@@ -12,7 +12,7 @@ SHFLAGS = -fPIC
DEPFLAGS = -M
LINK = mpicxx
-LINKFLAGS = -g -O
+LINKFLAGS = -g -O3
LIB =
SIZE = size
diff --git a/src/Makefile b/src/Makefile
index f1030ae08f..3be4e3e78f 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -275,7 +275,8 @@ mpi-stubs:
sinclude ../lib/python/Makefile.lammps
install-python:
- @$(PYTHON) ../python/install.py
+ @$(PYTHON) ../python/install.py -v ../src/version.h \
+ -m ../python/lammps.py -l ../src/liblammps.so
# Create a tarball of src dir and packages
diff --git a/src/Purge.list b/src/Purge.list
index 59c35efca5..a02697d2bf 100644
--- a/src/Purge.list
+++ b/src/Purge.list
@@ -25,6 +25,9 @@ style_ntopo.h
# other auto-generated files
lmpinstalledpkgs.h
lmpgitversion.h
+# removed on 15 March 2019
+fix_wall_gran_omp.h
+fix_wall_gran_omp.cpp
# renamed on 7 January 2019
pair_lebedeva.cpp
pair_lebedeva.h
diff --git a/src/REPLICA/fix_hyper_global.cpp b/src/REPLICA/fix_hyper_global.cpp
index d235b06dc0..6924fe2d93 100644
--- a/src/REPLICA/fix_hyper_global.cpp
+++ b/src/REPLICA/fix_hyper_global.cpp
@@ -32,12 +32,12 @@
using namespace LAMMPS_NS;
using namespace FixConst;
-#define DELTA 16384
+#define DELTABOND 16384
#define VECLEN 5
-// NOTE: count/output # of timesteps on which bias is non-zero
-// NOTE: should there be a virial contribution from boosted bond?
-// NOTE: allow newton off? see Note in pre_reverse()
+// possible enhancements
+// should there be a virial contribution from boosted bond?
+// allow newton off?
/* ---------------------------------------------------------------------- */
@@ -52,7 +52,7 @@ FixHyperGlobal::FixHyperGlobal(LAMMPS *lmp, int narg, char **arg) :
hyperflag = 1;
scalar_flag = 1;
vector_flag = 1;
- size_vector = 11;
+ size_vector = 12;
global_freq = 1;
extscalar = 0;
extvector = 0;
@@ -76,6 +76,7 @@ FixHyperGlobal::FixHyperGlobal(LAMMPS *lmp, int narg, char **arg) :
maxold = 0;
xold = NULL;
tagold = NULL;
+ old2now = NULL;
me = comm->me;
firstflag = 1;
@@ -94,6 +95,7 @@ FixHyperGlobal::~FixHyperGlobal()
memory->sfree(blist);
memory->destroy(xold);
memory->destroy(tagold);
+ memory->destroy(old2now);
}
/* ---------------------------------------------------------------------- */
@@ -102,7 +104,6 @@ int FixHyperGlobal::setmask()
{
int mask = 0;
mask |= PRE_NEIGHBOR;
- mask |= PRE_FORCE;
mask |= PRE_REVERSE;
mask |= THERMO_ENERGY;
return mask;
@@ -115,6 +116,7 @@ void FixHyperGlobal::init_hyper()
maxdriftsq = 0.0;
maxbondlen = 0.0;
nobias = 0;
+ negstrain = 0;
}
/* ---------------------------------------------------------------------- */
@@ -124,6 +126,10 @@ void FixHyperGlobal::init()
if (force->newton_pair == 0)
error->all(FLERR,"Hyper global requires newton pair on");
+ if (atom->molecular && me == 0)
+ error->warning(FLERR,"Hyper global for molecular systems "
+ "requires care in defining hyperdynamic bonds");
+
dt = update->dt;
// need an occasional half neighbor list
@@ -152,14 +158,16 @@ void FixHyperGlobal::setup_pre_neighbor()
void FixHyperGlobal::setup_pre_reverse(int eflag, int vflag)
{
- // no increment in nobias or hyper time when pre-run forces are calculated
+ // no increment in these quantities when pre-run forces are calculated
int nobias_hold = nobias;
+ int negstrain_hold = negstrain;
double t_hyper_hold = t_hyper;
pre_reverse(eflag,vflag);
nobias = nobias_hold;
+ negstrain = negstrain_hold;
t_hyper = t_hyper_hold;
}
@@ -167,35 +175,52 @@ void FixHyperGlobal::setup_pre_reverse(int eflag, int vflag)
void FixHyperGlobal::pre_neighbor()
{
- int m,iold,jold,ilocal,jlocal;
- double distsq;
+ int i,m,iold,jold,ilocal,jlocal;
+ // double distsq;
- // reset local IDs for owned bond atoms, since atoms have migrated
- // uses xold and tagold from when bonds were created
+ // reset local indices for owned bond atoms, since atoms have migrated
// must be done after ghost atoms are setup via comm->borders()
+ // first time this is done for a particular I or J atom:
+ // use tagold and xold from when bonds were created
+ // atom->map() finds atom ID if it exists, owned index if possible
+ // closest current I or J atoms to old I may now be ghost atoms
+ // closest_image() returns the ghost atom index in that case
+ // also compute max drift of any atom in a bond
+ // drift = displacement from quenched coord while event has not yet occured
+ // NOTE: drift calc is now done in bond_build(), between 2 quenched states
+
+ for (i = 0; i < nall_old; i++) old2now[i] = -1;
double **x = atom->x;
- int flag = 0;
-
for (m = 0; m < nblocal; m++) {
iold = blist[m].iold;
jold = blist[m].jold;
- ilocal = atom->map(tagold[iold]);
- jlocal = atom->map(tagold[jold]);
- ilocal = domain->closest_image(xold[iold],ilocal);
- jlocal = domain->closest_image(xold[iold],jlocal);
+ ilocal = old2now[iold];
+ jlocal = old2now[jold];
+
+ if (ilocal < 0) {
+ ilocal = atom->map(tagold[iold]);
+ ilocal = domain->closest_image(xold[iold],ilocal);
+ if (ilocal < 0)
+ error->one(FLERR,"Fix hyper/global bond atom not found");
+ old2now[iold] = ilocal;
+ //distsq = MathExtra::distsq3(x[ilocal],xold[iold]);
+ //maxdriftsq = MAX(distsq,maxdriftsq);
+ }
+ if (jlocal < 0) {
+ jlocal = atom->map(tagold[jold]);
+ jlocal = domain->closest_image(xold[iold],jlocal); // closest to iold
+ if (jlocal < 0)
+ error->one(FLERR,"Fix hyper/global bond atom not found");
+ old2now[jold] = jlocal;
+ //distsq = MathExtra::distsq3(x[jlocal],xold[jold]);
+ //maxdriftsq = MAX(distsq,maxdriftsq);
+ }
+
blist[m].i = ilocal;
blist[m].j = jlocal;
-
- if (ilocal < 0 || jlocal < 0) flag++;
- else {
- distsq = MathExtra::distsq3(x[ilocal],xold[iold]);
- maxdriftsq = MAX(distsq,maxdriftsq);
- }
}
-
- if (flag) error->one(FLERR,"Fix hyper/global bond atom not found");
}
/* ---------------------------------------------------------------------- */
@@ -204,15 +229,16 @@ void FixHyperGlobal::pre_reverse(int /* eflag */, int /* vflag */)
{
int i,j,m,imax,jmax;
double delx,dely,delz;
- double r,r0,estrain,rmax,r0max,emax,dt_boost;
- double vbias,fbias,fbiasr;
+ double r,r0,estrain,rmax,r0max,dt_boost;
+ double ebias,vbias,fbias,fbiasr;
// compute current strain of each owned bond
- // emax = maximum strain of any bond I own
+ // emax = maximum abs value of strain of any bond I own
// imax,jmax = local indices of my 2 atoms in that bond
+ // rmax,r0max = current and relaxed lengths of that bond
double **x = atom->x;
- emax = 0.0;
+ double emax = 0.0;
for (m = 0; m < nblocal; m++) {
i = blist[m].i;
@@ -255,9 +281,15 @@ void FixHyperGlobal::pre_reverse(int /* eflag */, int /* vflag */)
return;
}
- // I own the bond with max strain
- // compute Vbias and apply force to atoms imax,jmax
- // NOTE: logic would need to be different for newton off
+ // I own the bond with max absolute value of strain
+ // compute bias force on atoms imax,jmax if strain < q, else zero
+ // Ebias = current strain = (r-r0) / r0
+ // Vbias = bias potential = Vmax (1 - Ebias^2/q^2)
+ // Fbias = bias force as function of strain
+ // = -dVbias/dEbias = 2 Vmax Ebias / q^2
+ // Fix = x component of force on atom I
+ // = Fbias dEbias/dr dr/dxi, dEbias/dr = 1/r0, dr/dxi = delx/r
+ // dt_boost = time boost factor = exp(Vbias/kT)
double **f = atom->f;
@@ -265,15 +297,16 @@ void FixHyperGlobal::pre_reverse(int /* eflag */, int /* vflag */)
dt_boost = 1.0;
if (emax < qfactor) {
- vbias = vmax * (1.0 - emax*emax*invqfactorsq);
- fbias = 2.0 * vmax * emax / (qfactor*qfactor * r0max);
+ ebias = (rmax-r0max) / r0max;
+ vbias = vmax * (1.0 - ebias*ebias*invqfactorsq);
+ fbias = 2.0 * vmax * ebias * invqfactorsq;
dt_boost = exp(beta*vbias);
delx = x[imax][0] - x[jmax][0];
dely = x[imax][1] - x[jmax][1];
delz = x[imax][2] - x[jmax][2];
- fbiasr = fbias / rmax;
+ fbiasr = fbias / r0max / rmax;
f[imax][0] += delx*fbiasr;
f[imax][1] += dely*fbiasr;
f[imax][2] += delz*fbiasr;
@@ -281,6 +314,9 @@ void FixHyperGlobal::pre_reverse(int /* eflag */, int /* vflag */)
f[jmax][0] -= delx*fbiasr;
f[jmax][1] -= dely*fbiasr;
f[jmax][2] -= delz*fbiasr;
+
+ if (ebias < 0.0) negstrain++;
+
} else nobias++;
// output quantities
@@ -299,8 +335,8 @@ void FixHyperGlobal::pre_reverse(int /* eflag */, int /* vflag */)
void FixHyperGlobal::build_bond_list(int natom)
{
- int i,j,ii,jj,inum,jnum;
- double xtmp,ytmp,ztmp,delx,dely,delz,rsq;
+ int i,j,m,ii,jj,iold,jold,ilocal,jlocal,inum,jnum;
+ double xtmp,ytmp,ztmp,delx,dely,delz,rsq,distsq;
int *ilist,*jlist,*numneigh,**firstneigh;
if (natom) {
@@ -308,6 +344,27 @@ void FixHyperGlobal::build_bond_list(int natom)
nevent_atom += natom;
}
+ // compute max distance any bond atom has moved between 2 quenched states
+ // xold[iold] = last quenched coord for iold
+ // x[ilocal] = current quenched coord for same atom
+
+ double **x = atom->x;
+ int nlocal = atom->nlocal;
+ int nall = nlocal + atom->nghost;
+
+ for (m = 0; m < nblocal; m++) {
+ iold = blist[m].iold;
+ ilocal = atom->map(tagold[iold]);
+ ilocal = domain->closest_image(xold[iold],ilocal);
+ distsq = MathExtra::distsq3(x[ilocal],xold[iold]);
+ maxdriftsq = MAX(distsq,maxdriftsq);
+ jold = blist[m].jold;
+ jlocal = atom->map(tagold[jold]);
+ jlocal = domain->closest_image(xold[iold],jlocal);
+ distsq = MathExtra::distsq3(x[jlocal],xold[jold]);
+ maxdriftsq = MAX(distsq,maxdriftsq);
+ }
+
// trigger neighbor list build
neighbor->build_one(list);
@@ -315,7 +372,6 @@ void FixHyperGlobal::build_bond_list(int natom)
// identify bonds assigned to each owned atom
// do not create a bond between two non-group atoms
- double **x = atom->x;
int *mask = atom->mask;
inum = list->inum;
@@ -358,26 +414,26 @@ void FixHyperGlobal::build_bond_list(int natom)
}
}
- // store IDs and coords for owned+ghost atoms at time of bond creation
- // realloc xold and tagold as needed
+ // store per-atom quantities for owned+ghost atoms at time of bond creation
+ // nall_old = value of nall at time bonds are built
- if (atom->nmax > maxold) {
+ tagint *tag = atom->tag;
+
+ if (nall > maxold) {
memory->destroy(xold);
memory->destroy(tagold);
+ memory->destroy(old2now);
maxold = atom->nmax;
memory->create(xold,maxold,3,"hyper/global:xold");
memory->create(tagold,maxold,"hyper/global:tagold");
+ memory->create(old2now,maxold,"hyper/global:old2now");
}
- tagint *tag = atom->tag;
- int nall = atom->nlocal + atom->nghost;
+ memcpy(&xold[0][0],&x[0][0],3*nall*sizeof(double));
+ for (i = 0; i < nall; i++) tagold[i] = tag[i];
- for (i = 0; i < nall; i++) {
- xold[i][0] = x[i][0];
- xold[i][1] = x[i][1];
- xold[i][2] = x[i][2];
- tagold[i] = tag[i];
- }
+ nlocal_old = nlocal;
+ nall_old = nall;
}
/* ----------------------------------------------------------------------
@@ -386,14 +442,11 @@ void FixHyperGlobal::build_bond_list(int natom)
void FixHyperGlobal::grow_bond()
{
- // NOTE: could add int arg to do initial large alloc:
- // maxbond = maxbond/DELTA * DELTA; maxbond += DELTA;
-
- maxbond += DELTA;
- if (maxbond < 0 || maxbond > MAXSMALLINT)
- error->one(FLERR,"Fix hyper/local per-processor bond count is too big");
+ if (maxbond + DELTABOND > MAXSMALLINT)
+ error->one(FLERR,"Fix hyper/global bond count is too big");
+ maxbond += DELTABOND;
blist = (OneBond *)
- memory->srealloc(blist,maxbond*sizeof(OneBond),"hyper/local:blist");
+ memory->srealloc(blist,maxbond*sizeof(OneBond),"hyper/global:blist");
}
/* ---------------------------------------------------------------------- */
@@ -416,21 +469,22 @@ double FixHyperGlobal::compute_vector(int i)
bcastflag = 0;
}
- // 11 vector outputs returned for i = 0-10
+ // 12 vector outputs returned for i = 0-11
// i = 0 = boost factor on this step
- // i = 1 = max strain of any bond on this step
+ // i = 1 = max strain of any bond on this step (positive or negative)
// i = 2 = ID of atom I in max-strain bond on this step
// i = 3 = ID of atom J in max-strain bond on this step
// i = 4 = ave bonds/atom on this step
- // i = 5 = fraction of steps with no bias during this run
- // i = 6 = max drift of any atom during this run
- // i = 7 = max bond length during this run
+ // i = 5 = fraction of steps where bond has no bias during this run
+ // i = 6 = fraction of steps where bond has negative strain during this run
+ // i = 7 = max drift distance of any atom during this run
+ // i = 8 = max bond length during this run
- // i = 8 = cummulative hyper time since fix created
- // i = 9 = cummulative # of event timesteps since fix created
- // i = 10 = cummulative # of atoms in events since fix created
+ // i = 9 = cummulative hyper time since fix created
+ // i = 10 = cummulative # of event timesteps since fix created
+ // i = 11 = cummulative # of atoms in events since fix created
if (i == 0) return outvec[1];
if (i == 1) return outvec[2];
@@ -438,8 +492,9 @@ double FixHyperGlobal::compute_vector(int i)
if (i == 3) return outvec[4];
if (i == 4) {
- int allbonds; // NOTE: bigint?
- MPI_Allreduce(&nblocal,&allbonds,1,MPI_INT,MPI_SUM,world);
+ bigint mybonds = nblocal;
+ bigint allbonds;
+ MPI_Allreduce(&mybonds,&allbonds,1,MPI_LMP_BIGINT,MPI_SUM,world);
return 2.0*allbonds/atom->natoms;
}
@@ -451,20 +506,27 @@ double FixHyperGlobal::compute_vector(int i)
}
if (i == 6) {
+ if (update->ntimestep == update->firststep) return 0.0;
+ int allnegstrain;
+ MPI_Allreduce(&negstrain,&allnegstrain,1,MPI_INT,MPI_SUM,world);
+ return 1.0*allnegstrain / (update->ntimestep - update->firststep);
+ }
+
+ if (i == 7) {
double alldriftsq;
MPI_Allreduce(&maxdriftsq,&alldriftsq,1,MPI_DOUBLE,MPI_MAX,world);
return sqrt(alldriftsq);
}
- if (i == 7) {
+ if (i == 8) {
double allbondlen;
MPI_Allreduce(&maxbondlen,&allbondlen,1,MPI_DOUBLE,MPI_MAX,world);
return allbondlen;
}
- if (i == 8) return t_hyper;
- if (i == 9) return (double) nevent;
- if (i == 10) return (double) nevent_atom;
+ if (i == 9) return t_hyper;
+ if (i == 10) return (double) nevent;
+ if (i == 11) return (double) nevent_atom;
return 0.0;
}
@@ -476,13 +538,14 @@ double FixHyperGlobal::compute_vector(int i)
double FixHyperGlobal::query(int i)
{
- if (i == 1) return compute_vector(8); // cummulative hyper time
- if (i == 2) return compute_vector(9); // nevent
- if (i == 3) return compute_vector(10); // nevent_atom
+ if (i == 1) return compute_vector(9); // cummulative hyper time
+ if (i == 2) return compute_vector(10); // nevent
+ if (i == 3) return compute_vector(11); // nevent_atom
if (i == 4) return compute_vector(4); // ave bonds/atom
- if (i == 5) return compute_vector(6); // maxdrift
- if (i == 6) return compute_vector(7); // maxbondlen
+ if (i == 5) return compute_vector(7); // maxdrift
+ if (i == 6) return compute_vector(8); // maxbondlen
if (i == 7) return compute_vector(5); // fraction with zero bias
+ if (i == 8) return compute_vector(6); // fraction with negative strain
error->all(FLERR,"Invalid query to fix hyper/global");
diff --git a/src/REPLICA/fix_hyper_global.h b/src/REPLICA/fix_hyper_global.h
index d8b1cef425..a62f80b54a 100644
--- a/src/REPLICA/fix_hyper_global.h
+++ b/src/REPLICA/fix_hyper_global.h
@@ -56,6 +56,7 @@ class FixHyperGlobal : public FixHyper {
double maxbondlen; // max length of any bond
double maxdriftsq; // max distance any atom drifts from original pos
int nobias; // # of steps when bias = 0, b/c bond too long
+ int negstrain; // # of steps when biased bond has negative strain
class NeighList *list;
@@ -70,16 +71,19 @@ class FixHyperGlobal : public FixHyper {
double r0; // relaxed bond length
};
- struct OneBond *blist; // list of owned bonds
- int nblocal; // # of owned bonds
+ OneBond *blist; // list of owned bonds
+ int nblocal; // # of owned bonds
// coords and IDs of owned+ghost atoms when bonds were formed
// persists on a proc from one event until the next
+ int nlocal_old; // nlocal for old atoms
+ int nall_old; // nlocal+nghost for old atoms
int maxold; // allocated size of old atoms
double **xold; // coords of atoms when bonds were formed
- tagint *tagold; // IDs of atoms when bonds were formed
+ tagint *tagold; // IDs of atoms when bonds were forme
+ int *old2now; // o2n[i] = current local index of old atom I
// MPI data struct for finding bond with max strain via Allreduce
diff --git a/src/REPLICA/fix_hyper_local.cpp b/src/REPLICA/fix_hyper_local.cpp
index 60198f4ddf..dc7a0b94b9 100644
--- a/src/REPLICA/fix_hyper_local.cpp
+++ b/src/REPLICA/fix_hyper_local.cpp
@@ -1,4 +1,4 @@
-/* ----------------------------------------------------------------------
+ /* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
@@ -33,33 +33,28 @@
using namespace LAMMPS_NS;
using namespace FixConst;
-#define DELTABOOST 16
-#define BOOSTINIT 1.0
-#define COEFFMAX 1.2
+#define DELTABOND 16384
+#define DELTABIAS 16
+#define COEFFINIT 1.0
+#define FCCBONDS 12
#define BIG 1.0e20
-enum{STRAIN,STRAINREGION,BIASFLAG};
+enum{STRAIN,STRAINDOMAIN,BIASFLAG,BIASCOEFF};
enum{IGNORE,WARN,ERROR};
/* ---------------------------------------------------------------------- */
FixHyperLocal::FixHyperLocal(LAMMPS *lmp, int narg, char **arg) :
- FixHyper(lmp, narg, arg), old2now(NULL), xold(NULL), tagold(NULL),
- bonds(NULL), numbond(NULL), maxstrain(NULL), maxstrain_region(NULL),
- maxstrain_bondindex(NULL), biasflag(NULL), boost(NULL),
- histo(NULL), allhisto(NULL)
+ FixHyper(lmp, narg, arg), blist(NULL), biascoeff(NULL), numbond(NULL),
+ maxhalf(NULL), eligible(NULL), maxhalfstrain(NULL), old2now(NULL),
+ tagold(NULL), xold(NULL), maxstrain(NULL), maxstrain_domain(NULL),
+ biasflag(NULL), bias(NULL), cpage(NULL), clist(NULL), numcoeff(NULL)
{
// error checks
- // solution for tagint != int is to worry about storing
- // local index vs global ID in same variable
- // maybe need to declare them all tagint, not int
if (atom->map_style == 0)
error->all(FLERR,"Fix hyper/local command requires atom map");
- if (sizeof(tagint) != sizeof(int))
- error->all(FLERR,"Fix hyper/local requires tagint = int");
-
// parse args
if (narg < 10) error->all(FLERR,"Illegal fix hyper/local command");
@@ -67,7 +62,11 @@ FixHyperLocal::FixHyperLocal(LAMMPS *lmp, int narg, char **arg) :
hyperflag = 2;
scalar_flag = 1;
vector_flag = 1;
- size_vector = 23;
+ size_vector = 21;
+ local_flag = 1;
+ size_local_rows = 0;
+ size_local_cols = 0;
+ local_freq = 1;
global_freq = 1;
extscalar = 0;
@@ -79,10 +78,10 @@ FixHyperLocal::FixHyperLocal(LAMMPS *lmp, int narg, char **arg) :
tequil = force->numeric(FLERR,arg[6]);
dcut = force->numeric(FLERR,arg[7]);
alpha_user = force->numeric(FLERR,arg[8]);
- boosttarget = force->numeric(FLERR,arg[9]);
+ boost_target = force->numeric(FLERR,arg[9]);
if (cutbond < 0.0 || qfactor < 0.0 || vmax < 0.0 ||
- tequil <= 0.0 || dcut <= 0.0 || alpha_user <= 0.0 || boosttarget < 1.0)
+ tequil <= 0.0 || dcut <= 0.0 || alpha_user <= 0.0 || boost_target < 1.0)
error->all(FLERR,"Illegal fix hyper/local command");
invqfactorsq = 1.0 / (qfactor*qfactor);
@@ -92,35 +91,14 @@ FixHyperLocal::FixHyperLocal(LAMMPS *lmp, int narg, char **arg) :
// optional args
- histoflag = 0;
- lostbond = IGNORE;
+ checkghost = 0;
checkbias = 0;
- checkcoeff = 0;
int iarg = 10;
while (iarg < narg) {
- /* NOTE: do not enable this yet, need to think about it differently
- if (strcmp(arg[iarg],"histo") == 0) {
- if (iarg+5 > narg) error->all(FLERR,"Illegal fix hyper/local command");
- histoflag = 1;
- histo_every = force->inumeric(FLERR,arg[iarg+1]);
- histo_count = force->inumeric(FLERR,arg[iarg+2]);
- histo_delta = force->numeric(FLERR,arg[iarg+3]);
- histo_print = force->inumeric(FLERR,arg[iarg+4]);
- if (histo_every <= 0 || histo_count % 2 ||
- histo_delta <= 0.0 || histo_print <= 0)
- error->all(FLERR,"Illegal fix hyper/local command");
- iarg += 5;
- */
-
- if (strcmp(arg[iarg],"lostbond") == 0) {
- if (iarg+2 > narg) error->all(FLERR,"Illegal fix hyper/local command");
- if (strcmp(arg[iarg+1],"error") == 0) lostbond = ERROR;
- else if (strcmp(arg[iarg+1],"warn") == 0) lostbond = WARN;
- else if (strcmp(arg[iarg+1],"ignore") == 0) lostbond = IGNORE;
- else error->all(FLERR,"Illegal fix hyper/local command");
- iarg += 2;
-
+ if (strcmp(arg[iarg],"check/ghost") == 0) {
+ checkghost = 1;
+ iarg++;
} else if (strcmp(arg[iarg],"check/bias") == 0) {
if (iarg+3 > narg) error->all(FLERR,"Illegal fix hyper/local command");
checkbias = 1;
@@ -130,57 +108,59 @@ FixHyperLocal::FixHyperLocal(LAMMPS *lmp, int narg, char **arg) :
else if (strcmp(arg[iarg+2],"ignore") == 0) checkbias_flag = IGNORE;
else error->all(FLERR,"Illegal fix hyper/local command");
iarg += 3;
-
- } else if (strcmp(arg[iarg],"check/coeff") == 0) {
- if (iarg+3 > narg) error->all(FLERR,"Illegal fix hyper/local command");
- checkcoeff = 1;
- checkcoeff_every = force->inumeric(FLERR,arg[iarg+1]);
- if (strcmp(arg[iarg+2],"error") == 0) checkcoeff_flag = ERROR;
- else if (strcmp(arg[iarg+2],"warn") == 0) checkcoeff_flag = WARN;
- else if (strcmp(arg[iarg+2],"ignore") == 0) checkcoeff_flag = IGNORE;
- else error->all(FLERR,"Illegal fix hyper/local command");
- iarg += 3;
-
} else error->all(FLERR,"Illegal fix hyper/local command");
}
// per-atom data structs
- maxbond = 0;
- bonds = NULL;
- numbond = NULL;
+ maxbond = nblocal = 0;
+ blist = NULL;
+ biascoeff = NULL;
+ allbonds = 0;
+
+ maxatom = 0;
maxstrain = NULL;
- maxstrain_region = NULL;
- maxstrain_bondindex = NULL;
+ maxstrain_domain = NULL;
biasflag = NULL;
- maxold = old_nall = 0;
- old2now = NULL;
- xold = NULL; // NOTE: don't really need except to monitor drift
+ maxlocal = nlocal_old = 0;
+ numbond = NULL;
+ maxhalf = NULL;
+ eligible = NULL;
+ maxhalfstrain = NULL;
+
+ maxall = nall_old = 0;
+ xold = NULL;
tagold = NULL;
+ old2now = NULL;
- nboost = maxboost = 0;
- boost = NULL;
+ nbias = maxbias = 0;
+ bias = NULL;
+ // data structs for persisting bias coeffs when bond list is reformed
// maxbondperatom = max # of bonds any atom is part of
- // will be reset in bond_build()
- // set comm size needed by this fix
+ // FCCBONDS = 12 is a good estimate for fcc lattices
+ // will be reset in build_bond() if necessary
+
+ maxcoeff = 0;
+ maxbondperatom = FCCBONDS;
+ numcoeff = NULL;
+ clist = NULL;
+ cpage = new MyPage;
+ cpage->init(maxbondperatom,1024*maxbondperatom,1);
+
+ // set comm sizes needed by this fix
+ // reverse = 2 is for sending atom index + value, though total likely < 1
+ // reverse comm for bias coeffs has variable size, so not tallied here
- maxbondperatom = 1;
comm_forward = 1;
- comm_reverse = 1;
-
- // perform initial allocation of atom-based arrays
- // register with Atom class
-
- grow_arrays(atom->nmax);
- atom->add_callback(0);
+ comm_reverse = 2;
me = comm->me;
firstflag = 1;
- allbonds = 0;
- allboost = 0.0;
+ sumbiascoeff = 0.0;
+ avebiascoeff = 0.0;
starttime = update->ntimestep;
nostrainyet = 1;
@@ -188,36 +168,33 @@ FixHyperLocal::FixHyperLocal(LAMMPS *lmp, int narg, char **arg) :
nevent = 0;
nevent_atom = 0;
mybias = 0.0;
-
- histo = allhisto = NULL;
- if (histoflag) {
- invhisto_delta = 1.0 / histo_delta;
- histo_lo = 1.0 - (histo_count/2 * histo_delta);
- histo = new bigint[histo_count+2];
- allhisto = new bigint[histo_count+2];
- }
}
/* ---------------------------------------------------------------------- */
FixHyperLocal::~FixHyperLocal()
{
- memory->destroy(bonds);
- memory->destroy(numbond);
-
- atom->delete_callback(id,0);
+ memory->destroy(blist);
+ memory->destroy(biascoeff);
memory->destroy(maxstrain);
- memory->destroy(maxstrain_region);
- memory->destroy(maxstrain_bondindex);
+ memory->destroy(maxstrain_domain);
memory->destroy(biasflag);
- memory->destroy(old2now);
+ memory->destroy(numbond);
+ memory->destroy(maxhalf);
+ memory->destroy(eligible);
+ memory->destroy(maxhalfstrain);
+
memory->destroy(xold);
memory->destroy(tagold);
- memory->destroy(boost);
- delete [] histo;
- delete [] allhisto;
+ memory->destroy(old2now);
+
+ memory->destroy(bias);
+
+ memory->destroy(numcoeff);
+ memory->sfree(clist);
+ delete cpage;
}
/* ---------------------------------------------------------------------- */
@@ -237,24 +214,20 @@ int FixHyperLocal::setmask()
void FixHyperLocal::init_hyper()
{
ghost_toofar = 0;
- lostbond_partner = 0;
- lostbond_coeff = 0.0;
checkbias_count = 0;
- checkcoeff_count = 0;
maxdriftsq = 0.0;
maxbondlen = 0.0;
- maxboostcoeff = 0.0;
- minboostcoeff = BIG;
- sumboostcoeff = 0.0;
- nboost_running = 0;
+ avebiascoeff = 0.0;
+ minbiascoeff = BIG;
+ maxbiascoeff = 0.0;
+ nbias_running = 0;
nobias_running = 0;
+ negstrain_running = 0;
rmaxever = 0.0;
rmaxeverbig = 0.0;
nbondbuild = 0;
time_bondbuild = 0.0;
-
- if (histoflag) histo_steps = 0;
}
/* ---------------------------------------------------------------------- */
@@ -262,7 +235,7 @@ void FixHyperLocal::init_hyper()
void FixHyperLocal::init()
{
// for newton off, bond force bias will not be applied correctly
- // bonds that straddle 2 procs
+ // for bonds that straddle 2 procs
// warn if molecular system, since near-neighbors may not appear in neigh list
// user should not be including bonded atoms as hyper "bonds"
@@ -271,7 +244,7 @@ void FixHyperLocal::init()
if (atom->molecular && me == 0)
error->warning(FLERR,"Hyper local for molecular systems "
- "requires care in defining hyperdynamics bonds");
+ "requires care in defining hyperdynamic bonds");
// cutghost = communication cutoff as calculated by Neighbor and Comm
// error if cutghost is smaller than Dcut
@@ -285,30 +258,43 @@ void FixHyperLocal::init()
cutghost = comm->cutghostuser;
if (cutghost < dcut)
- error->all(FLERR,"Fix hyper/local bond cutoff exceeds ghost atom range - "
+ error->all(FLERR,"Fix hyper/local domain cutoff exceeds ghost atom range - "
"use comm_modify cutoff command");
if (cutghost < dcut+cutbond/2.0 && me == 0)
error->warning(FLERR,"Fix hyper/local ghost atom range "
"may not allow for atom drift between events");
}
-
alpha = update->dt / alpha_user;
- // need an occasional full neighbor list with cutoff = Dcut
+ // need occasional full neighbor list with cutoff = Dcut
+ // used for finding maxstrain of neighbor bonds out to Dcut
// do not need to include neigh skin in cutoff,
- // b/c this list will be built every time bond_build() is called
+ // b/c this list will be built every time build_bond() is called
// NOTE: what if pair style list cutoff > Dcut
// or what if neigh skin is huge?
- int irequest = neighbor->request(this,instance_me);
- neighbor->requests[irequest]->pair = 0;
- neighbor->requests[irequest]->fix = 1;
- neighbor->requests[irequest]->half = 0;
- neighbor->requests[irequest]->full = 1;
- neighbor->requests[irequest]->cut = 1;
- neighbor->requests[irequest]->cutoff = dcut;
- neighbor->requests[irequest]->occasional = 1;
+ int irequest_full = neighbor->request(this,instance_me);
+ neighbor->requests[irequest_full]->id = 1;
+ neighbor->requests[irequest_full]->pair = 0;
+ neighbor->requests[irequest_full]->fix = 1;
+ neighbor->requests[irequest_full]->half = 0;
+ neighbor->requests[irequest_full]->full = 1;
+ neighbor->requests[irequest_full]->cut = 1;
+ neighbor->requests[irequest_full]->cutoff = dcut;
+ neighbor->requests[irequest_full]->occasional = 1;
+
+ // also need occasional half neighbor list derived from pair style
+ // used for building local bond list
+ // no specified cutoff, should be longer than cutbond
+ // this list will also be built (or derived/copied)
+ // every time build_bond() is called
+
+ int irequest_half = neighbor->request(this,instance_me);
+ neighbor->requests[irequest_half]->id = 2;
+ neighbor->requests[irequest_half]->pair = 0;
+ neighbor->requests[irequest_half]->fix = 1;
+ neighbor->requests[irequest_half]->occasional = 1;
// extra timing output
@@ -318,16 +304,17 @@ void FixHyperLocal::init()
/* ---------------------------------------------------------------------- */
-void FixHyperLocal::init_list(int /* id */, NeighList *ptr)
+void FixHyperLocal::init_list(int id, NeighList *ptr)
{
- list = ptr;
+ if (id == 1) listfull = ptr;
+ else if (id == 2) listhalf = ptr;
}
/* ---------------------------------------------------------------------- */
void FixHyperLocal::setup_pre_neighbor()
{
- // called for dynamics and minimization NOTE: check if min is needed?
+ // called for dynamics and minimization
pre_neighbor();
}
@@ -337,8 +324,9 @@ void FixHyperLocal::setup_pre_neighbor()
void FixHyperLocal::setup_pre_reverse(int eflag, int vflag)
{
// only called for dynamics, not minimization
- // setupflag prevents boostostat update of boost coeffs in setup
- // also prevents increments of nboost_running, nbias_running, sumboostcoeff
+ // setupflag prevents boostostat update of bias coeffs in setup
+ // also prevents increments of nbias_running, nobias_running,
+ // negstrain_running, sumbiascoeff
setupflag = 1;
pre_reverse(eflag,vflag);
@@ -349,67 +337,68 @@ void FixHyperLocal::setup_pre_reverse(int eflag, int vflag)
void FixHyperLocal::pre_neighbor()
{
- int i,m,n,ilocal,jlocal;
+ int i,m,iold,jold,ilocal,jlocal;
+ // double distsq;
- // convert global ID bond partners back to local indices
- // need to use closest_image() so can calculate bond lengths
- // error flag should not happen for a well-behaved system
- // b/c are only looking up bond partners inside or near my sub-domain
+ // reset local indices for owned bond atoms, since atoms have migrated
+ // must be done after ghost atoms are setup via comm->borders()
+ // first time this is done for a particular I or J atom:
+ // use tagold and xold from when bonds were created
+ // atom->map() finds atom ID if it exists, owned index if possible
+ // closest current I or J atoms to old I may now be ghost atoms
+ // closest_image() returns the ghost atom index in that case
+ // also compute max drift of any atom in a bond
+ // drift = displacement from quenched coord while event has not yet occured
+ // NOTE: drift calc is now done in bond_build(), between 2 quenched states
+
+ for (i = 0; i < nall_old; i++) old2now[i] = -1;
double **x = atom->x;
- int nlocal = atom->nlocal;
- int missing = 0;
- double missing_coeff = 0.0;
+ for (m = 0; m < nblocal; m++) {
+ iold = blist[m].iold;
+ jold = blist[m].jold;
+ ilocal = old2now[iold];
+ jlocal = old2now[jold];
- for (i = 0; i < nlocal; i++) {
- n = numbond[i];
- for (m = 0; m < n; m++) {
- jlocal = atom->map(bonds[i][m].jtag);
- if (jlocal >= 0) bonds[i][m].j = domain->closest_image(i,jlocal);
- else {
- bonds[i][m].j = -1;
- missing++;
- missing_coeff += bonds[i][m].boostcoeff;
- if (lostbond != IGNORE) {
- char str[128];
- sprintf(str,"Fix hyper/local bond info missing for bond "
- TAGINT_FORMAT "," TAGINT_FORMAT
- " with coeff %g at step " BIGINT_FORMAT,
- atom->tag[i],bonds[i][m].jtag,bonds[i][m].boostcoeff,
- update->ntimestep);
- if (lostbond == ERROR) error->one(FLERR,str);
- if (lostbond == WARN) error->warning(FLERR,str);
- }
- }
+ if (ilocal < 0) {
+ ilocal = atom->map(tagold[iold]);
+ ilocal = domain->closest_image(xold[iold],ilocal);
+ if (ilocal < 0)
+ error->one(FLERR,"Fix hyper/local bond atom not found");
+ old2now[iold] = ilocal;
+ //distsq = MathExtra::distsq3(x[ilocal],xold[iold]);
+ //maxdriftsq = MAX(distsq,maxdriftsq);
}
+ if (jlocal < 0) {
+ jlocal = atom->map(tagold[jold]);
+ jlocal = domain->closest_image(xold[iold],jlocal); // close to I atom
+ if (jlocal < 0)
+ error->one(FLERR,"Fix hyper/local bond atom not found");
+ old2now[jold] = jlocal;
+ //distsq = MathExtra::distsq3(x[jlocal],xold[jold]);
+ //maxdriftsq = MAX(distsq,maxdriftsq);
+ }
+
+ blist[m].i = ilocal;
+ blist[m].j = jlocal;
}
- lostbond_partner += missing;
- lostbond_coeff += missing_coeff;
-
- // set old2now to point to current local atom indices
+ // set remaining old2now values to point to current local atom indices
+ // if old2now >= 0, already set by bond loop above
// only necessary for tagold entries > 0
// because if tagold = 0, atom is not active in Dcut neighbor list
// must be done after atoms migrate and ghost atoms setup via comm->borders()
- // does not matter if there are multiple ghost copies of a global ID
- // since only need the ghost atom strain, not its coordinates
- // NOTE: maybe need not use closest image, b/c old2now only used to access
- // maxstrain values, which will be same for any copy of ghost atom ??
- // also need it to compute maxdriftsq correctly when a proc spans a PBC
+ // does not matter which atom (owned or ghost) that atom->map() finds
+ // b/c old2now is only used to access maxstrain() or biasflag()
+ // which will be identical for every copy of the same atom ID
- double distsq;
-
- for (i = 0; i < old_nall; i++) {
- if (tagold[i] == 0) continue;
- ilocal = atom->map(tagold[i]);
- ilocal = domain->closest_image(xold[i],ilocal);
- old2now[i] = ilocal;
-
- if (ilocal >= 0) {
- distsq = MathExtra::distsq3(x[ilocal],xold[i]);
- maxdriftsq = MAX(distsq,maxdriftsq);
- } else ghost_toofar++;
+ for (iold = 0; iold < nall_old; iold++) {
+ if (old2now[iold] >= 0) continue;
+ if (tagold[iold] == 0) continue;
+ ilocal = atom->map(tagold[iold]);
+ old2now[iold] = ilocal;
+ if (ilocal < 0) ghost_toofar++;
}
}
@@ -417,223 +406,262 @@ void FixHyperLocal::pre_neighbor()
void FixHyperLocal::pre_reverse(int /* eflag */, int /* vflag */)
{
- int i,j,m,ii,jj,inum,jnum,iold,jold,nbond,bondindex;
- tagint itag,jtag;
+ int i,j,m,ii,jj,inum,jnum,iold,jold,ibond,nbond,ijhalf,ncount;
double xtmp,ytmp,ztmp,delx,dely,delz;
- double r,r0,estrain,emax,vbias,fbias,fbiasr,boostcoeff;
+ double r,r0,estrain,emax,ebias,vbias,fbias,fbiasr;
+ double halfstrain,selfstrain;
int *ilist,*jlist,*numneigh,**firstneigh;
//double time1,time2,time3,time4,time5,time6,time7,time8;
//time1 = MPI_Wtime();
- // compute current maxstrain and maxstrain_bond for each owned atom
- // use per-atom full bond list
- // this is double-calculating for IJ and JI bonds
- // could compute once, but would have to find/store index of JI bond
- // order two I,J atoms consistently for IJ and JI calcs
- // to insure no round-off issue when comparing maxstrain values of I,J
-
- double **x = atom->x;
- tagint *tag = atom->tag;
- int nlocal = atom->nlocal;
-
- int mybonds = 0;
nostrainyet = 0;
- for (i = 0; i < nlocal; i++) {
- xtmp = x[i][0];
- ytmp = x[i][1];
- ztmp = x[i][2];
- itag = tag[i];
- emax = 0.0;
- bondindex = -1;
- jtag = 0;
+ // reallocate per-atom maxstrain and biasflag vectors if necessary
- nbond = numbond[i];
- mybonds += nbond;
- for (m = 0; m < nbond; m++) {
- j = bonds[i][m].j;
- if (j < 0) continue;
- jtag = bonds[i][m].jtag;
- r0 = bonds[i][m].r0;
- if (itag < jtag) {
- delx = xtmp - x[j][0];
- dely = ytmp - x[j][1];
- delz = ztmp - x[j][2];
- } else {
- delx = x[j][0] - xtmp;
- dely = x[j][1] - ytmp;
- delz = x[j][2] - ztmp;;
- }
+ int nlocal = atom->nlocal;
+ int nall = nlocal + atom->nghost;
+
+ if (maxatom < nall) {
+ memory->destroy(maxstrain);
+ memory->destroy(maxstrain_domain);
+ if (checkbias) memory->destroy(biasflag);
+ maxatom = atom->nmax;
+ memory->create(maxstrain,maxatom,"hyper/local:maxstrain");
+ memory->create(maxstrain_domain,maxatom,"hyper/local:maxstrain_domain");
+ if (checkbias) memory->create(biasflag,maxatom,"hyper/local:biasflag");
+ }
+
+ // one max strain bond per old owned atom is eligible for biasing
+
+ for (iold = 0; iold < nlocal_old; iold++) eligible[iold] = 1;
+
+ // -------------------------------------------------------------
+ // stage 1:
+ // maxstrain[i] = max abs value of strain of any bond atom I is part of
+ // reverse/forward comm so know it for all current owned and ghost atoms
+ // -------------------------------------------------------------
+
+ // compute estrain = current abs value strain of each owned bond
+ // blist = bondlist from last event
+ // mark atom I ineligible if it has no bonds
+ // also store:
+ // maxhalf = which owned bond is maxstrain for each old atom I
+ // maxhalfstrain = abs value strain of that bond for each old atom I
+
+ for (i = 0; i < nall; i++) maxstrain[i] = 0.0;
+
+ double **x = atom->x;
+
+ m = 0;
+ for (iold = 0; iold < nlocal_old; iold++) {
+ nbond = numbond[iold];
+ if (!nbond) {
+ eligible[iold] = 0;
+ continue;
+ }
+ halfstrain = 0.0;
+ for (ibond = 0; ibond < nbond; ibond++) {
+ i = blist[m].i;
+ j = blist[m].j;
+ delx = x[i][0] - x[j][0];
+ dely = x[i][1] - x[j][1];
+ delz = x[i][2] - x[j][2];
r = sqrt(delx*delx + dely*dely + delz*delz);
maxbondlen = MAX(r,maxbondlen);
+ r0 = blist[m].r0;
estrain = fabs(r-r0) / r0;
- if (estrain > emax) {
- emax = estrain;
- bondindex = m;
+ maxstrain[i] = MAX(maxstrain[i],estrain);
+ maxstrain[j] = MAX(maxstrain[j],estrain);
+ if (estrain > halfstrain) {
+ halfstrain = estrain;
+ ijhalf = m;
}
+ m++;
}
- maxstrain[i] = emax;
- maxstrain_bondindex[i] = bondindex;
+ maxhalf[iold] = ijhalf;
+ maxhalfstrain[iold] = halfstrain;
}
//time2 = MPI_Wtime();
- // forward comm to acquire maxstrain of all ghost atoms
+ // reverse comm acquires maxstrain of all current owned atoms
+ // needed b/c only saw half the bonds of each atom
+ // also needed b/c bond list may refer to old owned atoms that are now ghost
+ // forward comm acquires maxstrain of all current ghost atoms
commflag = STRAIN;
+ comm->reverse_comm_fix(this);
comm->forward_comm_fix(this);
//time3 = MPI_Wtime();
- // use original Dcut neighbor list to check maxstrain of all neighbor atoms
- // set maxstrain_region of I atoms = maxstrain of I and all J neighs
- // neighbor list has old indices for IJ b/c reneighboring may have occurred
+ // -------------------------------------------------------------
+ // stage 2:
+ // maxstrain_domain[i] = maxstrain of atom I and all its J neighs out to Dcut
+ // reverse/forward comm so know it for all current owned and ghost atoms
+ // -------------------------------------------------------------
+
+ // use full Dcut neighbor list to check maxstrain of all neighbor atoms
+ // neighlist is from last event
+ // has old indices for I,J (reneighboring may have occurred)
// use old2now[] to convert to current indices
- // if neighbor is not currently known (too far away),
- // then assume it was part of an event and its strain = qfactor
- // this double loop sets maxstrain_region of mostly owned atoms
- // but possibly some ghost atoms as well
+ // if J is unknown (drifted ghost),
+ // assume it was part of an event and its strain = qfactor
+ // mark atom I ineligible for biasing if:
+ // its maxhalfstrain < maxstrain (J atom owns the IJ bond)
+ // its maxstrain < maxstrain_domain
+ // ncount > 1 (break tie by making all atoms with tie value ineligible)
+ // if ncount > 1, also flip sign of maxstrain_domain for atom I
- int nall = nlocal + atom->nghost;
- for (i = 0; i < nall; i++) maxstrain_region[i] = 0.0;
+ for (i = 0; i < nall; i++) maxstrain_domain[i] = 0.0;
- inum = list->inum;
- ilist = list->ilist;
- numneigh = list->numneigh;
- firstneigh = list->firstneigh;
-
- // find largest distance from subbox that a ghost atom is with strain < qfactor
+ inum = listfull->inum;
+ ilist = listfull->ilist;
+ numneigh = listfull->numneigh;
+ firstneigh = listfull->firstneigh;
double rmax = rmaxever;
double rmaxbig = rmaxeverbig;
double *sublo = domain->sublo;
double *subhi = domain->subhi;
+ // first two lines of outer loop should be identical to this:
+ // for (iold = 0; iold < nlocal_old; iold++)
+
for (ii = 0; ii < inum; ii++) {
iold = ilist[ii];
+ if (eligible[iold] == 0) continue;
jlist = firstneigh[iold];
jnum = numneigh[iold];
- // I and J may be ghost atoms
+ // I or J may be ghost atoms
// will always know I b/c atoms do not drift that far
// but may no longer know J if hops outside cutghost
// in that case, assume it performed an event, its strain = qfactor
+ // this assumes cutghost is sufficiently longer than Dcut
i = old2now[iold];
- emax = maxstrain[i];
+ emax = selfstrain = maxstrain[i];
+ ncount = 0;
for (jj = 0; jj < jnum; jj++) {
jold = jlist[jj];
j = old2now[jold];
- if (j >= 0) emax = MAX(emax,maxstrain[j]);
- else {
+
+ // special case for missing (drifted) J atom
+
+ if (j < 0) {
emax = MAX(emax,qfactor);
+ if (selfstrain == qfactor) ncount++;
continue;
}
- if (j >= nlocal) {
- if (x[j][0] < sublo[0]) rmaxbig = MAX(rmaxbig,sublo[0]-x[j][0]);
- if (x[j][1] < sublo[1]) rmaxbig = MAX(rmaxbig,sublo[1]-x[j][1]);
- if (x[j][2] < sublo[2]) rmaxbig = MAX(rmaxbig,sublo[2]-x[j][2]);
- if (x[j][0] > subhi[0]) rmaxbig = MAX(rmaxbig,x[j][0]-subhi[0]);
- if (x[j][1] > subhi[1]) rmaxbig = MAX(rmaxbig,x[j][1]-subhi[1]);
- if (x[j][2] > subhi[2]) rmaxbig = MAX(rmaxbig,x[j][2]-subhi[2]);
- if (maxstrain[j] < qfactor) {
- if (x[j][0] < sublo[0]) rmax = MAX(rmax,sublo[0]-x[j][0]);
- if (x[j][1] < sublo[1]) rmax = MAX(rmax,sublo[1]-x[j][1]);
- if (x[j][2] < sublo[2]) rmax = MAX(rmax,sublo[2]-x[j][2]);
- if (x[j][0] > subhi[0]) rmax = MAX(rmax,x[j][0]-subhi[0]);
- if (x[j][1] > subhi[1]) rmax = MAX(rmax,x[j][1]-subhi[1]);
- if (x[j][2] > subhi[2]) rmax = MAX(rmax,x[j][2]-subhi[2]);
+ emax = MAX(emax,maxstrain[j]);
+ if (selfstrain == maxstrain[j]) ncount++;
+
+ // optional diagnostic
+ // tally largest distance from subbox that a ghost atom is (rmaxbig)
+ // and the largest distance if strain < qfactor (rmax)
+
+ if (checkghost) {
+ if (j >= nlocal) {
+ if (x[j][0] < sublo[0]) rmaxbig = MAX(rmaxbig,sublo[0]-x[j][0]);
+ if (x[j][1] < sublo[1]) rmaxbig = MAX(rmaxbig,sublo[1]-x[j][1]);
+ if (x[j][2] < sublo[2]) rmaxbig = MAX(rmaxbig,sublo[2]-x[j][2]);
+ if (x[j][0] > subhi[0]) rmaxbig = MAX(rmaxbig,x[j][0]-subhi[0]);
+ if (x[j][1] > subhi[1]) rmaxbig = MAX(rmaxbig,x[j][1]-subhi[1]);
+ if (x[j][2] > subhi[2]) rmaxbig = MAX(rmaxbig,x[j][2]-subhi[2]);
+ if (maxstrain[j] < qfactor) {
+ if (x[j][0] < sublo[0]) rmax = MAX(rmax,sublo[0]-x[j][0]);
+ if (x[j][1] < sublo[1]) rmax = MAX(rmax,sublo[1]-x[j][1]);
+ if (x[j][2] < sublo[2]) rmax = MAX(rmax,sublo[2]-x[j][2]);
+ if (x[j][0] > subhi[0]) rmax = MAX(rmax,x[j][0]-subhi[0]);
+ if (x[j][1] > subhi[1]) rmax = MAX(rmax,x[j][1]-subhi[1]);
+ if (x[j][2] > subhi[2]) rmax = MAX(rmax,x[j][2]-subhi[2]);
+ }
}
}
}
- maxstrain_region[i] = emax;
+ if (maxhalfstrain[iold] < selfstrain) eligible[iold] = 0;
+ if (selfstrain < emax) eligible[iold] = 0;
+ else if (ncount > 1) {
+ eligible[iold] = 0;
+ emax = -emax;
+ }
+ maxstrain_domain[i] = emax;
}
- double rmax2[2],rmax2all[2];
- rmax2[0] = rmax;
- rmax2[1] = rmaxbig;
- MPI_Allreduce(&rmax2,&rmax2all,2,MPI_DOUBLE,MPI_MAX,world);
- rmaxever = rmax2all[0];
- rmaxeverbig = rmax2all[1];
-
- MPI_Allreduce(&mybonds,&allbonds,1,MPI_INT,MPI_SUM,world);
-
//time4 = MPI_Wtime();
- // reverse comm to acquire maxstrain_region from ghost atoms
- // needed b/c neighbor list referred to old owned atoms,
- // so above loop may set maxstrain_region of ghost atoms
- // forward comm to acquire maxstrain_region of all ghost atoms
+ // reverse comm to acquire maxstrain_domain from ghost atoms
+ // needed b/c neigh list may refer to old owned atoms that are now ghost
+ // forward comm acquires maxstrain_domain of all current ghost atoms
- commflag = STRAINREGION;
+ commflag = STRAINDOMAIN;
comm->reverse_comm_fix(this);
comm->forward_comm_fix(this);
//time5 = MPI_Wtime();
- // identify biased bonds and add to boost list
- // for each max-strain bond IJ of atom I:
- // bias this bond only if all these conditions hold:
- // itag < jtag, so bond is only biased once
- // maxstrain[i] = maxstrain_region[i]
- // maxstrain[j] = maxstrain_region[j]
- // NOTE: also need to check that maxstrain[i] = maxstrain[j] ??
- // don't think so, b/c maxstrain_region[i] includes maxstrain[i]
+ // -------------------------------------------------------------
+ // stage 3:
+ // create bias = list of Nbias biased bonds this proc owns
+ // -------------------------------------------------------------
- nboost = 0;
+ // identify biased bonds and add to bias list
+ // bias the I,J maxhalf bond of atom I only if all these conditions hold:
+ // maxstrain[i] = maxstrain_domain[i] (checked in stage 2)
+ // maxstrain[j] = maxstrain_domain[j] (checked here)
+ // I is not part of an I,J bond with > strain owned by some J (checked in 2)
+ // no ties with other maxstrain bonds in atom I's domain (chedcked in 2)
- for (i = 0; i < nlocal; i++) {
- if (numbond[i] == 0) continue;
- itag = tag[i];
- j = bonds[i][maxstrain_bondindex[i]].j;
- jtag = tag[j];
- if (itag > jtag) continue;
-
- if (maxstrain[i] != maxstrain_region[i]) continue;
- if (maxstrain[j] != maxstrain_region[j]) continue;
-
- if (nboost == maxboost) {
- maxboost += DELTABOOST;
- memory->grow(boost,maxboost,"hyper/local:boost");
+ nbias = 0;
+ for (iold = 0; iold < nlocal_old; iold++) {
+ if (eligible[iold] == 0) continue;
+ j = blist[maxhalf[iold]].j;
+ if (maxstrain[j] != maxstrain_domain[j]) continue;
+ if (nbias == maxbias) {
+ maxbias += DELTABIAS;
+ memory->grow(bias,maxbias,"hyper/local:bias");
}
- boost[nboost++] = i;
+ bias[nbias++] = maxhalf[iold];
}
//time6 = MPI_Wtime();
- // apply boost force to bonds with locally max strain
+ // -------------------------------------------------------------
+ // stage 4:
+ // apply bias force to bonds with locally max strain
+ // -------------------------------------------------------------
double **f = atom->f;
int nobias = 0;
+ int negstrain = 0;
mybias = 0.0;
- for (int iboost = 0; iboost < nboost; iboost++) {
- i = boost[iboost];
- emax = maxstrain[i];
- if (emax >= qfactor) {
+ for (int ibias = 0; ibias < nbias; ibias++) {
+ m = bias[ibias];
+ i = blist[m].i;
+ j = blist[m].j;
+
+ if (maxstrain[i] >= qfactor) {
nobias++;
continue;
}
- m = maxstrain_bondindex[i];
- j = bonds[i][m].j;
- r0 = bonds[i][m].r0;
- boostcoeff = bonds[i][m].boostcoeff;
-
- vbias = boostcoeff * vmax * (1.0 - emax*emax*invqfactorsq);
- fbias = boostcoeff * 2.0 * vmax * emax / (qfactor*qfactor * r0);
-
delx = x[i][0] - x[j][0];
dely = x[i][1] - x[j][1];
delz = x[i][2] - x[j][2];
r = sqrt(delx*delx + dely*dely + delz*delz);
- fbiasr = fbias / r;
+ r0 = blist[m].r0;
+ ebias = (r-r0) / r0;
+ vbias = biascoeff[m] * vmax * (1.0 - ebias*ebias*invqfactorsq);
+ fbias = biascoeff[m] * 2.0 * vmax * ebias * invqfactorsq;
+ fbiasr = fbias / r0 / r;
f[i][0] += delx*fbiasr;
f[i][1] += dely*fbiasr;
f[i][2] += delz*fbiasr;
@@ -642,131 +670,102 @@ void FixHyperLocal::pre_reverse(int /* eflag */, int /* vflag */)
f[j][1] -= dely*fbiasr;
f[j][2] -= delz*fbiasr;
+ if (ebias < 0.0) negstrain++;
mybias += vbias;
}
//time7 = MPI_Wtime();
- // no boostostat update of boost coeffs when pre_reverse called from setup()
- // nboost_running, nobias_running, sumboostcoeff only incremented on run steps
- // NOTE: maybe should also not bias any bonds on firststep of this fix
+ // -------------------------------------------------------------
+ // apply boostostat to bias coeffs of all bonds I own
+ // -------------------------------------------------------------
+
+ // no boostostat update when pre_reverse called from setup()
+ // nbias_running, nobias_running, negstrain_running only incremented
+ // on run steps
if (setupflag) return;
- nboost_running += nboost;
+ nbias_running += nbias;
nobias_running += nobias;
+ negstrain_running += negstrain;
- // apply boostostat to boost coefficients of all bonds of all owned atoms
- // use per-atom full bond list
- // this is double-calculating for IJ and JI bonds
- // should be identical for both, b/c emax is the same
- // could compute once, but would have to find/store index of JI bond
- // delta in boost coeff is function of maxboost_region vs target boost
- // maxboost_region is function of two maxstrain_regions for I,J
- // NOTE: if J is lost to I but not vice versa, then biascoeff IJ != JI
+ // loop over bonds I own to adjust bias coeff
+ // delta in boost coeff is function of maxboost_domain vs target boost
+ // maxboost_domain is function of two maxstrain_domains for I,J
- double myboost = 0.0;
- double emaxi,emaxj,maxboost_region;
+ double emaxi,emaxj,maxboost_domain,bc;
+ double mybiascoeff = 0.0;
- for (i = 0; i < nlocal; i++) {
- emaxi = maxstrain_region[i];
- nbond = numbond[i];
- for (m = 0; m < nbond; m++) {
- j = bonds[i][m].j;
- if (j < 0) continue;
- emaxj = maxstrain_region[j];
- emax = MAX(emaxi,emaxj);
- if (emax < qfactor) vbias = vmax * (1.0 - emax*emax*invqfactorsq);
- else vbias = 0.0;
- boostcoeff = bonds[i][m].boostcoeff;
- maxboost_region = exp(beta * boostcoeff*vbias);
- boostcoeff -= alpha * (maxboost_region-boosttarget) / boosttarget;
- // COMMENT OUT for now - need better way to bound boostcoeff
- //boostcoeff = MIN(boostcoeff,COEFFMAX);
- myboost += boostcoeff;
- maxboostcoeff = MAX(maxboostcoeff,boostcoeff);
- minboostcoeff = MIN(minboostcoeff,boostcoeff);
- bonds[i][m].boostcoeff = boostcoeff;
- }
+ for (m = 0; m < nblocal; m++) {
+ i = blist[m].i;
+ j = blist[m].j;
+ emaxi = maxstrain_domain[i];
+ emaxj = maxstrain_domain[j];
+ emax = MAX(emaxi,emaxj);
+ if (emax < qfactor) vbias = vmax * (1.0 - emax*emax*invqfactorsq);
+ else vbias = 0.0;
+
+ maxboost_domain = exp(beta * biascoeff[m]*vbias);
+ biascoeff[m] -= alpha * (maxboost_domain-boost_target) / boost_target;
+
+ // stats
+
+ bc = biascoeff[m];
+ mybiascoeff += bc;
+ minbiascoeff = MIN(minbiascoeff,bc);
+ maxbiascoeff = MAX(maxbiascoeff,bc);
}
- // running stats
+ // -------------------------------------------------------------
+ // diagnostics, some optional
+ // -------------------------------------------------------------
- MPI_Allreduce(&myboost,&allboost,1,MPI_DOUBLE,MPI_SUM,world);
- if (allbonds) sumboostcoeff += allboost/allbonds;
+ MPI_Allreduce(&mybiascoeff,&sumbiascoeff,1,MPI_DOUBLE,MPI_SUM,world);
+ if (allbonds) avebiascoeff += sumbiascoeff/allbonds;
- // histogram the bond coeffs and output as requested
- // do not double count each bond
+ // if requested, monitor ghost distance from processor sub-boxes
- if (histoflag && update->ntimestep % histo_every == 0) {
- if (histo_steps == 0)
- for (i = 0; i < histo_count+2; i++) histo[i] = 0;
- histo_steps++;
-
- int ihisto;
- for (i = 0; i < nlocal; i++) {
- nbond = numbond[i];
- for (m = 0; m < nbond; m++) {
- if (tag[i] > bonds[i][m].jtag) continue;
- boostcoeff = bonds[i][m].boostcoeff;
- if (boostcoeff < histo_lo) ihisto = -1;
- else ihisto = static_cast ((boostcoeff-histo_lo) * invhisto_delta);
- if (ihisto >= histo_count) ihisto = histo_count;
- histo[ihisto+1]++;
- }
- }
-
- if (update->ntimestep % histo_print == 0) {
- MPI_Allreduce(histo,allhisto,histo_count+2,MPI_LMP_BIGINT,MPI_SUM,world);
-
- bigint total = 0;
- for (i = 0; i < histo_count+2; i++) total += allhisto[i];
-
- if (me == 0) {
- if (screen) {
- fprintf(screen,"Histogram of bias coeffs:\n");
- for (i = 0; i < histo_count+2; i++)
- fprintf(screen," %g",1.0*allhisto[i]/total);
- fprintf(screen,"\n");
- }
- if (logfile) {
- fprintf(logfile,"Histogram of bias coeffs:\n");
- for (i = 0; i < histo_count+2; i++)
- fprintf(logfile," %g",1.0*allhisto[i]/total);
- fprintf(logfile,"\n");
- }
- }
- }
+ if (checkghost) {
+ double rmax2[2],rmax2all[2];
+ rmax2[0] = rmax;
+ rmax2[1] = rmaxbig;
+ MPI_Allreduce(&rmax2,&rmax2all,2,MPI_DOUBLE,MPI_MAX,world);
+ rmaxever = rmax2all[0];
+ rmaxeverbig = rmax2all[1];
}
- // check for any biased bonds that are too close to each other
+ // if requsted, check for any biased bonds that are too close to each other
// keep a running count for output
+ // requires 2 additional local comm operations
if (checkbias && update->ntimestep % checkbias_every == 0) {
// mark each atom in a biased bond with ID of partner
- // nboost loop will mark some ghost atoms
+ // this may mark some ghost atoms
for (i = 0; i < nall; i++) biasflag[i] = 0;
- for (int iboost = 0; iboost < nboost; iboost++) {
- i = boost[iboost];
- m = maxstrain_bondindex[i];
- j = bonds[i][m].j;
+ tagint *tag = atom->tag;
+
+ for (int ibias = 0; ibias < nbias; ibias++) {
+ m = bias[ibias];
+ i = blist[m].i;
+ j = blist[m].j;
biasflag[i] = tag[j];
biasflag[j] = tag[i];
}
// reverse comm to acquire biasflag from ghost atoms
- // needed b/c above loop may set biasflag of ghost atoms
- // forward comm to acquire biasflag of all ghost atoms
+ // forward comm to set biasflag for all ghost atoms
commflag = BIASFLAG;
comm->reverse_comm_fix(this);
comm->forward_comm_fix(this);
+ // loop over Dcut full neighbor list
// I and J may be ghost atoms
// only continue if I is a biased atom
- // if J is unknonw (drifted ghost) just ignore
+ // if J is unknown (drifted ghost) just ignore
// if J is biased and is not bonded to I, then flag as too close
for (ii = 0; ii < inum; ii++) {
@@ -784,30 +783,17 @@ void FixHyperLocal::pre_reverse(int /* eflag */, int /* vflag */)
if (biasflag[j] && biasflag[j] != tag[i]) checkbias_count++;
}
}
- }
- // check for any bond bias coeffcients that do not match
- // cannot check unless both atoms IJ are owned by this proc
- // keep a running count for output
-
- if (checkcoeff && update->ntimestep % checkcoeff_every == 0) {
- int jb,jbonds;
-
- for (i = 0; i < nlocal; i++) {
- nbond = numbond[i];
- for (m = 0; m < nbond; m++) {
- if (tag[i] > bonds[i][m].jtag) continue;
- j = bonds[i][m].j;
- if (j < 0) continue;
- if (j >= nlocal) continue;
- itag = tag[i];
- jbonds = numbond[j];
- for (jb = 0; jb < jbonds; jb++)
- if (bonds[j][jb].jtag == itag) break;
- if (jb == jbonds)
- error->one(FLERR,"Fix hyper/local could not find duplicate bond");
- if (bonds[i][m].boostcoeff != bonds[j][jb].boostcoeff)
- checkcoeff_count++;
+ if (checkbias_flag != IGNORE) {
+ int allcount;
+ MPI_Allreduce(&checkbias_count,&allcount,1,MPI_INT,MPI_SUM,world);
+ if (allcount) {
+ char str[128];
+ sprintf(str,"Fix hyper/local biased bonds too close: "
+ "cumulative atom count %d",allcount);
+ if (checkbias_flag == WARN) {
+ if (me == 0) error->warning(FLERR,str);
+ } else error->all(FLERR,str);
}
}
}
@@ -824,9 +810,9 @@ void FixHyperLocal::min_pre_neighbor()
void FixHyperLocal::build_bond_list(int natom)
{
- int i,j,ii,jj,m,n,inum,jnum,nbond;
+ int i,j,ii,jj,m,n,iold,jold,ilocal,jlocal,inum,jnum,nbond;
tagint itag,jtag;
- double xtmp,ytmp,ztmp,delx,dely,delz,rsq,oldcoeff;
+ double xtmp,ytmp,ztmp,delx,dely,delz,rsq,distsq,oldcoeff;
int *ilist,*jlist,*numneigh,**firstneigh;
double time1,time2;
@@ -837,159 +823,261 @@ void FixHyperLocal::build_bond_list(int natom)
nevent_atom += natom;
}
- // trigger Dcut neighbor list build
- // NOTE: turn off special bonds in this Dcut neigh list?
-
- neighbor->build_one(list);
-
- // make copy of old bonds to preserve boostcoeffs for bonds that persist
- // allocate new numbond
-
- OneBond **old_bonds = bonds;
- int *old_numbond = numbond;
-
- int nmax = atom->nmax;
- memory->create(numbond,nmax,"hyper/local:numbond");
-
- // old_nall = value of nall at time bonds are built
- // reallocate new xold and tagold if necessary
- // initialize xold to current coords
- // initialize tagold to zero, so atoms not in neighbor list will remain zero
-
- old_nall = atom->nlocal + atom->nghost;
-
- if (old_nall > maxold) {
- memory->destroy(xold);
- memory->destroy(tagold);
- memory->destroy(old2now);
- maxold = atom->nmax;
- memory->create(xold,maxold,3,"hyper/local:xold");
- memory->create(tagold,maxold,"hyper/local:tagold");
- memory->create(old2now,maxold,"hyper/local:old2now");
- }
+ // compute max distance any bond atom has moved between 2 quenched states
+ // xold[iold] = last quenched coord for iold
+ // x[ilocal] = current quenched coord for same atom
+ // use of old2now calculates distsq only once per atom
double **x = atom->x;
- memcpy(&xold[0][0],&x[0][0],3*old_nall*sizeof(double));
- for (i = 0; i < old_nall; i++) tagold[i] = 0;
+ for (i = 0; i < nall_old; i++) old2now[i] = -1;
- // create and populate new bonds data struct
- // while loop allows maxbondperatom to increase once if necessary
- // don't know new maxbondperatom value until end of loop
- // in practice maxbondperatom will hardly ever increase
- // since there is a physical max value
-
- tagint *tag = atom->tag;
- int *mask = atom->mask;
- int nlocal = atom->nlocal;
-
- inum = list->inum;
- ilist = list->ilist;
- numneigh = list->numneigh;
- firstneigh = list->firstneigh;
-
- while (1) {
- bonds = (OneBond **) memory->create(bonds,nmax,maxbondperatom,
- "hyper/local:bonds");
- if (bonds) memset(bonds[0],0,nmax*sizeof(OneBond));
- for (i = 0; i < nlocal; i++) numbond[i] = 0;
-
- // identify bonds assigned to each owned atom
- // do not create a bond between two non-group atoms
- // set tagold = global ID for all I,J atoms used in neighbor list
- // tagold remains 0 for unused atoms, skipped in pre_neighbor
-
- int nbondmax = 0;
-
- for (ii = 0; ii < inum; ii++) {
- i = ilist[ii];
- xtmp = x[i][0];
- ytmp = x[i][1];
- ztmp = x[i][2];
- itag = tag[i];
- tagold[i] = tag[i];
- jlist = firstneigh[i];
- jnum = numneigh[i];
- nbond = 0;
-
- for (jj = 0; jj < jnum; jj++) {
- j = jlist[jj];
- j &= NEIGHMASK;
- jtag = tag[j];
- tagold[j] = jtag;
-
- // skip if neither atom I or J are in fix group
- // order IJ to insure IJ and JI bonds are stored consistently
-
- if (!(mask[i] & groupbit) && !(mask[j] & groupbit)) continue;
-
- if (itag < jtag) {
- delx = xtmp - x[j][0];
- dely = ytmp - x[j][1];
- delz = ztmp - x[j][2];
- } else {
- delx = x[j][0] - xtmp;
- dely = x[j][1] - ytmp;
- delz = x[j][2] - ztmp;
- }
-
- rsq = delx*delx + dely*dely + delz*delz;
-
- // NOTE: could create two bonds for IJ both owned from one calc?
- // have to skip one of 2 bonds in that case
-
- if (rsq < cutbondsq) {
- if (nbond >= maxbondperatom) {
- nbond++;
- continue;
- }
-
- bonds[i][nbond].r0 = sqrt(rsq);
- bonds[i][nbond].jtag = tag[j];
- bonds[i][nbond].j = j;
-
- if (firstflag) oldcoeff = 0.0;
- else {
- oldcoeff = 0.0;
- jtag = tag[j];
- n = old_numbond[i];
- for (m = 0; m < n; m++) {
- if (old_bonds[i][m].jtag == jtag) {
- oldcoeff = old_bonds[i][m].boostcoeff;
- break;
- }
- }
- }
-
- if (oldcoeff > 0.0) bonds[i][nbond].boostcoeff = oldcoeff;
- else {
- bonds[i][nbond].boostcoeff = BOOSTINIT;
- nnewbond++;
- }
- nbond++;
- }
- }
- numbond[i] = nbond;
- nbondmax = MAX(nbondmax,nbond);
+ for (m = 0; m < nblocal; m++) {
+ iold = blist[m].iold;
+ if (old2now[iold] < 0) {
+ ilocal = atom->map(tagold[iold]);
+ ilocal = domain->closest_image(xold[iold],ilocal);
+ if (ilocal < 0) error->one(FLERR,"Fix hyper/local bond atom not found");
+ old2now[iold] = ilocal;
+ distsq = MathExtra::distsq3(x[ilocal],xold[iold]);
+ maxdriftsq = MAX(distsq,maxdriftsq);
+ }
+ jold = blist[m].jold;
+ if (old2now[jold] < 0) {
+ jold = blist[m].jold;
+ jlocal = atom->map(tagold[jold]);
+ jlocal = domain->closest_image(xold[iold],jlocal); // close to I atom
+ if (jlocal < 0) error->one(FLERR,"Fix hyper/local bond atom not found");
+ old2now[jold] = jlocal;
+ distsq = MathExtra::distsq3(x[jlocal],xold[jold]);
+ maxdriftsq = MAX(distsq,maxdriftsq);
}
-
- // maxbondperatom must increase uniformly on all procs
- // since bonds are comunicated when atoms migrate
-
- int allnbondmax;
- MPI_Allreduce(&nbondmax,&allnbondmax,1,MPI_INT,MPI_MAX,world);
- if (allnbondmax <= maxbondperatom) break;
-
- maxbondperatom = allnbondmax;
- memory->destroy(bonds);
}
- // deallocate old_bonds and old_numbond
+ // store old bond coeffs so can persist them in new blist
+ // while loop allows growing value of maxbondperatom
+ // will loop at most 2 times, stops when maxbondperatom is large enough
+ // requires reverse comm, no forward comm:
+ // b/c new coeff list is stored only by current owned atoms
- memory->destroy(old_bonds);
- memory->destroy(old_numbond);
+ tagint *tag = atom->tag;
+ int nlocal = atom->nlocal;
+ int nall = nlocal + atom->nghost;
+
+ if (maxcoeff < nall) {
+ memory->destroy(numcoeff);
+ memory->sfree(clist);
+ maxcoeff = atom->nmax;
+ memory->create(numcoeff,maxcoeff,"hyper/local:numcoeff");
+ clist = (OneCoeff **) memory->smalloc(maxcoeff*sizeof(OneCoeff *),
+ "hyper/local:clist");
+ }
+
+ while (1) {
+ if (firstflag) break;
+ for (i = 0; i < nall; i++) numcoeff[i] = 0;
+ for (i = 0; i < nall; i++) clist[i] = NULL;
+ cpage->reset();
+
+ for (m = 0; m < nblocal; m++) {
+ i = blist[m].i;
+ j = blist[m].j;
+
+ if (numcoeff[i] == 0) clist[i] = cpage->get(maxbondperatom);
+ if (numcoeff[j] == 0) clist[j] = cpage->get(maxbondperatom);
+
+ if (numcoeff[i] < maxbondperatom) {
+ clist[i][numcoeff[i]].biascoeff = biascoeff[m];
+ clist[i][numcoeff[i]].tag = tag[j];
+ }
+ numcoeff[i]++;
+
+ if (numcoeff[j] < maxbondperatom) {
+ clist[j][numcoeff[j]].biascoeff = biascoeff[m];
+ clist[j][numcoeff[j]].tag = tag[i];
+ }
+ numcoeff[j]++;
+ }
+
+ int mymax = 0;
+ for (i = 0; i < nall; i++) mymax = MAX(mymax,numcoeff[i]);
+ int maxcoeffall;
+ MPI_Allreduce(&mymax,&maxcoeffall,1,MPI_INT,MPI_MAX,world);
+
+ if (maxcoeffall > maxbondperatom) {
+ maxbondperatom = maxcoeffall;
+ cpage->init(maxbondperatom,1024*maxbondperatom,1);
+ continue;
+ }
+
+ commflag = BIASCOEFF;
+ comm->reverse_comm_fix_variable(this);
+
+ mymax = 0;
+ for (i = 0; i < nall; i++) mymax = MAX(mymax,numcoeff[i]);
+ MPI_Allreduce(&mymax,&maxcoeffall,1,MPI_INT,MPI_MAX,world);
+ if (maxcoeffall <= maxbondperatom) break;
+
+ maxbondperatom = maxcoeffall;
+ cpage->init(maxbondperatom,1024*maxbondperatom,1);
+ }
+
+ // reallocate vectors that are maxlocal and maxall length if necessary
+
+ if (nlocal > maxlocal) {
+ memory->destroy(eligible);
+ memory->destroy(numbond);
+ memory->destroy(maxhalf);
+ memory->destroy(maxhalfstrain);
+ maxlocal = nlocal;
+ memory->create(eligible,maxlocal,"hyper/local:eligible");
+ memory->create(numbond,maxlocal,"hyper/local:numbond");
+ memory->create(maxhalf,maxlocal,"hyper/local:maxhalf");
+ memory->create(maxhalfstrain,maxlocal,"hyper/local:maxhalfstrain");
+ }
+
+ if (nall > maxall) {
+ memory->destroy(xold);
+ memory->destroy(tagold);
+ memory->destroy(old2now);
+ maxall = atom->nmax;
+ memory->create(xold,maxall,3,"hyper/local:xold");
+ memory->create(tagold,maxall,"hyper/local:tagold");
+ memory->create(old2now,maxall,"hyper/local:old2now");
+ }
+
+ // nlocal_old = value of nlocal at time bonds are built
+ // nall_old = value of nall at time bonds are built
+ // archive current atom coords in xold
+ // tagold will be set to non-zero below for accessed atoms
+ // numbond will be set below
+
+ nlocal_old = nlocal;
+ nall_old = nall;
+
+ memcpy(&xold[0][0],&x[0][0],3*nall*sizeof(double));
+ for (i = 0; i < nall; i++) tagold[i] = 0;
+ for (i = 0; i < nlocal; i++) numbond[i] = 0;
+
+ // trigger neighbor list builds for both lists
+ // insure the I loops in both are from 1 to nlocal
+
+ neighbor->build_one(listfull);
+ neighbor->build_one(listhalf);
+
+ if (listfull->inum != nlocal || listhalf->inum != nlocal)
+ error->one(FLERR,"Invalid neighbor list in fix hyper/local bond build");
+
+ // set tagold = 1 for all J atoms used in full neighbor list
+ // tagold remains 0 for unused atoms, skipped in pre_neighbor
+
+ inum = listfull->inum;
+ ilist = listfull->ilist;
+ numneigh = listfull->numneigh;
+ firstneigh = listfull->firstneigh;
+
+ for (ii = 0; ii < inum; ii++) {
+ i = ilist[ii];
+ tagold[i] = tag[i];
+ jlist = firstneigh[i];
+ jnum = numneigh[i];
+ for (jj = 0; jj < jnum; jj++) {
+ j = jlist[jj];
+ j &= NEIGHMASK;
+ tagold[j] = tag[j];
+ }
+ }
+
+ // identify bonds assigned to each owned atom
+ // do not create a bond between two non-group atoms
+
+ int *mask = atom->mask;
+
+ inum = listhalf->inum;
+ ilist = listhalf->ilist;
+ numneigh = listhalf->numneigh;
+ firstneigh = listhalf->firstneigh;
+
+ nblocal = 0;
+
+ for (ii = 0; ii < inum; ii++) {
+ i = ilist[ii];
+ xtmp = x[i][0];
+ ytmp = x[i][1];
+ ztmp = x[i][2];
+
+ itag = tag[i];
+ tagold[i] = tag[i];
+
+ jlist = firstneigh[i];
+ jnum = numneigh[i];
+ nbond = 0;
+
+ for (jj = 0; jj < jnum; jj++) {
+ j = jlist[jj];
+ j &= NEIGHMASK;
+
+ jtag = tag[j];
+ tagold[j] = jtag;
+
+ // skip if neither atom I or J are in fix group
+
+ if (!(mask[i] & groupbit) && !(mask[j] & groupbit)) continue;
+
+ delx = xtmp - x[j][0];
+ dely = ytmp - x[j][1];
+ delz = ztmp - x[j][2];
+ rsq = delx*delx + dely*dely + delz*delz;
+
+ if (rsq < cutbondsq) {
+ nbond++;
+
+ if (nblocal == maxbond) grow_bond();
+ blist[nblocal].i = i;
+ blist[nblocal].j = j;
+ blist[nblocal].iold = i;
+ blist[nblocal].jold = j;
+ blist[nblocal].r0 = sqrt(rsq);
+
+ // set biascoeff to old coeff for same I,J pair or to default
+
+ if (firstflag) oldcoeff = 0.0;
+ else {
+ oldcoeff = 0.0;
+ jtag = tag[j];
+ n = numcoeff[i];
+ for (m = 0; m < n; m++) {
+ if (clist[i][m].tag == jtag) {
+ oldcoeff = clist[i][m].biascoeff;
+ break;
+ }
+ }
+ }
+
+ if (oldcoeff > 0.0) biascoeff[nblocal] = oldcoeff;
+ else {
+ biascoeff[nblocal] = COEFFINIT;
+ nnewbond++;
+ }
+
+ nblocal++;
+ }
+ }
+
+ numbond[i] = nbond;
+ }
+
+ // this fix allows access to biascoeffs as local data
+
+ size_local_rows = nblocal;
+
+ // allbonds = total # of bonds in system
+
+ bigint bondcount = nblocal;
+ MPI_Allreduce(&bondcount,&allbonds,1,MPI_LMP_BIGINT,MPI_SUM,world);
time2 = MPI_Wtime();
+
if (firstflag) nnewbond = 0;
else {
time_bondbuild += time2-time1;
@@ -1009,6 +1097,7 @@ int FixHyperLocal::pack_forward_comm(int n, int *list, double *buf,
// STRAIN
// pack maxstrain vector
+ // must send to all ghosts out to Dcut
if (commflag == STRAIN) {
for (i = 0; i < n; i++) {
@@ -1016,17 +1105,20 @@ int FixHyperLocal::pack_forward_comm(int n, int *list, double *buf,
buf[m++] = maxstrain[j];
}
- // STRAINREGION
- // pack maxstrain_region vector
+ // STRAINDOMAIN
+ // pack maxstrain_domain vector
+ // could just send to nearby ghosts in bonds
+ // don't see easy way to determine precisely which atoms that is
- } else if (commflag == STRAINREGION) {
+ } else if (commflag == STRAINDOMAIN) {
for (i = 0; i < n; i++) {
j = list[i];
- buf[m++] = maxstrain_region[j];
+ buf[m++] = maxstrain_domain[j];
}
// BIASFLAG
// pack biasflag vector
+ // must send to all ghosts out to Dcut
} else if (commflag == BIASFLAG) {
for (i = 0; i < n; i++) {
@@ -1056,11 +1148,11 @@ void FixHyperLocal::unpack_forward_comm(int n, int first, double *buf)
}
// STRAINREGION
- // unpack maxstrain_region vector
+ // unpack maxstrain_domain vector
- } else if (commflag == STRAINREGION) {
+ } else if (commflag == STRAINDOMAIN) {
for (i = first; i < last; i++) {
- maxstrain_region[i] = buf[m++];
+ maxstrain_domain[i] = buf[m++];
}
// BIASFLAG
@@ -1077,46 +1169,136 @@ void FixHyperLocal::unpack_forward_comm(int n, int first, double *buf)
int FixHyperLocal::pack_reverse_comm(int n, int first, double *buf)
{
- int i,m,last;
+ int i,j,m,last;
m = 0;
last = first + n;
- // STRAINREGION
- // pack maxstrain_region vector
+ // STRAIN
+ // pack maxstrain vector
+ // only pack for nonzero values
- if (commflag == STRAINREGION) {
+ if (commflag == STRAIN) {
+ int nonzero = 0;
+ m++; // placeholder for count of atoms
for (i = first; i < last; i++) {
- buf[m++] = maxstrain_region[i];
+ if (maxstrain[i] == 0.0) continue;
+ nonzero++;
+ buf[m++] = ubuf(i-first).d; // which atom is next
+ buf[m++] = maxstrain[i]; // value
}
+ buf[0] = ubuf(nonzero).d;
+
+ // STRAINDOMAIN
+ // pack maxstrain_domain vector
+ // only pack for nonzero values
+
+ } else if (commflag == STRAINDOMAIN) {
+ int nonzero = 0;
+ m++; // placeholder for count of atoms
+ for (i = first; i < last; i++) {
+ if (maxstrain_domain[i] == 0.0) continue;
+ nonzero++;
+ buf[m++] = ubuf(i-first).d; // which atom is next
+ buf[m++] = maxstrain_domain[i]; // value
+ }
+ buf[0] = ubuf(nonzero).d;
// BIASFLAG
// pack biasflag vector
+ // could just pack for nonzero values, like STRAIN and STRAINDOMAIN
} else if (commflag == BIASFLAG) {
for (i = first; i < last; i++) {
buf[m++] = ubuf(biasflag[i]).d;
}
+
+ // BIASCOEFF
+ // pack list of biascoeffs
+ // only pack for atoms with nonzero # of bias coeffs
+ // this will skip majority of ghost atoms
+
+ } else if (commflag == BIASCOEFF) {
+ int ncoeff;
+ int nonzero = 0;
+ m++; // placeholder for count of atoms
+ for (i = first; i < last; i++) {
+ if (numcoeff[i] == 0) continue;
+ nonzero++;
+ ncoeff = numcoeff[i];
+ buf[m++] = ubuf(i-first).d; // which atom is next
+ buf[m++] = ubuf(ncoeff).d; // # of bias coeffs
+ for (j = 0; j < ncoeff; j++) {
+ buf[m++] = clist[i][j].biascoeff;
+ buf[m++] = ubuf(clist[i][j].tag).d;
+ }
+ }
+ buf[0] = ubuf(nonzero).d;
}
return m;
}
+/* ----------------------------------------------------------------------
+ callback by comm->reverse_comm_fix_variable() in build_bond()
+ same logic as BIASCOEFF option in pack_reverse_comm()
+ m = returned size of message
+------------------------------------------------------------------------- */
+
+int FixHyperLocal::pack_reverse_comm_size(int n, int first)
+{
+ int last = first + n;
+ int m = 1;
+ for (int i = first; i < last; i++) {
+ if (numcoeff[i]) m += 2 + 2*numcoeff[i];
+ }
+ return m;
+}
+
/* ---------------------------------------------------------------------- */
void FixHyperLocal::unpack_reverse_comm(int n, int *list, double *buf)
{
- int i,j,m;
+ int i,j,k,m;
+
+ // return if n = 0
+ // b/c if there are no atoms (n = 0), the message will not have
+ // been sent by Comm::reverse_comm_fix() or reverse_comm_fix_variable()
+ // so must not read nonzero from first buf location (would be zero anyway)
+
+ if (n == 0) return;
+
+ // STRAIN
+ // unpack maxstrain vector
+ // nonzero # of entries, each has offset to which atom in receiver's list
+ // use MAX, b/c want maximum abs value strain for each atom's bonds
m = 0;
- // STRAINREGION
- // unpack maxstrain_region vector
+ if (commflag == STRAIN) {
+ int offset;
+ int nonzero = (int) ubuf(buf[m++]).i; // # of atoms with values
- if (commflag == STRAINREGION) {
- for (i = 0; i < n; i++) {
- j = list[i];
- maxstrain_region[j] += buf[m++];
+ for (int iatom = 0; iatom < nonzero; iatom++) {
+ offset = (int) ubuf(buf[m++]).i; // offset into list for which atom
+ j = list[offset];
+ maxstrain[j] = MAX(maxstrain[j],buf[m]);
+ m++;
+ }
+
+ // STRAINDOMAIN
+ // unpack maxstrain_domain vector
+ // use MAX, b/c want maximum abs value strain for each atom's domain
+ // could also use SUM, b/c exactly one ghost or owned value is non-zero
+
+ } else if (commflag == STRAINDOMAIN) {
+ int offset;
+ int nonzero = (int) ubuf(buf[m++]).i; // # of atoms with values
+ for (int iatom = 0; iatom < nonzero; iatom++) {
+ offset = (int) ubuf(buf[m++]).i; // offset into list for which atom
+ j = list[offset];
+ maxstrain_domain[j] = MAX(maxstrain_domain[j],buf[m]);
+ m++;
}
// BIASFLAG
@@ -1127,84 +1309,45 @@ void FixHyperLocal::unpack_reverse_comm(int n, int *list, double *buf)
j = list[i];
biasflag[j] = (tagint) ubuf(buf[m++]).i;
}
+
+ // BIASCOEFF
+ // unpack list of biascoeffs
+ // nonzero # of entries, each has offset to which atom in receiver's list
+ // protect against overflow of clist vector
+ // if that happens, caller will re-setup cpage and reverse comm again
+
+ } else if (commflag == BIASCOEFF) {
+ int offset,ncoeff;
+ int nonzero = (int) ubuf(buf[m++]).i; // # of atoms with coeffs
+ for (int iatom = 0; iatom < nonzero; iatom++) {
+ offset = (int) ubuf(buf[m++]).i; // offset into list for which atom
+ j = list[offset];
+ ncoeff = (int) ubuf(buf[m++]).i; // # of bias coeffs
+ for (k = 0; k < ncoeff; k++) {
+ if (numcoeff[j] == 0) clist[j] = cpage->get(maxbondperatom);
+ if (numcoeff[j] < maxbondperatom) {
+ clist[j][numcoeff[j]].biascoeff = buf[m++];
+ clist[j][numcoeff[j]].tag = (tagint) ubuf(buf[m++]).i;
+ } else m += 2;
+ numcoeff[j]++;
+ }
+ }
}
}
/* ----------------------------------------------------------------------
- allocate atom-based arrays
+ grow bond list and bias coeff vector by a chunk
------------------------------------------------------------------------- */
-void FixHyperLocal::grow_arrays(int nmax)
+void FixHyperLocal::grow_bond()
{
- // NOTE: not all of these need to be Nmax in length, could allocate elsewhere
-
- memory->grow(maxstrain,nmax,"hyper/local:maxstrain");
- memory->grow(maxstrain_bondindex,nmax,"hyper/local:maxstrain_bondindex");
- memory->grow(maxstrain_region,nmax,"hyper/local:maxstrain_region");
- if (checkbias) memory->grow(biasflag,nmax,"hyper/local:biasflag");
-
- memory->grow(numbond,nmax,"hyper/local:numbond");
- memory->grow(bonds,nmax,maxbondperatom,"hyper/local:bonds");
-
- // zero so valgrind does not complain about memcpy() in copy()
- // also so loops in pre_neighbor() are OK before
- // bonds are setup for the first time
-
- if (bonds) {
- memset(bonds[maxbond],0,(nmax-maxbond)*maxbondperatom*sizeof(OneBond));
- memset(&numbond[maxbond],0,(nmax-maxbond)*sizeof(int));
- maxbond = nmax;
- }
-}
-
-/* ----------------------------------------------------------------------
- copy values within local atom-based arrays
-------------------------------------------------------------------------- */
-
-void FixHyperLocal::copy_arrays(int i, int j, int /* delflag */)
-{
- // avoid valgrind copy-to-self warning
-
- if (i != j) memcpy(bonds[j],bonds[i],numbond[i]*sizeof(OneBond));
- numbond[j] = numbond[i];
-}
-
-/* ----------------------------------------------------------------------
- pack values in local atom-based array for exchange with another proc
-------------------------------------------------------------------------- */
-
-int FixHyperLocal::pack_exchange(int i, double *buf)
-{
- int m = 1;
- int n = numbond[i];
- buf[m++] = ubuf(n).d;
- for (int j = 0; j < n; j++) {
- buf[m++] = bonds[i][j].r0;
- buf[m++] = bonds[i][j].boostcoeff;
- buf[m++] = ubuf(bonds[i][j].jtag).d;
- buf[m++] = ubuf(bonds[i][j].j).d;
- }
-
- buf[0] = m;
- return m;
-}
-
-/* ----------------------------------------------------------------------
- unpack values in local atom-based array from exchange with another proc
-------------------------------------------------------------------------- */
-
-int FixHyperLocal::unpack_exchange(int nlocal, double *buf)
-{
- int m = 1;
- int n = numbond[nlocal] = (int) ubuf(buf[m++]).i;
- for (int j = 0; j < n; j++) {
- bonds[nlocal][j].r0 = buf[m++];
- bonds[nlocal][j].boostcoeff = buf[m++];
- bonds[nlocal][j].jtag = (tagint) ubuf(buf[m++]).i;
- bonds[nlocal][j].j = (int) ubuf(buf[m++]).i;
- }
-
- return m;
+ if (maxbond + DELTABOND > MAXSMALLINT)
+ error->one(FLERR,"Fix hyper/local bond count is too big");
+ maxbond += DELTABOND;
+ blist = (OneBond *)
+ memory->srealloc(blist,maxbond*sizeof(OneBond),"hyper/local:blist");
+ memory->grow(biascoeff,maxbond,"hyper/local:biascoeff");
+ vector_local = biascoeff;
}
/* ---------------------------------------------------------------------- */
@@ -1220,41 +1363,40 @@ double FixHyperLocal::compute_scalar()
double FixHyperLocal::compute_vector(int i)
{
- // 23 vector outputs returned for i = 0-22
+ // 21 vector outputs returned for i = 0-20
- // i = 0 = # of boosted bonds on this step
+ // i = 0 = # of biased bonds on this step
// i = 1 = max strain of any bond on this step
- // i = 2 = average bias potential for all bonds on this step
+ // i = 2 = average bias coeff for all bonds on this step
// i = 3 = ave bonds/atom on this step
// i = 4 = ave neighbor bonds/bond on this step
- // i = 5 = fraction of steps and bonds with no bias during this run
- // i = 6 = max drift distance of any atom during this run
- // i = 7 = max bond length during this run
- // i = 8 = average # of boosted bonds/step during this run
- // i = 9 = average bias potential for all bonds during this run
- // i = 10 = max bias potential for any bond during this run
- // i = 11 = min bias potential for any bond during this run
- // i = 12 = max dist from my box of any ghost atom with
- // maxstain < qfactor during this run
- // i = 13 = max dist from my box of any ghost atom with
- // any maxstrain during this run
- // i = 14 = count of ghost atoms that could not be found
- // by any proc at any reneighbor step during this run
- // i = 15 = count of lost bond partners during this run
- // i = 16 = average bias coeff for lost bond partners during this run
- // i = 17 = count of bias overlaps found during this run
- // i = 18 = count of non-matching bias coefficients found during this run
+ // i = 5 = max bond length during this run
+ // i = 6 = average # of biased bonds/step during this run
+ // i = 7 = fraction of biased bonds with no bias during this run
+ // i = 8 = fraction of biased bonds with negative strain during this run
+ // i = 9 = average bias coeff for all bonds during this run
+ // i = 10 = min bias coeff for any bond during this run
+ // i = 11 = max bias coeff for any bond during this run
- // i = 19 = cummulative hyper time
- // i = 20 = cummulative # of event timesteps since fix created
- // i = 21 = cummulative # of atoms in events since fix created
- // i = 22 = cummulative # of new bonds formed since fix created
+ // i = 12 = max drift distance of any atom during this run
+ // i = 13 = max distance from proc subbox of any ghost atom with
+ // maxstrain < qfactor during this run
+ // i = 14 = max distance from proc subbox of any ghost atom with
+ // any maxstrain during this run
+ // i = 15 = count of ghost atoms that could not be found
+ // on reneighbor steps during this run
+ // i = 16 = count of bias overlaps (< Dcut) found during this run
+
+ // i = 17 = cumulative hyper time since fix created
+ // i = 18 = cumulative # of event timesteps since fix created
+ // i = 19 = cumulative # of atoms in events since fix created
+ // i = 20 = cumulative # of new bonds formed since fix created
if (i == 0) {
- int nboostall;
- MPI_Allreduce(&nboost,&nboostall,1,MPI_INT,MPI_SUM,world);
- return (double) nboostall;
+ int nbiasall;
+ MPI_Allreduce(&nbias,&nbiasall,1,MPI_INT,MPI_SUM,world);
+ return (double) nbiasall;
}
if (i == 1) {
@@ -1269,119 +1411,104 @@ double FixHyperLocal::compute_vector(int i)
}
if (i == 2) {
- if (allboost && allbonds) return allboost/allbonds * vmax;
+ if (allbonds) return sumbiascoeff/allbonds;
return 1.0;
}
- if (i == 3) return 1.0*allbonds/atom->natoms;
+ if (i == 3) {
+ return 2.0*allbonds/atom->natoms;
+ }
if (i == 4) {
const int nlocal = atom->nlocal;
- bigint nbonds = 0;
- for (int j = 0; j < nlocal; j++)
- nbonds += numbond[j];
- bigint allbonds;
- MPI_Allreduce(&nbonds,&allbonds,1,MPI_LMP_BIGINT,MPI_SUM,world);
bigint allneigh,thisneigh;
- thisneigh = list->ipage->ndatum;
+ thisneigh = listfull->ipage->ndatum;
MPI_Allreduce(&thisneigh,&allneigh,1,MPI_LMP_BIGINT,MPI_SUM,world);
const double natoms = atom->natoms;
const double neighsperatom = static_cast(allneigh)/natoms;
- const double bondsperatom = 0.5*static_cast(allbonds)/natoms;
+ const double bondsperatom = static_cast(allbonds)/natoms;
return neighsperatom * bondsperatom;
}
if (i == 5) {
- int allboost_running,allnobias_running;
- MPI_Allreduce(&nboost_running,&allboost_running,1,MPI_INT,MPI_SUM,world);
- MPI_Allreduce(&nobias_running,&allnobias_running,1,MPI_INT,MPI_SUM,world);
- if (allboost_running) return 1.0*allnobias_running / allboost_running;
- return 0.0;
- }
-
- if (i == 6) {
- double alldriftsq;
- MPI_Allreduce(&maxdriftsq,&alldriftsq,1,MPI_DOUBLE,MPI_MAX,world);
- return (double) sqrt(alldriftsq);
- }
-
- if (i == 7) {
double allbondlen;
MPI_Allreduce(&maxbondlen,&allbondlen,1,MPI_DOUBLE,MPI_MAX,world);
return allbondlen;
}
- if (i == 8) {
+ if (i == 6) {
if (update->ntimestep == update->firststep) return 0.0;
- int allboost_running;
- MPI_Allreduce(&nboost_running,&allboost_running,1,MPI_INT,MPI_SUM,world);
- return 1.0*allboost_running / (update->ntimestep - update->firststep);
+ int allbias_running;
+ MPI_Allreduce(&nbias_running,&allbias_running,1,MPI_INT,MPI_SUM,world);
+ return 1.0*allbias_running / (update->ntimestep - update->firststep);
+ }
+
+ if (i == 7) {
+ int allbias_running,allnobias_running;
+ MPI_Allreduce(&nbias_running,&allbias_running,1,MPI_INT,MPI_SUM,world);
+ MPI_Allreduce(&nobias_running,&allnobias_running,1,MPI_INT,MPI_SUM,world);
+ if (allbias_running) return 1.0*allnobias_running / allbias_running;
+ return 0.0;
+ }
+
+ if (i == 8) {
+ int allbias_running,allnegstrain_running;
+ MPI_Allreduce(&nbias_running,&allbias_running,1,MPI_INT,MPI_SUM,world);
+ MPI_Allreduce(&negstrain_running,&allnegstrain_running,1,MPI_INT,
+ MPI_SUM,world);
+ if (allbias_running) return 1.0*allnegstrain_running / allbias_running;
+ return 0.0;
}
if (i == 9) {
if (update->ntimestep == update->firststep) return 0.0;
- return sumboostcoeff * vmax / (update->ntimestep - update->firststep);
+ return avebiascoeff / (update->ntimestep - update->firststep);
}
if (i == 10) {
- double allboostcoeff;
- MPI_Allreduce(&maxboostcoeff,&allboostcoeff,1,MPI_DOUBLE,MPI_MAX,world);
- return allboostcoeff * vmax;
+ double biascoeff;
+ MPI_Allreduce(&minbiascoeff,&biascoeff,1,MPI_DOUBLE,MPI_MIN,world);
+ return biascoeff;
}
if (i == 11) {
- double allboostcoeff;
- MPI_Allreduce(&minboostcoeff,&allboostcoeff,1,MPI_DOUBLE,MPI_MAX,world);
- return allboostcoeff * vmax;
+ double biascoeff;
+ MPI_Allreduce(&maxbiascoeff,&biascoeff,1,MPI_DOUBLE,MPI_MAX,world);
+ return biascoeff;
}
- if (i == 12) return rmaxever;
- if (i == 13) return rmaxeverbig;
+ if (i == 12) {
+ double alldriftsq;
+ MPI_Allreduce(&maxdriftsq,&alldriftsq,1,MPI_DOUBLE,MPI_MAX,world);
+ return (double) sqrt(alldriftsq);
+ }
- if (i == 14) {
+ if (i == 13) return rmaxever;
+ if (i == 14) return rmaxeverbig;
+
+ if (i == 15) {
int allghost_toofar;
MPI_Allreduce(&ghost_toofar,&allghost_toofar,1,MPI_INT,MPI_SUM,world);
return 1.0*allghost_toofar;
}
- if (i == 15) {
- int alllost;
- MPI_Allreduce(&lostbond_partner,&alllost,1,MPI_INT,MPI_SUM,world);
- return 1.0*alllost;
- }
-
if (i == 16) {
- int alllost;
- MPI_Allreduce(&lostbond_partner,&alllost,1,MPI_INT,MPI_SUM,world);
- double allcoeff;
- MPI_Allreduce(&lostbond_coeff,&allcoeff,1,MPI_DOUBLE,MPI_SUM,world);
- if (alllost == 0) return 0;
- return allcoeff/alllost;
- }
-
- if (i == 17) {
int allclose;
MPI_Allreduce(&checkbias_count,&allclose,1,MPI_INT,MPI_SUM,world);
return 1.0*allclose;
}
- if (i == 18) {
- int allcoeff;
- MPI_Allreduce(&checkcoeff_count,&allcoeff,1,MPI_INT,MPI_SUM,world);
- return 1.0*allcoeff;
+ if (i == 17) {
+ return boost_target * update->dt * (update->ntimestep - starttime);
}
- if (i == 19) {
- return boosttarget * update->dt * (update->ntimestep - starttime);
- }
+ if (i == 18) return (double) nevent;
+ if (i == 19) return (double) nevent_atom;
- if (i == 20) return (double) nevent;
- if (i == 21) return (double) nevent_atom;
-
- if (i == 22) {
- int allnew;
- MPI_Allreduce(&nnewbond,&allnew,1,MPI_INT,MPI_SUM,world);
- return (double) 0.5*allnew;
+ if (i == 20) {
+ int allnewbond;
+ MPI_Allreduce(&nnewbond,&allnewbond,1,MPI_INT,MPI_SUM,world);
+ return (double) allnewbond;
}
return 0.0;
@@ -1394,32 +1521,30 @@ double FixHyperLocal::compute_vector(int i)
double FixHyperLocal::query(int i)
{
- if (i == 1) return compute_vector(19); // cummulative hyper time
- if (i == 2) return compute_vector(20); // nevent
- if (i == 3) return compute_vector(21); // nevent_atom
+ if (i == 1) return compute_vector(17); // cummulative hyper time
+ if (i == 2) return compute_vector(18); // nevent
+ if (i == 3) return compute_vector(19); // nevent_atom
if (i == 4) return compute_vector(3); // ave bonds/atom
- if (i == 5) return compute_vector(6); // maxdrift
- if (i == 6) return compute_vector(7); // maxbondlen
- if (i == 7) return compute_vector(5); // fraction with zero bias
+ if (i == 5) return compute_vector(12); // maxdrift
+ if (i == 6) return compute_vector(5); // maxbondlen
+ if (i == 7) return compute_vector(7); // fraction with zero bias
+ if (i == 8) return compute_vector(8); // fraction with negative strain
// unique to local hyper
- if (i == 8) return compute_vector(22); // number of new bonds
- if (i == 9) return 1.0*maxbondperatom; // max bonds/atom
- if (i == 10) return compute_vector(8); // ave # of boosted bonds/step
- if (i == 11) return compute_vector(9); // ave boost coeff over all bonds
- if (i == 12) return compute_vector(10); // max boost cooef for any bond
- if (i == 13) return compute_vector(11); // max boost cooef for any bond
- if (i == 14) return compute_vector(4); // neighbor bonds/bond
- if (i == 15) return compute_vector(2); // ave boost cooef now
- if (i == 16) return time_bondbuild; // CPU time for bond_build calls
- if (i == 17) return rmaxever; // ghost atom distance for < maxstrain
- if (i == 18) return rmaxeverbig; // ghost atom distance for any strain
- if (i == 19) return compute_vector(14); // count of ghost atoms not found
- if (i == 20) return compute_vector(15); // count of lost bond partners
- if (i == 21) return compute_vector(16); // ave bias coeff of long bonds
- if (i == 22) return compute_vector(17); // count of bias overlaps
- if (i == 23) return compute_vector(18); // count of non-matching bias coeffs
+ if (i == 9) return compute_vector(20); // number of new bonds
+ if (i == 10) return 1.0*maxbondperatom; // max bonds/atom
+ if (i == 11) return compute_vector(6); // ave # of biased bonds/step
+ if (i == 12) return compute_vector(9); // ave bias coeff over all bonds
+ if (i == 13) return compute_vector(10); // min bias cooef for any bond
+ if (i == 14) return compute_vector(11); // max bias cooef for any bond
+ if (i == 15) return compute_vector(4); // neighbor bonds/bond
+ if (i == 16) return compute_vector(2); // ave bias coeff now
+ if (i == 17) return time_bondbuild; // CPU time for build_bond calls
+ if (i == 18) return rmaxever; // ghost atom distance for < maxstrain
+ if (i == 19) return rmaxeverbig; // ghost atom distance for any strain
+ if (i == 20) return compute_vector(15); // count of ghost atoms not found
+ if (i == 21) return compute_vector(16); // count of bias overlaps
error->all(FLERR,"Invalid query to fix hyper/local");
@@ -1427,17 +1552,22 @@ double FixHyperLocal::query(int i)
}
/* ----------------------------------------------------------------------
- memory usage of per-atom and per-bond arrays
+ memory usage of per-atom and per-bond data structs
------------------------------------------------------------------------- */
double FixHyperLocal::memory_usage()
{
- int nmax = atom->nmax;
- double bytes = 2*nmax * sizeof(int); // numbond, maxstrain_bondindex
- bytes = 2*nmax * sizeof(double); // maxstrain, maxstrain_region
- bytes += maxbondperatom*nmax * sizeof(OneBond); // bonds
- bytes += 3*maxold * sizeof(double); // xold
- bytes += maxold * sizeof(tagint); // tagold
- bytes += maxold * sizeof(int); // old2now
+ double bytes = maxbond * sizeof(OneBond); // blist
+ bytes = maxbond * sizeof(double); // per-bond bias coeffs
+ bytes += 3*maxlocal * sizeof(int); // numbond,maxhalf,eligible
+ bytes += maxlocal * sizeof(double); // maxhalfstrain
+ bytes += maxall * sizeof(int); // old2now
+ bytes += maxall * sizeof(tagint); // tagold
+ bytes += 3*maxall * sizeof(double); // xold
+ bytes += 2*maxall * sizeof(double); // maxstrain,maxstrain_domain
+ if (checkbias) bytes += maxall * sizeof(tagint); // biasflag
+ bytes += maxcoeff * sizeof(int); // numcoeff
+ bytes += maxcoeff * sizeof(OneCoeff *); // clist
+ bytes += maxlocal*maxbondperatom * sizeof(OneCoeff); // cpage estimate
return bytes;
}
diff --git a/src/REPLICA/fix_hyper_local.h b/src/REPLICA/fix_hyper_local.h
index 147e3ef1ef..6f13acb606 100644
--- a/src/REPLICA/fix_hyper_local.h
+++ b/src/REPLICA/fix_hyper_local.h
@@ -21,6 +21,7 @@ FixStyle(hyper/local,FixHyperLocal)
#define LMP_FIX_HYPER_LOCAL_H
#include "fix_hyper.h"
+#include "my_page.h"
namespace LAMMPS_NS {
@@ -43,13 +44,9 @@ class FixHyperLocal : public FixHyper {
int pack_forward_comm(int, int *, double *, int, int *);
void unpack_forward_comm(int, int, double *);
int pack_reverse_comm(int, int, double *);
+ int pack_reverse_comm_size(int, int);
void unpack_reverse_comm(int, int *, double *);
- void grow_arrays(int);
- void copy_arrays(int, int, int);
- int pack_exchange(int, double *);
- int unpack_exchange(int, double *);
-
double memory_usage();
// extra methods visible to callers
@@ -59,97 +56,133 @@ class FixHyperLocal : public FixHyper {
private:
int me;
+
+ // inputs and derived quantities
+
double cutbond,qfactor,vmax,tequil,dcut;
double alpha_user; // timescale to apply boostostat (time units)
double alpha; // unitless dt/alpha_user
- double boosttarget; // target value of boost
- int histoflag;
- int lostbond,lostbond_partner;
- double lostbond_coeff;
- int checkbias,checkbias_every,checkbias_flag,checkbias_count;
- int checkcoeff,checkcoeff_every,checkcoeff_flag,checkcoeff_count;
+ double boost_target; // target value of boost
+ int checkghost,checkbias; // flags for optional stats
+
+ double cutbondsq,dcutsq;
+ double beta,invqfactorsq;
+
+ // flags
int setupflag; // 1 during setup, 0 during run
int firstflag; // set for first time bond_build takes place
- int nostrainyet; // 1 until maxstrain is first computed
-
- int nboost_running,nobias_running;
- int nbondbuild;
- double time_bondbuild;
- bigint starttime;
- double sumboostcoeff; // sum of aveboost at every timestep
- int allbonds; // sum of bond count on this step
- double allboost; // sum of boostcoeff on all bonds on this step
-
- int nnewbond; // running tally of number of new bonds created
- int maxbondperatom; // max # of bonds any atom ever has
+ int nostrainyet; // 1 until maxstrain is first compute
+ bigint starttime; // timestep when this fix was invoked
int commflag; // flag for communication mode
+
+ // stats
+
+ int nbondbuild; // # of rebuilds of bond list
+ double time_bondbuild; // CPU time for bond builds
+
+ bigint allbonds; // current total # of bonds
+ int nnewbond; // running tally of # of new bonds created
+ int maxbondperatom; // max # of bonds any atom ever has
int nevent; // # of events that trigger bond rebuild
int nevent_atom; // # of atoms that experienced an event
- double cutbondsq,dcutsq;
- double beta,invqfactorsq;
- double mybias;
+
+ int nbias_running; // running count of biased bonds
+ int nobias_running; // ditto for bonds with bias = 0, b/c too long
+ int negstrain_running; // ditto for bonds with negative strain
+
+ double mybias; // sum of bias potentials for biased bonds
double maxbondlen; // cummulative max length of any bond
- double maxdriftsq; // max distance any atom drifts from original pos
- double maxboostcoeff; // cummulative max boost coeff for any bond
- double minboostcoeff; // cummulative min boost coeff for any bond
+ double maxdriftsq; // max distance any bond atom drifts from quenched x
+
+ double sumbiascoeff; // sum of all bond bias coeffs at each timestep
+ double avebiascoeff; // cummulative sumbiascoeff/allbonds across steps
+ double minbiascoeff; // cummulative min bias coeff for any bond
+ double maxbiascoeff; // cummulative max bias coeff for any bond
+
double rmaxever,rmaxeverbig;
- int ghost_toofar;
+ int ghost_toofar; // # of ghost atoms not found in Dcut neigh list
+
+ int checkbias_every,checkbias_flag,checkbias_count;
+
+ // 2 neighbor lists
+
+ class NeighList *listfull; // full neigh list up to Dcut distance
+ class NeighList *listhalf; // half neigh list up to pair distance
+ // both created only when bonds are rebuilt
+
+ // list of my owned bonds and bias coeffs
+ // persists on a proc from one event until the next
+
+ struct OneBond { // single IJ bond, atom I is owner
+ int i,j; // current local indices of 2 bond atoms
+ int iold,jold; // local indices when bonds were formed
+ double r0; // relaxed bond length
+ };
+
+ OneBond *blist; // list of owned bonds
+ double *biascoeff; // biasing coefficient Cij for each bond
+ int nblocal; // # of owned bonds
+ int maxbond; // allocated size of blist
+
+ // old data from last timestep bonds were formed
+ // persists on a proc from one event until the next
+ // first set of vectors are maxlocal in length
+ // second set of vectors are maxall in length
+
+ int nlocal_old; // nlocal for old atoms
+ int nall_old; // nlocal+nghost for old atoms
+ int maxlocal; // allocated size of old local atom vecs
+ int maxall; // allocated size of old all atom vecs
+
+ int *numbond; // # of bonds owned by old owned atoms
+ int *maxhalf; // bond index for maxstrain bond of old atoms
+ int *eligible; // 0/1 flag for bias on one of old atom's bonds
+ double *maxhalfstrain; // strain value for maxstrain bond of old atoms
+
+ int *old2now; // o2n[i] = current local index of old atom I
+ // may be -1 if ghost atom has drifted
+ tagint *tagold; // IDs of atoms when bonds were formed
+ // 0 if a ghost atom is not in Dcut neigh list
+ double **xold; // coords of atoms when bonds were formed
+
+ // vectors used to find maxstrain bonds within a local domain
+
+ int maxatom; // size of these vectors, nlocal + nghost
+
+ double *maxstrain; // max-strain of any bond atom I is part of
+ // for owned and ghost atoms
+ double *maxstrain_domain; // max-strain of any neighbor atom J of atom I
+ // for owned and ghost atoms
+ tagint *biasflag; // atoms in biased bonds marked with bond partner
+ // for owned and ghost atoms
+
+ // list of biased bonds this proc owns
+
+ int maxbias; // allocated size of bias list
+ int nbias; // # of biased bonds I own
+ int *bias; // index of biased bonds in my bond list
+
+ // data structs for persisting bias coeffs when bond list is reformed
+
+ struct OneCoeff {
+ double biascoeff;
+ tagint tag;
+ };
+
+ MyPage *cpage; // pages of OneCoeff datums for clist
+ OneCoeff **clist; // ptrs to vectors of bias coeffs for each atom
+ int *numcoeff; // # of bias coeffs per atom (one per bond)
+ int maxcoeff; // allocate sized of clist and numcoeff
// extra timers
//double timefirst,timesecond,timethird,timefourth;
//double timefifth,timesixth,timeseventh,timetotal;
- // data structs for per-atom and per-bond info
- // all of these are for current owned and ghost atoms
- // except list and old2now are for atom indices at time of last bond build
+ // private methods
- class NeighList *list; // full neigh list up to Dcut distance
- // created only when bonds are rebuilt
-
- int *old2now; // o2n[i] = current local index of old atom i
- // stored for old owned and ghost atoms
- // I = old index when bonds were last created
- // old indices are stored in old neighbor list
-
- double **xold; // coords of owned+ghost atoms when bonds created
- tagint *tagold; // global IDs of owned+ghost atoms when b created
-
- int maxold; // allocated size of old2now
- int maxbond; // allocated size of bonds
- int old_nall; // nlocal+nghost when old2now was last setup
-
- struct OneBond { // single IJ bond, atom I is owner
- double r0; // original relaxed bond length
- double boostcoeff; // boost coefficient
- tagint jtag; // global index of J atom in bond IJ
- int j; // local index of J atom in bond IJ
- };
-
- struct OneBond **bonds; // 2d array of bonds for owned atoms
- int *numbond; // number of bonds for each owned atom
-
- double *maxstrain; // max-strain of any bond atom I is part of
- // for owned and ghost atoms
- double *maxstrain_region; // max-strain of any neighbor atom J of atom I
- // for owned and ghost atoms
- int *maxstrain_bondindex; // index of max-strain bond of each atom I
- // just for owned atoms
- tagint *biasflag; // atoms in biased bonds marked with bond partner
- // for owned and ghost atoms
-
- // list of boosted bonds that this proc will bias
-
- int maxboost; // allocated size of boost list
- int nboost; // # of boosted bonds I own
- int *boost; // index of atom I in each boosted bond
-
- // histogramming of bond boost cooeficients
-
- int histo_every,histo_count,histo_print,histo_steps;
- double histo_delta,invhisto_delta,histo_lo;
- bigint *histo,*allhisto;
+ void grow_bond();
};
}
diff --git a/src/REPLICA/hyper.cpp b/src/REPLICA/hyper.cpp
index 22940de221..5d820b2e27 100644
--- a/src/REPLICA/hyper.cpp
+++ b/src/REPLICA/hyper.cpp
@@ -40,9 +40,7 @@ enum{NOHYPER,GLOBAL,LOCAL};
/* ---------------------------------------------------------------------- */
-Hyper::Hyper(LAMMPS *lmp) :
- Pointers(lmp), dumplist(NULL)
-{}
+Hyper::Hyper(LAMMPS *lmp) : Pointers(lmp), dumplist(NULL) {}
/* ----------------------------------------------------------------------
perform hyperdynamics simulation
@@ -183,9 +181,6 @@ void Hyper::command(int narg, char **arg)
if (hyperenable) fix_hyper->init_hyper();
- timer->barrier_start();
- time_start = timer->get_wall(Timer::TOTAL);
-
// perform initial minimization and bond list creation
int nevent = 0;
@@ -200,6 +195,14 @@ void Hyper::command(int narg, char **arg)
if (hyperenable) fix_hyper->build_bond_list(0);
fix_event->restore_state_quench();
+ // reset stats and timers to skip HD setup
+
+ nbuild = ndanger = 0;
+ time_dynamics = time_quench = 0.0;
+
+ timer->barrier_start();
+ time_start = timer->get_wall(Timer::TOTAL);
+
// main loop: dynamics, store state, quench, check event, restore state
int ecount;
@@ -260,11 +263,12 @@ void Hyper::command(int narg, char **arg)
double maxdrift = 0.0;
double maxbondlen = 0.0;
double fraczero = 1.0;
+ double fracneg = 1.0;
- double nnewbond,avenboost,aveboostcoeff,maxboostcoeff,minboostcoeff;
- double maxbondperatom,neighbondperbond,aveboostnow;
+ double nnewbond,avenbias,avebiascoeff,minbiascoeff,maxbiascoeff;
+ double maxbondperatom,neighbondperbond,avebiasnow;
double tbondbuild,rmaxever,rmaxeverbig,allghost_toofar;
- double lostbond,lostbondcoeff,biasoverlap,nonmatchbiascoeff;
+ double lostbond,lostbondcoeff,biasoverlap;
if (hyperenable) {
t_hyper = fix_hyper->query(1);
@@ -274,115 +278,70 @@ void Hyper::command(int narg, char **arg)
maxdrift = fix_hyper->query(5);
maxbondlen = fix_hyper->query(6);
fraczero = fix_hyper->query(7);
+ fracneg = fix_hyper->query(8);
if (hyperstyle == LOCAL) {
- nnewbond = fix_hyper->query(8);
- maxbondperatom = fix_hyper->query(9);
- avenboost = fix_hyper->query(10);
- aveboostcoeff = fix_hyper->query(11);
- maxboostcoeff = fix_hyper->query(12);
- minboostcoeff = fix_hyper->query(13);
- neighbondperbond = fix_hyper->query(14);
- aveboostnow = fix_hyper->query(15);
- tbondbuild = fix_hyper->query(16);
- rmaxever = fix_hyper->query(17);
- rmaxeverbig = fix_hyper->query(18);
- allghost_toofar = fix_hyper->query(19);
- lostbond = fix_hyper->query(20);
- lostbondcoeff = fix_hyper->query(21);
- biasoverlap = fix_hyper->query(22);
- nonmatchbiascoeff = fix_hyper->query(23);
+ nnewbond = fix_hyper->query(9);
+ maxbondperatom = fix_hyper->query(10);
+ avenbias = fix_hyper->query(11);
+ avebiascoeff = fix_hyper->query(12);
+ minbiascoeff = fix_hyper->query(13);
+ maxbiascoeff = fix_hyper->query(14);
+ neighbondperbond = fix_hyper->query(15);
+ avebiasnow = fix_hyper->query(16);
+ tbondbuild = fix_hyper->query(17);
+ rmaxever = fix_hyper->query(18);
+ rmaxeverbig = fix_hyper->query(19);
+ allghost_toofar = fix_hyper->query(20);
+ biasoverlap = fix_hyper->query(21);
}
}
if (me == 0) {
- if (screen) {
- fprintf(screen,"Cummulative quantities for fix hyper:\n");
- fprintf(screen," hyper time = %g\n",t_hyper);
- fprintf(screen," time boost factor = %g\n",t_hyper/(nsteps*update->dt));
- fprintf(screen," event timesteps = %d\n",nevent_running);
- fprintf(screen," # of atoms in events = %d\n",nevent_atoms_running);
- fprintf(screen,"Quantities for this hyper run:\n");
- fprintf(screen," event timesteps = %d\n",nevent);
- fprintf(screen," # of atoms in events = %d\n",nevent_atoms);
- fprintf(screen," max length of any bond = %g\n",maxbondlen);
- fprintf(screen," max drift distance of any atom = %g\n",maxdrift);
- fprintf(screen," fraction of steps & bonds with zero bias = %g\n",
- fraczero);
- fprintf(screen,"Current quantities:\n");
- fprintf(screen," ave bonds/atom = %g\n",avebonds);
+ FILE *out;
+ for (int iout = 0; iout < 2; iout++) {
+ if (iout == 0) out = screen;
+ if (iout == 1) out = logfile;
+ if (!out) continue;
+ fprintf(out,"Cummulative quantities for fix hyper:\n");
+ fprintf(out," hyper time = %g\n",t_hyper);
+ fprintf(out," time boost factor = %g\n",t_hyper/(nsteps*update->dt));
+ fprintf(out," event timesteps = %d\n",nevent_running);
+ fprintf(out," # of atoms in events = %d\n",nevent_atoms_running);
+ fprintf(out,"Quantities for this hyper run:\n");
+ fprintf(out," event timesteps = %d\n",nevent);
+ fprintf(out," # of atoms in events = %d\n",nevent_atoms);
+ fprintf(out," max length of any bond = %g\n",maxbondlen);
+ fprintf(out," max drift distance of any atom = %g\n",maxdrift);
+ fprintf(out," fraction of biased bonds with zero bias = %g\n",fraczero);
+ fprintf(out," fraction of biased bonds with negative strain = %g\n",
+ fracneg);
+ fprintf(out,"Current quantities:\n");
+ fprintf(out," ave bonds/atom = %g\n",avebonds);
if (hyperstyle == LOCAL) {
- fprintf(screen,"Cummulative quantities specific to fix hyper/local:\n");
- fprintf(screen," # of new bonds formed = %g\n",nnewbond);
- fprintf(screen," max bonds/atom = %g\n",maxbondperatom);
- fprintf(screen,"Quantities for this hyper run specific to "
+ fprintf(out,"Cummulative quantities specific to fix hyper/local:\n");
+ fprintf(out," # of new bonds formed = %g\n",nnewbond);
+ fprintf(out," max bonds/atom = %g\n",maxbondperatom);
+ fprintf(out,"Quantities for this hyper run specific to "
"fix hyper/local:\n");
- fprintf(screen," ave boosted bonds/step = %g\n",avenboost);
- fprintf(screen," ave boost coeff of all bonds = %g\n",aveboostcoeff);
- fprintf(screen," max boost coeff of any bond = %g\n",maxboostcoeff);
- fprintf(screen," min boost coeff of any bond = %g\n",minboostcoeff);
- fprintf(screen," max dist from my box of any "
+ fprintf(out," ave biased bonds/step = %g\n",avenbias);
+ fprintf(out," ave bias coeff of all bonds = %g\n",avebiascoeff);
+ fprintf(out," min bias coeff of any bond = %g\n",minbiascoeff);
+ fprintf(out," max bias coeff of any bond = %g\n",maxbiascoeff);
+ fprintf(out," max dist from my subbox of any "
"non-maxstrain bond ghost atom = %g\n",rmaxever);
- fprintf(screen," max dist from my box of any bond ghost atom = %g\n",
+ fprintf(out," max dist from my box of any bond ghost atom = %g\n",
rmaxeverbig);
- fprintf(screen," count of bond ghost neighbors "
+ fprintf(out," count of bond ghost neighbors "
"not found on reneighbor steps = %g\n",allghost_toofar);
- fprintf(screen," lost bond partners = %g\n",lostbond);
- fprintf(screen," ave bias coeff for lost bond partners = %g\n",
- lostbondcoeff);
- fprintf(screen," bias overlaps = %g\n",biasoverlap);
- fprintf(screen," non-matching bias coeffs = %g\n",nonmatchbiascoeff);
- fprintf(screen," CPU time for bond builds = %g\n",tbondbuild);
- fprintf(screen,"Current quantities specific to fix hyper/local:\n");
- fprintf(screen," neighbor bonds/bond = %g\n",neighbondperbond);
- fprintf(screen," ave boost coeff for all bonds = %g\n",aveboostnow);
+ fprintf(out," bias overlaps = %g\n",biasoverlap);
+ fprintf(out," CPU time for bond builds = %g\n",tbondbuild);
+ fprintf(out,"Current quantities specific to fix hyper/local:\n");
+ fprintf(out," neighbor bonds/bond = %g\n",neighbondperbond);
+ fprintf(out," ave boost coeff for all bonds = %g\n",avebiasnow);
}
- fprintf(screen,"\n");
- }
-
- if (logfile) {
- fprintf(logfile,"Cummulative quantities for fix hyper:\n");
- fprintf(logfile," hyper time = %g\n",t_hyper);
- fprintf(logfile," event timesteps = %d\n",nevent_running);
- fprintf(logfile," # of atoms in events = %d\n",nevent_atoms_running);
- fprintf(logfile,"Quantities for this hyper run:\n");
- fprintf(logfile," event timesteps = %d\n",nevent);
- fprintf(logfile," # of atoms in events = %d\n",nevent_atoms);
- fprintf(logfile," max length of any bond = %g\n",maxbondlen);
- fprintf(logfile," max drift distance of any atom = %g\n",maxdrift);
- fprintf(logfile," fraction of steps & bonds with zero bias = %g\n",
- fraczero);
- fprintf(logfile,"Current quantities:\n");
- fprintf(logfile," ave bonds/atom = %g\n",avebonds);
-
- if (hyperstyle == LOCAL) {
- fprintf(logfile,"Cummulative quantities specific tofix hyper/local:\n");
- fprintf(logfile," # of new bonds formed = %g\n",nnewbond);
- fprintf(logfile," max bonds/atom = %g\n",maxbondperatom);
- fprintf(logfile,"Quantities for this hyper run specific to "
- "fix hyper/local:\n");
- fprintf(logfile," ave boosted bonds/step = %g\n",avenboost);
- fprintf(logfile," ave boost coeff of all bonds = %g\n",aveboostcoeff);
- fprintf(logfile," max boost coeff of any bond = %g\n",maxboostcoeff);
- fprintf(logfile," min boost coeff of any bond = %g\n",minboostcoeff);
- fprintf(logfile," max dist from my box of any "
- "non-maxstrain bond ghost atom = %g\n",rmaxever);
- fprintf(logfile," max dist from my box of any bond ghost atom = %g\n",
- rmaxeverbig);
- fprintf(logfile," count of ghost bond neighbors "
- "not found on reneighbor steps = %g\n",allghost_toofar);
- fprintf(logfile," lost bond partners = %g\n",lostbond);
- fprintf(logfile," ave bias coeff for lost bond partners = %g\n",
- lostbondcoeff);
- fprintf(logfile," bias overlaps = %g\n",biasoverlap);
- fprintf(logfile," non-matching bias coeffs = %g\n",nonmatchbiascoeff);
- fprintf(logfile," CPU time for bond builds = %g\n",tbondbuild);
- fprintf(logfile,"Current quantities specific to fix hyper/local:\n");
- fprintf(logfile," neighbor bonds/bond = %g\n",neighbondperbond);
- fprintf(logfile," ave boost coeff for all bonds = %g\n",aveboostnow);
- }
- fprintf(logfile,"\n");
+ fprintf(out,"\n");
}
}
diff --git a/src/RIGID/fix_rigid_small.cpp b/src/RIGID/fix_rigid_small.cpp
index fb185d7702..54fb83f0aa 100644
--- a/src/RIGID/fix_rigid_small.cpp
+++ b/src/RIGID/fix_rigid_small.cpp
@@ -28,12 +28,14 @@
#include "modify.h"
#include "group.h"
#include "comm.h"
+#include "neighbor.h"
#include "force.h"
#include "input.h"
#include "output.h"
#include "variable.h"
#include "random_mars.h"
#include "math_const.h"
+#include "hashlittle.h"
#include "memory.h"
#include "error.h"
@@ -43,6 +45,8 @@ using namespace LAMMPS_NS;
using namespace FixConst;
using namespace MathConst;
+#define RVOUS 1 // 0 for irregular, 1 for all2all
+
#define MAXLINE 1024
#define CHUNK 1024
#define ATTRIBUTE_PERBODY 20
@@ -70,8 +74,7 @@ FixRigidSmall::FixRigidSmall(LAMMPS *lmp, int narg, char **arg) :
xcmimage(NULL), displace(NULL), eflags(NULL), orient(NULL), dorient(NULL),
avec_ellipsoid(NULL), avec_line(NULL), avec_tri(NULL), counts(NULL),
itensor(NULL), mass_body(NULL), langextra(NULL), random(NULL),
- id_dilate(NULL), onemols(NULL), hash(NULL), bbox(NULL), ctr(NULL),
- idclose(NULL), rsqclose(NULL)
+ id_dilate(NULL), onemols(NULL)
{
int i;
@@ -107,18 +110,18 @@ FixRigidSmall::FixRigidSmall(LAMMPS *lmp, int narg, char **arg) :
// parse args for rigid body specification
int *mask = atom->mask;
- tagint *bodyid = NULL;
+ tagint *bodyID = NULL;
int nlocal = atom->nlocal;
if (narg < 4) error->all(FLERR,"Illegal fix rigid/small command");
if (strcmp(arg[3],"molecule") == 0) {
if (atom->molecule_flag == 0)
error->all(FLERR,"Fix rigid/small requires atom attribute molecule");
- bodyid = atom->molecule;
+ bodyID = atom->molecule;
} else if (strcmp(arg[3],"custom") == 0) {
if (narg < 5) error->all(FLERR,"Illegal fix rigid/small command");
- bodyid = new tagint[nlocal];
+ bodyID = new tagint[nlocal];
customflag = 1;
// determine whether atom-style variable or atom property is used.
@@ -126,9 +129,11 @@ FixRigidSmall::FixRigidSmall(LAMMPS *lmp, int narg, char **arg) :
int is_double=0;
int custom_index = atom->find_custom(arg[4]+2,is_double);
if (custom_index == -1)
- error->all(FLERR,"Fix rigid/small custom requires previously defined property/atom");
+ error->all(FLERR,"Fix rigid/small custom requires "
+ "previously defined property/atom");
else if (is_double)
- error->all(FLERR,"Fix rigid/small custom requires integer-valued property/atom");
+ error->all(FLERR,"Fix rigid/small custom requires "
+ "integer-valued property/atom");
int minval = INT_MAX;
int *value = atom->ivector[custom_index];
@@ -139,15 +144,17 @@ FixRigidSmall::FixRigidSmall(LAMMPS *lmp, int narg, char **arg) :
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit)
- bodyid[i] = (tagint)(value[i] - minval + 1);
- else bodyid[i] = 0;
+ bodyID[i] = (tagint)(value[i] - minval + 1);
+ else bodyID[i] = 0;
} else if (strstr(arg[4],"v_") == arg[4]) {
int ivariable = input->variable->find(arg[4]+2);
if (ivariable < 0)
- error->all(FLERR,"Variable name for fix rigid/small custom does not exist");
+ error->all(FLERR,"Variable name for fix rigid/small custom "
+ "does not exist");
if (input->variable->atomstyle(ivariable) == 0)
- error->all(FLERR,"Fix rigid/small custom variable is no atom-style variable");
+ error->all(FLERR,"Fix rigid/small custom variable is not "
+ "atom-style variable");
double *value = new double[nlocal];
input->variable->compute_atom(ivariable,0,value,1,0);
int minval = INT_MAX;
@@ -158,8 +165,8 @@ FixRigidSmall::FixRigidSmall(LAMMPS *lmp, int narg, char **arg) :
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit)
- bodyid[i] = (tagint)((tagint)value[i] - minval + 1);
- else bodyid[0] = 0;
+ bodyID[i] = (tagint)((tagint)value[i] - minval + 1);
+ else bodyID[0] = 0;
delete[] value;
} else error->all(FLERR,"Unsupported fix rigid custom property");
} else error->all(FLERR,"Illegal fix rigid/small command");
@@ -167,10 +174,11 @@ FixRigidSmall::FixRigidSmall(LAMMPS *lmp, int narg, char **arg) :
if (atom->map_style == 0)
error->all(FLERR,"Fix rigid/small requires an atom map, see atom_modify");
- // maxmol = largest bodyid #
+ // maxmol = largest bodyID #
+
maxmol = -1;
for (i = 0; i < nlocal; i++)
- if (mask[i] & groupbit) maxmol = MAX(maxmol,bodyid[i]);
+ if (mask[i] & groupbit) maxmol = MAX(maxmol,bodyID[i]);
tagint itmp;
MPI_Allreduce(&maxmol,&itmp,1,MPI_LMP_TAGINT,MPI_MAX,world);
@@ -400,8 +408,19 @@ FixRigidSmall::FixRigidSmall(LAMMPS *lmp, int narg, char **arg) :
// sets bodytag for owned atoms
// body attributes are computed later by setup_bodies()
- create_bodies(bodyid);
- if (customflag) delete [] bodyid;
+ double time1 = MPI_Wtime();
+
+ create_bodies(bodyID);
+ if (customflag) delete [] bodyID;
+
+ double time2 = MPI_Wtime();
+
+ if (comm->me == 0) {
+ if (screen)
+ fprintf(screen," create bodies CPU = %g secs\n",time2-time1);
+ if (logfile)
+ fprintf(logfile," create bodies CPU = %g secs\n",time2-time1);
+ }
// set nlocal_body and allocate bodies I own
@@ -569,7 +588,8 @@ void FixRigidSmall::init()
if (rflag && (modify->fmask[i] & POST_FORCE) &&
!modify->fix[i]->rigid_flag) {
char str[128];
- snprintf(str,128,"Fix %s alters forces after fix rigid",modify->fix[i]->id);
+ snprintf(str,128,"Fix %s alters forces after fix rigid",
+ modify->fix[i]->id);
error->warning(FLERR,str);
}
}
@@ -633,6 +653,16 @@ void FixRigidSmall::setup(int vflag)
{
int i,n,ibody;
+ // error if maxextent > comm->cutghost
+ // NOTE: could just warn if an override flag set
+ // NOTE: this could fail for comm multi mode if user sets a wrong cutoff
+ // for atom types in rigid bodies - need a more careful test
+ // must check here, not in init, b/c neigh/comm values set after fix init
+
+ double cutghost = MAX(neighbor->cutneighmax,comm->cutghostuser);
+ if (maxextent > cutghost)
+ error->all(FLERR,"Rigid body extent > ghost cutoff - use comm_modify cutoff");
+
//check(1);
// sum fcm, torque across all rigid bodies
@@ -1514,175 +1544,72 @@ void FixRigidSmall::set_v()
set bodytag for all owned atoms
------------------------------------------------------------------------- */
-void FixRigidSmall::create_bodies(tagint *bodyid)
+void FixRigidSmall::create_bodies(tagint *bodyID)
{
- int i,m,n;
- double unwrap[3];
+ int i,m;
- // error check on image flags of atoms in rigid bodies
+ // allocate buffer for input to rendezvous comm
+ // ncount = # of my atoms in bodies
- imageint *image = atom->image;
int *mask = atom->mask;
int nlocal = atom->nlocal;
- int *periodicity = domain->periodicity;
- int xbox,ybox,zbox;
-
- int flag = 0;
- for (i = 0; i < nlocal; i++) {
- if (!(mask[i] & groupbit)) continue;
- xbox = (image[i] & IMGMASK) - IMGMAX;
- ybox = (image[i] >> IMGBITS & IMGMASK) - IMGMAX;
- zbox = (image[i] >> IMG2BITS) - IMGMAX;
- if ((xbox && !periodicity[0]) || (ybox && !periodicity[1]) ||
- (zbox && !periodicity[2])) flag = 1;
- }
-
- int flagall;
- MPI_Allreduce(&flag,&flagall,1,MPI_INT,MPI_SUM,world);
- if (flagall) error->all(FLERR,"Fix rigid/small atom has non-zero image flag "
- "in a non-periodic dimension");
-
- // allocate buffer for passing messages around ring of procs
- // percount = max number of values to put in buffer for each of ncount
-
int ncount = 0;
for (i = 0; i < nlocal; i++)
if (mask[i] & groupbit) ncount++;
- int percount = 5;
- double *buf;
- memory->create(buf,ncount*percount,"rigid/small:buf");
+ int *proclist;
+ memory->create(proclist,ncount,"rigid/small:proclist");
+ InRvous *inbuf = (InRvous *)
+ memory->smalloc(ncount*sizeof(InRvous),"rigid/small:inbuf");
- // create map hash for storing unique body IDs of my atoms
- // key = body ID
- // value = index into per-body data structure
- // n = # of entries in hash
-
- hash = new std::map();
- hash->clear();
-
- // setup hash
- // key = body ID
- // value = index into N-length data structure
- // n = count of unique bodies my atoms are part of
-
- n = 0;
- for (i = 0; i < nlocal; i++) {
- if (!(mask[i] & groupbit)) continue;
- if (hash->find(bodyid[i]) == hash->end()) (*hash)[bodyid[i]] = n++;
- }
-
- // bbox = bounding box of each rigid body my atoms are part of
-
- memory->create(bbox,n,6,"rigid/small:bbox");
-
- for (i = 0; i < n; i++) {
- bbox[i][0] = bbox[i][2] = bbox[i][4] = BIG;
- bbox[i][1] = bbox[i][3] = bbox[i][5] = -BIG;
- }
-
- // pack my atoms into buffer as body ID, unwrapped coords
+ // setup buf to pass to rendezvous comm
+ // one BodyMsg datum for each constituent atom
+ // datum = me, local index of atom, atomID, bodyID, unwrapped coords
+ // owning proc for each datum = random hash of bodyID
double **x = atom->x;
-
- m = 0;
- for (i = 0; i < nlocal; i++) {
- if (!(mask[i] & groupbit)) continue;
- domain->unmap(x[i],image[i],unwrap);
- buf[m++] = bodyid[i];
- buf[m++] = unwrap[0];
- buf[m++] = unwrap[1];
- buf[m++] = unwrap[2];
- }
-
- // pass buffer around ring of procs
- // func = update bbox with atom coords from every proc
- // when done, have full bbox for every rigid body my atoms are part of
-
- comm->ring(m,sizeof(double),buf,1,ring_bbox,NULL,(void *)this);
-
- // check if any bbox is size 0.0, meaning rigid body is a single particle
-
- flag = 0;
- for (i = 0; i < n; i++)
- if (bbox[i][0] == bbox[i][1] && bbox[i][2] == bbox[i][3] &&
- bbox[i][4] == bbox[i][5]) flag = 1;
- MPI_Allreduce(&flag,&flagall,1,MPI_INT,MPI_SUM,world);
- if (flagall)
- error->all(FLERR,"One or more rigid bodies are a single particle");
-
- // ctr = center pt of each rigid body my atoms are part of
-
- memory->create(ctr,n,6,"rigid/small:bbox");
-
- for (i = 0; i < n; i++) {
- ctr[i][0] = 0.5 * (bbox[i][0] + bbox[i][1]);
- ctr[i][1] = 0.5 * (bbox[i][2] + bbox[i][3]);
- ctr[i][2] = 0.5 * (bbox[i][4] + bbox[i][5]);
- }
-
- // idclose = ID of atom in body closest to center pt (smaller ID if tied)
- // rsqclose = distance squared from idclose to center pt
-
- memory->create(idclose,n,"rigid/small:idclose");
- memory->create(rsqclose,n,"rigid/small:rsqclose");
-
- for (i = 0; i < n; i++) rsqclose[i] = BIG;
-
- // pack my atoms into buffer as body ID, atom ID, unwrapped coords
-
tagint *tag = atom->tag;
+ imageint *image = atom->image;
m = 0;
for (i = 0; i < nlocal; i++) {
if (!(mask[i] & groupbit)) continue;
- domain->unmap(x[i],image[i],unwrap);
- buf[m++] = bodyid[i];
- buf[m++] = ubuf(tag[i]).d;
- buf[m++] = unwrap[0];
- buf[m++] = unwrap[1];
- buf[m++] = unwrap[2];
+ proclist[m] = hashlittle(&bodyID[i],sizeof(tagint),0) % nprocs;
+ inbuf[m].me = me;
+ inbuf[m].ilocal = i;
+ inbuf[m].atomID = tag[i];
+ inbuf[m].bodyID = bodyID[i];
+ domain->unmap(x[i],image[i],inbuf[m].x);
+ m++;
}
- // pass buffer around ring of procs
- // func = update idclose,rsqclose with atom IDs from every proc
- // when done, have idclose for every rigid body my atoms are part of
+ // perform rendezvous operation
+ // each proc owns random subset of bodies
+ // receives all atoms in those bodies
+ // func = compute bbox of each body, find atom closest to geometric center
- comm->ring(m,sizeof(double),buf,2,ring_nearest,NULL,(void *)this);
+ char *buf;
+ int nreturn = comm->rendezvous(RVOUS,ncount,(char *) inbuf,sizeof(InRvous),
+ 0,proclist,
+ rendezvous_body,0,buf,sizeof(OutRvous),
+ (void *) this);
+ OutRvous *outbuf = (OutRvous *) buf;
- // set bodytag of all owned atoms, based on idclose
- // find max value of rsqclose across all procs
+ memory->destroy(proclist);
+ memory->sfree(inbuf);
- double rsqmax = 0.0;
- for (i = 0; i < nlocal; i++) {
- bodytag[i] = 0;
- if (!(mask[i] & groupbit)) continue;
- m = hash->find(bodyid[i])->second;
- bodytag[i] = idclose[m];
- rsqmax = MAX(rsqmax,rsqclose[m]);
- }
+ // set bodytag of all owned atoms based on outbuf info for constituent atoms
- // pack my atoms into buffer as bodytag of owning atom, unwrapped coords
+ for (i = 0; i < nlocal; i++)
+ if (!(mask[i] & groupbit)) bodytag[i] = 0;
- m = 0;
- for (i = 0; i < nlocal; i++) {
- if (!(mask[i] & groupbit)) continue;
- domain->unmap(x[i],image[i],unwrap);
- buf[m++] = ubuf(bodytag[i]).d;
- buf[m++] = unwrap[0];
- buf[m++] = unwrap[1];
- buf[m++] = unwrap[2];
- }
+ for (m = 0; m < nreturn; m++)
+ bodytag[outbuf[m].ilocal] = outbuf[m].atomID;
- // pass buffer around ring of procs
- // func = update rsqfar for atoms belonging to bodies I own
- // when done, have rsqfar for all atoms in bodies I own
+ memory->sfree(outbuf);
- rsqfar = 0.0;
- comm->ring(m,sizeof(double),buf,3,ring_farthest,NULL,(void *)this);
-
- // find maxextent of rsqfar across all procs
+ // maxextent = max of rsqfar across all procs
// if defined, include molecule->maxextent
MPI_Allreduce(&rsqfar,&maxextent,1,MPI_DOUBLE,MPI_MAX,world);
@@ -1691,125 +1618,156 @@ void FixRigidSmall::create_bodies(tagint *bodyid)
for (int i = 0; i < nmol; i++)
maxextent = MAX(maxextent,onemols[i]->maxextent);
}
+}
+
+/* ----------------------------------------------------------------------
+ process rigid bodies assigned to me
+ buf = list of N BodyMsg datums
+------------------------------------------------------------------------- */
+
+int FixRigidSmall::rendezvous_body(int n, char *inbuf,
+ int &rflag, int *&proclist, char *&outbuf,
+ void *ptr)
+{
+ int i,m;
+ double delx,dely,delz,rsq;
+ int *iclose;
+ tagint *idclose;
+ double *x,*xown,*rsqclose;
+ double **bbox,**ctr;
+
+ FixRigidSmall *frsptr = (FixRigidSmall *) ptr;
+ Memory *memory = frsptr->memory;
+ Error *error = frsptr->error;
+ MPI_Comm world = frsptr->world;
+
+ // setup hash
+ // use STL map instead of atom->map
+ // b/c know nothing about body ID values specified by user
+ // ncount = number of bodies assigned to me
+ // key = body ID
+ // value = index into Ncount-length data structure
+
+ InRvous *in = (InRvous *) inbuf;
+ std::map hash;
+ tagint id;
+
+ int ncount = 0;
+ for (i = 0; i < n; i++) {
+ id = in[i].bodyID;
+ if (hash.find(id) == hash.end()) hash[id] = ncount++;
+ }
+
+ // bbox = bounding box of each rigid body
+
+ memory->create(bbox,ncount,6,"rigid/small:bbox");
+
+ for (m = 0; m < ncount; m++) {
+ bbox[m][0] = bbox[m][2] = bbox[m][4] = BIG;
+ bbox[m][1] = bbox[m][3] = bbox[m][5] = -BIG;
+ }
+
+ for (i = 0; i < n; i++) {
+ m = hash.find(in[i].bodyID)->second;
+ x = in[i].x;
+ bbox[m][0] = MIN(bbox[m][0],x[0]);
+ bbox[m][1] = MAX(bbox[m][1],x[0]);
+ bbox[m][2] = MIN(bbox[m][2],x[1]);
+ bbox[m][3] = MAX(bbox[m][3],x[1]);
+ bbox[m][4] = MIN(bbox[m][4],x[2]);
+ bbox[m][5] = MAX(bbox[m][5],x[2]);
+ }
+
+ // check if any bbox is size 0.0, meaning rigid body is a single particle
+
+ int flag = 0;
+ for (m = 0; m < ncount; m++)
+ if (bbox[m][0] == bbox[m][1] && bbox[m][2] == bbox[m][3] &&
+ bbox[m][4] == bbox[m][5]) flag = 1;
+ int flagall;
+ MPI_Allreduce(&flag,&flagall,1,MPI_INT,MPI_SUM,world); // sync here?
+ if (flagall)
+ error->all(FLERR,"One or more rigid bodies are a single particle");
+
+ // ctr = geometric center pt of each rigid body
+
+ memory->create(ctr,ncount,3,"rigid/small:bbox");
+
+ for (m = 0; m < ncount; m++) {
+ ctr[m][0] = 0.5 * (bbox[m][0] + bbox[m][1]);
+ ctr[m][1] = 0.5 * (bbox[m][2] + bbox[m][3]);
+ ctr[m][2] = 0.5 * (bbox[m][4] + bbox[m][5]);
+ }
+
+ // idclose = atomID closest to center point of each body
+
+ memory->create(idclose,ncount,"rigid/small:idclose");
+ memory->create(iclose,ncount,"rigid/small:iclose");
+ memory->create(rsqclose,ncount,"rigid/small:rsqclose");
+ for (m = 0; m < ncount; m++) rsqclose[m] = BIG;
+
+ for (i = 0; i < n; i++) {
+ m = hash.find(in[i].bodyID)->second;
+ x = in[i].x;
+ delx = x[0] - ctr[m][0];
+ dely = x[1] - ctr[m][1];
+ delz = x[2] - ctr[m][2];
+ rsq = delx*delx + dely*dely + delz*delz;
+ if (rsq <= rsqclose[m]) {
+ if (rsq == rsqclose[m] && in[i].atomID > idclose[m]) continue;
+ iclose[m] = i;
+ idclose[m] = in[i].atomID;
+ rsqclose[m] = rsq;
+ }
+ }
+
+ // compute rsqfar for all bodies I own
+ // set rsqfar back in caller
+
+ double rsqfar = 0.0;
+
+ for (int i = 0; i < n; i++) {
+ m = hash.find(in[i].bodyID)->second;
+ xown = in[iclose[m]].x;
+ x = in[i].x;
+ delx = x[0] - xown[0];
+ dely = x[1] - xown[1];
+ delz = x[2] - xown[2];
+ rsq = delx*delx + dely*dely + delz*delz;
+ rsqfar = MAX(rsqfar,rsq);
+ }
+
+ frsptr->rsqfar = rsqfar;
+
+ // pass list of OutRvous datums back to comm->rendezvous
+
+ int nout = n;
+ memory->create(proclist,nout,"rigid/small:proclist");
+ OutRvous *out = (OutRvous *)
+ memory->smalloc(nout*sizeof(OutRvous),"rigid/small:out");
+
+ for (int i = 0; i < nout; i++) {
+ proclist[i] = in[i].me;
+ out[i].ilocal = in[i].ilocal;
+ m = hash.find(in[i].bodyID)->second;
+ out[i].atomID = idclose[m];
+ }
+
+ outbuf = (char *) out;
// clean up
+ // Comm::rendezvous will delete proclist and out (outbuf)
- delete hash;
- memory->destroy(buf);
memory->destroy(bbox);
memory->destroy(ctr);
memory->destroy(idclose);
+ memory->destroy(iclose);
memory->destroy(rsqclose);
-}
-/* ----------------------------------------------------------------------
- process rigid body atoms from another proc
- update bounding box for rigid bodies my atoms are part of
-------------------------------------------------------------------------- */
+ // flag = 2: new outbuf
-void FixRigidSmall::ring_bbox(int n, char *cbuf, void *ptr)
-{
- FixRigidSmall *frsptr = (FixRigidSmall *) ptr;
- std::map *hash = frsptr->hash;
- double **bbox = frsptr->bbox;
-
- double *buf = (double *) cbuf;
- int ndatums = n/4;
-
- int j,imol;
- double *x;
-
- int m = 0;
- for (int i = 0; i < ndatums; i++, m += 4) {
- imol = static_cast (buf[m]);
- if (hash->find(imol) != hash->end()) {
- j = hash->find(imol)->second;
- x = &buf[m+1];
- bbox[j][0] = MIN(bbox[j][0],x[0]);
- bbox[j][1] = MAX(bbox[j][1],x[0]);
- bbox[j][2] = MIN(bbox[j][2],x[1]);
- bbox[j][3] = MAX(bbox[j][3],x[1]);
- bbox[j][4] = MIN(bbox[j][4],x[2]);
- bbox[j][5] = MAX(bbox[j][5],x[2]);
- }
- }
-}
-
-/* ----------------------------------------------------------------------
- process rigid body atoms from another proc
- update nearest atom to body center for rigid bodies my atoms are part of
-------------------------------------------------------------------------- */
-
-void FixRigidSmall::ring_nearest(int n, char *cbuf, void *ptr)
-{
- FixRigidSmall *frsptr = (FixRigidSmall *) ptr;
- std::map *hash = frsptr->hash;
- double **ctr = frsptr->ctr;
- tagint *idclose = frsptr->idclose;
- double *rsqclose = frsptr->rsqclose;
-
- double *buf = (double *) cbuf;
- int ndatums = n/5;
-
- int j,imol;
- tagint tag;
- double delx,dely,delz,rsq;
- double *x;
-
- int m = 0;
- for (int i = 0; i < ndatums; i++, m += 5) {
- imol = static_cast (buf[m]);
- if (hash->find(imol) != hash->end()) {
- j = hash->find(imol)->second;
- tag = (tagint) ubuf(buf[m+1]).i;
- x = &buf[m+2];
- delx = x[0] - ctr[j][0];
- dely = x[1] - ctr[j][1];
- delz = x[2] - ctr[j][2];
- rsq = delx*delx + dely*dely + delz*delz;
- if (rsq <= rsqclose[j]) {
- if (rsq == rsqclose[j] && tag > idclose[j]) continue;
- idclose[j] = tag;
- rsqclose[j] = rsq;
- }
- }
- }
-}
-
-/* ----------------------------------------------------------------------
- process rigid body atoms from another proc
- update rsqfar = distance from owning atom to other atom
-------------------------------------------------------------------------- */
-
-void FixRigidSmall::ring_farthest(int n, char *cbuf, void *ptr)
-{
- FixRigidSmall *frsptr = (FixRigidSmall *) ptr;
- double **x = frsptr->atom->x;
- imageint *image = frsptr->atom->image;
- int nlocal = frsptr->atom->nlocal;
-
- double *buf = (double *) cbuf;
- int ndatums = n/4;
-
- int iowner;
- tagint tag;
- double delx,dely,delz,rsq;
- double *xx;
- double unwrap[3];
-
- int m = 0;
- for (int i = 0; i < ndatums; i++, m += 4) {
- tag = (tagint) ubuf(buf[m]).i;
- iowner = frsptr->atom->map(tag);
- if (iowner < 0 || iowner >= nlocal) continue;
- frsptr->domain->unmap(x[iowner],image[iowner],unwrap);
- xx = &buf[m+1];
- delx = xx[0] - unwrap[0];
- dely = xx[1] - unwrap[1];
- delz = xx[2] - unwrap[2];
- rsq = delx*delx + dely*dely + delz*delz;
- frsptr->rsqfar = MAX(frsptr->rsqfar,rsq);
- }
+ rflag = 2;
+ return nout;
}
/* ----------------------------------------------------------------------
@@ -2472,9 +2430,9 @@ void FixRigidSmall::readfile(int which, double **array, int *inbody)
int nlocal = atom->nlocal;
- hash = new std::map();
+ std::map hash;
for (i = 0; i < nlocal; i++)
- if (bodyown[i] >= 0) (*hash)[atom->molecule[i]] = bodyown[i];
+ if (bodyown[i] >= 0) hash[atom->molecule[i]] = bodyown[i];
// open file and read header
@@ -2533,11 +2491,11 @@ void FixRigidSmall::readfile(int which, double **array, int *inbody)
id = ATOTAGINT(values[0]);
if (id <= 0 || id > maxmol)
error->all(FLERR,"Invalid rigid body ID in fix rigid/small file");
- if (hash->find(id) == hash->end()) {
+ if (hash.find(id) == hash.end()) {
buf = next + 1;
continue;
}
- m = (*hash)[id];
+ m = hash[id];
inbody[m] = 1;
if (which == 0) {
@@ -2576,7 +2534,6 @@ void FixRigidSmall::readfile(int which, double **array, int *inbody)
delete [] buffer;
delete [] values;
- delete hash;
}
/* ----------------------------------------------------------------------
diff --git a/src/RIGID/fix_rigid_small.h b/src/RIGID/fix_rigid_small.h
index 3f6826f9bb..b5a3d5208d 100644
--- a/src/RIGID/fix_rigid_small.h
+++ b/src/RIGID/fix_rigid_small.h
@@ -22,9 +22,6 @@ FixStyle(rigid/small,FixRigidSmall)
#include "fix.h"
-// replace this later
-#include