Merge branch 'upstream-master' into OSO

This commit is contained in:
alxvov 2019-08-21 14:03:42 +00:00
commit 12c73e7a61
191 changed files with 34351 additions and 7059 deletions

View File

@ -133,6 +133,24 @@ foreach(PKG ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES})
option(PKG_${PKG} "Build ${PKG} Package" OFF)
endforeach()
######################################################
# download and unpack support binaries for compilation
# of windows binaries.
######################################################
if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
set(LAMMPS_THIRDPARTY_URL "http://download.lammps.org/thirdparty")
file(DOWNLOAD "${LAMMPS_THIRDPARTY_URL}/opencl-win-devel.tar.gz" "${CMAKE_CURRENT_BINARY_DIR}/opencl-win-devel.tar.gz"
EXPECTED_MD5 2c00364888d5671195598b44c2e0d44d)
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzf opencl-win-devel.tar.gz WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86")
set(OpenCL_LIBRARY "${CMAKE_CURRENT_BINARY_DIR}/OpenCL/lib_win32/libOpenCL.dll")
elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86_64")
set(OpenCL_LIBRARY "${CMAKE_CURRENT_BINARY_DIR}/OpenCL/lib_win64/libOpenCL.dll")
endif()
set(OpenCL_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/OpenCL/include")
endif()
######################################################
######################################################
# packages with special compiler needs or external libs
######################################################
@ -148,6 +166,7 @@ if(PKG_USER-ADIOS)
endif()
# do MPI detection after language activation, if MPI for these language is required
set(MPI_CXX_SKIP_MPICXX TRUE)
find_package(MPI QUIET)
option(BUILD_MPI "Build MPI version" ${MPI_FOUND})
if(BUILD_MPI)
@ -175,11 +194,13 @@ add_definitions(-DLAMMPS_${LAMMPS_SIZES})
set(LAMMPS_API_DEFINES "${LAMMPS_API_DEFINES} -DLAMMPS_${LAMMPS_SIZES}")
# posix_memalign is not available on Windows
if(NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
set(LAMMPS_MEMALIGN "0" CACHE STRING "posix_memalign() is not available on Windows" FORCE)
else()
set(LAMMPS_MEMALIGN "64" CACHE STRING "enables the use of the posix_memalign() call instead of malloc() when large chunks or memory are allocated by LAMMPS. Set to 0 to disable")
if(NOT ${LAMMPS_MEMALIGN} STREQUAL "0")
add_definitions(-DLAMMPS_MEMALIGN=${LAMMPS_MEMALIGN})
endif()
endif()
if(NOT ${LAMMPS_MEMALIGN} STREQUAL "0")
add_definitions(-DLAMMPS_MEMALIGN=${LAMMPS_MEMALIGN})
endif()
option(LAMMPS_EXCEPTIONS "enable the use of C++ exceptions for error messages (useful for library interface)" OFF)
@ -219,8 +240,7 @@ if(BUILD_OMP)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
endif()
if(PKG_MSCG OR PKG_USER-ATC OR PKG_USER-AWPMD OR PKG_USER-PLUMED OR PKG_USER-QUIP OR PKG_LATTE)
if(PKG_MSCG OR PKG_USER-ATC OR PKG_USER-AWPMD OR PKG_USER-QUIP OR PKG_LATTE)
find_package(LAPACK)
find_package(BLAS)
if(NOT LAPACK_FOUND OR NOT BLAS_FOUND)
@ -230,6 +250,7 @@ if(PKG_MSCG OR PKG_USER-ATC OR PKG_USER-AWPMD OR PKG_USER-PLUMED OR PKG_USER-QUI
enable_language(Fortran)
file(GLOB LAPACK_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/linalg/[^.]*.[fF])
add_library(linalg STATIC ${LAPACK_SOURCES})
set(BLAS_LIBRARIES linalg)
set(LAPACK_LIBRARIES linalg)
else()
list(APPEND LAPACK_LIBRARIES ${BLAS_LIBRARIES})
@ -498,37 +519,36 @@ if(BUILD_LIB)
add_dependencies(lammps ${LAMMPS_DEPS})
endif()
set(LAMMPS_CXX_HEADERS
angle.h
atom.h
bond.h
citeme.h
comm.h
compute.h
dihedral.h
domain.h
error.h
fix.h
force.h
group.h
improper.h
input.h
kspace.h
lammps.h
lattice.h
lmppython.h
memory.h
modify.h
neighbor.h
neigh_list.h
output.h
pair.h
pointers.h
region.h
timer.h
universe.h
update.h
variable.h)
list(TRANSFORM LAMMPS_CXX_HEADERS PREPEND ${LAMMPS_SOURCE_DIR}/)
${LAMMPS_SOURCE_DIR}/angle.h
${LAMMPS_SOURCE_DIR}/atom.h
${LAMMPS_SOURCE_DIR}/bond.h
${LAMMPS_SOURCE_DIR}/citeme.h
${LAMMPS_SOURCE_DIR}/comm.h
${LAMMPS_SOURCE_DIR}/compute.h
${LAMMPS_SOURCE_DIR}/dihedral.h
${LAMMPS_SOURCE_DIR}/domain.h
${LAMMPS_SOURCE_DIR}/error.h
${LAMMPS_SOURCE_DIR}/fix.h
${LAMMPS_SOURCE_DIR}/force.h
${LAMMPS_SOURCE_DIR}/group.h
${LAMMPS_SOURCE_DIR}/improper.h
${LAMMPS_SOURCE_DIR}/input.h
${LAMMPS_SOURCE_DIR}/kspace.h
${LAMMPS_SOURCE_DIR}/lammps.h
${LAMMPS_SOURCE_DIR}/lattice.h
${LAMMPS_SOURCE_DIR}/lmppython.h
${LAMMPS_SOURCE_DIR}/memory.h
${LAMMPS_SOURCE_DIR}/modify.h
${LAMMPS_SOURCE_DIR}/neighbor.h
${LAMMPS_SOURCE_DIR}/neigh_list.h
${LAMMPS_SOURCE_DIR}/output.h
${LAMMPS_SOURCE_DIR}/pair.h
${LAMMPS_SOURCE_DIR}/pointers.h
${LAMMPS_SOURCE_DIR}/region.h
${LAMMPS_SOURCE_DIR}/timer.h
${LAMMPS_SOURCE_DIR}/universe.h
${LAMMPS_SOURCE_DIR}/update.h
${LAMMPS_SOURCE_DIR}/variable.h)
set_target_properties(lammps PROPERTIES OUTPUT_NAME lammps${LAMMPS_LIB_SUFFIX})
set_target_properties(lammps PROPERTIES SOVERSION ${SOVERSION})
@ -569,6 +589,7 @@ if(BUILD_TOOLS)
enable_language(Fortran)
add_executable(chain.x ${LAMMPS_TOOLS_DIR}/chain.f)
target_link_libraries(chain.x ${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES})
install(TARGETS chain.x DESTINATION ${CMAKE_INSTALL_BINDIR})
endif()
enable_language(C)

View File

@ -20,12 +20,16 @@ if(PKG_KIM)
message(FATAL_ERROR "Cannot build downloaded KIM-API library with Ninja build tool")
endif()
message(STATUS "KIM-API download requested - we will build our own")
enable_language(C)
enable_language(Fortran)
include(CheckLanguage)
include(ExternalProject)
enable_language(C)
check_language(Fortran)
if(NOT CMAKE_Fortran_COMPILER)
message(FATAL_ERROR "Compiling the KIM-API library requires a Fortran compiler")
endif()
ExternalProject_Add(kim_build
URL https://s3.openkim.org/kim-api/kim-api-2.1.2.txz
URL_MD5 6ac52e14ef52967fc7858220b208cba5
URL https://s3.openkim.org/kim-api/kim-api-2.1.3.txz
URL_MD5 6ee829a1bbba5f8b9874c88c4c4ebff8
BINARY_DIR build
CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}

View File

@ -1,11 +1,23 @@
if(PKG_USER-PLUMED)
find_package(GSL REQUIRED)
set(PLUMED_MODE "static" CACHE STRING "Linkage mode for Plumed2 library")
set(PLUMED_MODE_VALUES static shared runtime)
set_property(CACHE PLUMED_MODE PROPERTY STRINGS ${PLUMED_MODE_VALUES})
validate_option(PLUMED_MODE PLUMED_MODE_VALUES)
string(TOUPPER ${PLUMED_MODE} PLUMED_MODE)
set(PLUMED_LINK_LIBS "")
if(PLUMED_MODE STREQUAL "STATIC")
find_package(LAPACK REQUIRED)
find_package(BLAS REQUIRED)
find_package(GSL REQUIRED)
list(APPEND LAPACK_LIBRARIES ${BLAS_LIBRARIES})
list(APPEND PLUMED_LINK_LIBS ${LAPACK_LIBRARIES} ${GSL_LIBRARIES})
find_package(ZLIB QUIET)
if(ZLIB_FOUND)
list(APPEND PLUMED_LINK_LIBS ${ZLIB_LIBRARIES})
endif()
endif()
find_package(PkgConfig QUIET)
set(DOWNLOAD_PLUMED_DEFAULT ON)
if(PKG_CONFIG_FOUND)
@ -37,8 +49,8 @@ if(PKG_USER-PLUMED)
message(STATUS "PLUMED download requested - we will build our own")
include(ExternalProject)
ExternalProject_Add(plumed_build
URL https://github.com/plumed/plumed2/releases/download/v2.5.1/plumed-src-2.5.1.tgz
URL_MD5 c2a7b519e32197a120cdf47e0f194f81
URL https://github.com/plumed/plumed2/releases/download/v2.5.2/plumed-src-2.5.2.tgz
URL_MD5 bd2f18346c788eb54e1e52f4f6acf41a
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=<INSTALL_DIR>
${CONFIGURE_REQUEST_PIC}
@ -53,11 +65,11 @@ if(PKG_USER-PLUMED)
list(APPEND LAMMPS_DEPS plumed_build)
if(PLUMED_MODE STREQUAL "STATIC")
add_definitions(-D__PLUMED_WRAPPER_CXX=1)
list(APPEND LAMMPS_LINK_LIBS ${PLUMED_INSTALL_DIR}/lib/libplumed.a ${GSL_LIBRARIES} ${LAPACK_LIBRARIES} ${CMAKE_DL_LIBS})
list(APPEND LAMMPS_LINK_LIBS ${PLUMED_INSTALL_DIR}/lib/libplumed.a ${PLUMED_LINK_LIBS} ${CMAKE_DL_LIBS})
elseif(PLUMED_MODE STREQUAL "SHARED")
list(APPEND LAMMPS_LINK_LIBS ${PLUMED_INSTALL_DIR}/lib/libplumed.so ${PLUMED_INSTALL_DIR}/lib/libplumedKernel.so ${CMAKE_DL_LIBS})
list(APPEND LAMMPS_LINK_LIBS ${PLUMED_INSTALL_DIR}/lib/libplumed${CMAKE_SHARED_LIBRARY_SUFFIX} ${PLUMED_INSTALL_DIR}/lib/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX} ${CMAKE_DL_LIBS})
elseif(PLUMED_MODE STREQUAL "RUNTIME")
add_definitions(-D__PLUMED_HAS_DLOPEN=1 -D__PLUMED_DEFAULT_KERNEL=${PLUMED_INSTALL_DIR}/lib/libplumedKernel.so)
add_definitions(-D__PLUMED_HAS_DLOPEN=1 -D__PLUMED_DEFAULT_KERNEL=${PLUMED_INSTALL_DIR}/lib/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX})
list(APPEND LAMMPS_LINK_LIBS ${PLUMED_INSTALL_DIR}/lib/libplumedWrapper.a -rdynamic ${CMAKE_DL_LIBS})
endif()
set(PLUMED_INCLUDE_DIRS "${PLUMED_INSTALL_DIR}/include")
@ -70,7 +82,7 @@ if(PKG_USER-PLUMED)
elseif(PLUMED_MODE STREQUAL "SHARED")
include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.shared)
elseif(PLUMED_MODE STREQUAL "RUNTIME")
add_definitions(-D__PLUMED_HAS_DLOPEN=1 -D__PLUMED_DEFAULT_KERNEL=${PLUMED_LIBDIR}/libplumedKernel.so)
add_definitions(-D__PLUMED_HAS_DLOPEN=1 -D__PLUMED_DEFAULT_KERNEL=${PLUMED_LIBDIR}/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX})
include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.runtime)
endif()
list(APPEND LAMMPS_LINK_LIBS ${PLUMED_LOAD})

View File

@ -18,8 +18,12 @@ if(PKG_VORONOI)
else()
set(VORO_BUILD_CFLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${BTYPE}}")
endif()
string(APPEND VORO_BUILD_CFLAGS ${CMAKE_CXX_FLAGS})
set(VORO_BUILD_OPTIONS CXX=${CMAKE_CXX_COMPILER} CFLAGS=${VORO_BUILD_CFLAGS})
if(APPLE)
get_filename_component(VORO_CXX ${CMAKE_CXX_COMPILER} NAME_WE)
set(VORO_BUILD_OPTIONS CXX=${VORO_CXX} CFLAGS=${VORO_BUILD_CFLAGS})
else()
set(VORO_BUILD_OPTIONS CXX=${CMAKE_CXX_COMPILER} CFLAGS=${VORO_BUILD_CFLAGS})
endif()
ExternalProject_Add(voro_build
URL https://download.lammps.org/thirdparty/voro++-0.4.6.tar.gz

View File

@ -33,12 +33,17 @@ tasks, act as a reference and provide examples of typical use cases.
* [Package-Specific Configuration Options](#package-specific-configuration-options)
* [KSPACE Package](#kspace-package)
* [MKL](#mkl)
* [FFTW2](#fftw2)
* [FFTW3](#fftw3)
* [BLAS](#blas)
* [LAPACK](#lapack)
* [PYTHON Package](#python-package)
* [GPU Package](#gpu-package)
* [MESSAGE Package](#message-package)
* [MSCG Package](#mscg-package)
* [VORONOI Package](#voronoi-package)
* [USER-LATTE Package](#user-latte-package)
* [USER-PLUMED Package](#user-plumed-package)
* [USER-SCAFACOS Package](#user-scafacos-package)
* [USER-SMD Package](#user-smd-package)
* [Optional Features](#optional-features)
* [zlib support](#zlib-support)
@ -50,8 +55,6 @@ tasks, act as a reference and provide examples of typical use cases.
* [Building with GNU Compilers](#building-with-gnu-compilers)
* [Building with Intel Compilers](#building-with-intel-compilers)
* [Building with LLVM/Clang Compilers](#building-with-llvmclang-compilers)
* [Examples](#examples)
## Quick Start for the Impatient
If you want to skip ahead and just run the compilation using `cmake`, please
@ -205,8 +208,10 @@ cmake -C ../cmake/presets/all_on.cmake -C ../cmake/presets/nolib.cmake -D PKG_GP
<td>Controls if debugging symbols are added to the generated binaries</td>
<td>
<dl>
<dt><code>Release</code> (default)</dt>
<dt><code>RelWithDebInfo (default)</code></dt>
<dt><code>Release</code></dt>
<dt><code>Debug</code></dt>
<dt><code>MinSizeRel</code></dt>
</dl>
</td>
</tr>
@ -249,6 +254,16 @@ cmake -C ../cmake/presets/all_on.cmake -C ../cmake/presets/nolib.cmake -D PKG_GP
</dl>
</td>
</tr>
<tr>
<td><code>LAMMPS_LONGLONG_TO_LONG</code></td>
<td>Workaround if your system or MPI version does not recognize <code>long long</code> data types</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>LAMMPS_MEMALIGN</code></td>
<td>controls the alignment of blocks of memory allocated by LAMMPS</td>
@ -271,7 +286,16 @@ cmake -C ../cmake/presets/all_on.cmake -C ../cmake/presets/nolib.cmake -D PKG_GP
</tr>
<tr>
<td><code>LAMMPS_MACHINE</code></td>
<td>allows appending a machine suffix to the generate LAMMPS binary</td>
<td>allows appending a machine suffix to the generated LAMMPS binary</td>
<td>
<dl>
<dt>*none* (default)</dt>
</dl>
</td>
</tr>
<tr>
<td><code>LAMMPS_LIB_SUFFIX</code></td>
<td>allows appending a suffix to the generated LAMMPS library</td>
<td>
<dl>
<dt>*none* (default)</dt>
@ -319,8 +343,8 @@ cmake -C ../cmake/presets/all_on.cmake -C ../cmake/presets/nolib.cmake -D PKG_GP
</td>
</tr>
<tr>
<td><code>LAMMPS_LONGLONG_TO_LONG</code></td>
<td>Workaround if your system or MPI version does not recognize <code>long long</code> data types</td>
<td><code>BUILD_TOOLS</code></td>
<td>control whether to build LAMMPS tools</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
@ -561,23 +585,6 @@ cmake -C ../cmake/presets/all_on.cmake -C ../cmake/presets/nolib.cmake -D PKG_GP
</dl>
</td>
</tr>
<tr>
<td><code>PKG_MEAM</code></td>
<td>
<p>A pair style for the modified embedded atom (MEAM) potential.</p>
<p><strong>Please note that the MEAM package has been superseded by the USER-MEAMC package,
which is a direct translation of the MEAM package to C++. USER-MEAMC contains
additional optimizations making it run faster than MEAM on most machines, while
providing the identical features and USER interface.</strong></p>
</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_MISC</code></td>
<td>
@ -634,21 +641,6 @@ providing the identical features and USER interface.</strong></p>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_REAX</code></td>
<td>
A pair style which wraps a Fortran library which implements the ReaxFF
potential, which is a universal reactive force field. See the USER-REAXC
package for an alternate implementation in C/C++. Also a fix reax/bonds
command for monitoring molecules as bonds are created and destroyed.
</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_REPLICA</code></td>
<td>
@ -695,6 +687,16 @@ providing the identical features and USER interface.</strong></p>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_SPIN</code></td>
<td>Model atomic magnetic spins classically, coupled to atoms moving in the usual manner via MD. Various pair, fix, and compute styles.</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_SNAP</code></td>
<td>
@ -757,6 +759,16 @@ providing the identical features and USER interface.</strong></p>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_MESSAGE</code></td>
<td>Commands to use LAMMPS as either a client or server and couple it to another application.</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_MSCG</code></td>
<td>
@ -811,6 +823,18 @@ providing the identical features and USER interface.</strong></p>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_VORONOI</code></td>
<td>
A compute command which calculates the Voronoi tesselation of a collection of atoms by wrapping the Voro++ library. This can be used to calculate the local volume or each atoms or its near neighbors.
</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
</tbody>
</table>
@ -825,6 +849,16 @@ providing the identical features and USER interface.</strong></p>
</tr>
</thead>
<tbody>
<tr>
<td><code>PKG_USER-ADIOS</code></td>
<td>ADIOS is a high-performance I/O library. This package implements the dump “atom/adios” and dump “custom/adios” commands to write data using the ADIOS library.</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_USER-ATC</code></td>
<td>
@ -853,6 +887,18 @@ providing the identical features and USER interface.</strong></p>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_USER-BOCS</code></td>
<td>
This package provides fix bocs, a modified version of fix npt which includes the pressure correction to the barostat as outlined in: N. J. H. Dunn and W. G. Noid, “Bottom-up coarse-grained models that accurately describe the structure, pressure, and compressibility of molecular liquids,” J. Chem. Phys. 143, 243148 (2015).
</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_USER-CGDNA</code></td>
<td>
@ -1142,6 +1188,30 @@ providing the identical features and USER interface.</strong></p>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_USER-PLUMED</code></td>
<td>
The fix plumed command allows you to use the PLUMED free energy plugin for molecular dynamics to analyze and bias your LAMMPS trajectory on the fly. The PLUMED library is called from within the LAMMPS input script by using the <code>fix plumed</code> command.
</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_USER-PTM</code></td>
<td>
A <code>compute ptm/atom</code> command that calculates local structure characterization using the Polyhedral Template Matching methodology.
</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_USER-QTB</code></td>
<td>
@ -1197,6 +1267,33 @@ providing the identical features and USER interface.</strong></p>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_USER-SCAFACOS</code></td>
<td>
A KSpace style which wraps the ScaFaCoS Coulomb solver library to compute long-range Coulombic interactions.
</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_USER-SDPD</code></td>
<td>
A pair style for smoothed dissipative particle dynamics (SDPD), which is an
extension of smoothed particle hydrodynamics (SPH) to mesoscale where thermal
fluctuations are important (see the USER-SPH package). Also two fixes for
moving and rigid body integration of SPH/SDPD particles (particles of
<code>atom_style meso</code>).</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_USER-SMD</code></td>
<td>
@ -1280,6 +1377,23 @@ providing the identical features and USER interface.</strong></p>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_USER-YAFF</code></td>
<td>
Some potentials that are also implemented in the Yet Another Force Field (YAFF) code.
The expressions and their use are discussed in the following papers:
<ul>
<li><a href="http://dx.doi.org/10.1002/jcc.23877" target="_blank">Vanduyfhuys et al., J. Comput. Chem., 36 (13), 1015-1027 (2015)</a></li>
<li><a href="http://dx.doi.org/10.1002/jcc.25173" target="_blank">Vanduyfhuys et al., J. Comput. Chem., 39 (16), 999-1011 (2018)</a></li>
</ul>
</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
</tbody>
</table>
@ -1300,14 +1414,27 @@ providing the identical features and USER interface.</strong></p>
<td><code>FFT</code></td>
<td>
<p>FFT library for KSPACE package</p>
<p>If either MKL or FFTW is selected <code>cmake</code> will try to locate these libraries automatically. To control which one should be used please see the options below for each FFT library.</p>
<p>If either MKL or FFTW is selected <code>cmake</code> will try to locate
these libraries automatically. To control which one should be used please see
the options below for each FFT library. Otherwise it will default to KISS
FFT.</p>
</td>
<td>
<dl>
<dt><code>KISS</code></dt>
<dt><code>FFTW3</code></dt>
<dt><code>FFTW2</code></dt>
<dt><code>MKL</code></dt>
<dt><code>KISS</code> (default)</dt>
</dl>
</td>
</tr>
<tr>
<td><code>FFT_SINGLE</code></td>
<td>Use single-precision floating-point in FFT</td>
<td>
<dl>
<dt><code>off</code> (default = double precision)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
@ -1325,60 +1452,6 @@ providing the identical features and USER interface.</strong></p>
</tbody>
</table>
### MKL
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>MKL_INCLUDE_DIRS</code></td>
<td></td>
<td>
</td>
</tr>
<tr>
<td><code>MKL_LIBRARIES</code></td>
<td></td>
<td>
</td>
</tr>
</tbody>
</table>
TODO static vs dynamic linking
### FFTW2
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>FFTW2_INCLUDE_DIRS</code></td>
<td></td>
<td>
</td>
</tr>
<tr>
<td><code>FFTW2_LIBRARIES</code></td>
<td></td>
<td>
</td>
</tr>
</tbody>
</table>
### FFTW3
<table>
@ -1392,24 +1465,57 @@ TODO static vs dynamic linking
<tbody>
<tr>
<td><code>FFTW3_INCLUDE_DIRS</code></td>
<td></td>
<td>path to FFTW3 include files</td>
<td>
</td>
</tr>
<tr>
<td><code>FFTW3_LIBRARIES</code></td>
<td></td>
<td>list of paths to FFTW3 libraries</td>
<td>
</td>
</tr>
</tbody>
</table>
### MKL
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>MKL_INCLUDE_DIRS</code></td>
<td>path to MKL include files</td>
<td>
</td>
</tr>
<tr>
<td><code>MKL_LIBRARIES</code></td>
<td>list of paths to MKL libraries</td>
<td>
</td>
</tr>
</tbody>
</table>
### BLAS
See [FindBLAS documentation](https://cmake.org/cmake/help/latest/module/FindBLAS.html)
### LAPACK
TODO
See [FindLAPACK documentation](https://cmake.org/cmake/help/latest/module/FindLAPACK.html)
### PYTHON Package
See [FindPYTHON documentation](https://cmake.org/cmake/help/latest/module/FindPython.html)
### USER-INTEL Package
<table>
@ -1499,10 +1605,11 @@ target API.
<td>
<dl>
<dt><code>sm_20</code> (Fermi)</dt>
<dt><code>sm_30</code> (Kepler)</dt>
<dt><code>sm_30</code> (Kepler) (default)</dt>
<dt><code>sm_50</code> (Maxwell)</dt>
<dt><code>sm_60</code> (Pascal)</dt>
<dt><code>sm_70</code> (Volta)</dt>
<dt><code>sm_75</code> (Turing)</dt>
</dl>
</td>
</tr>
@ -1534,13 +1641,14 @@ target API.
</tbody>
</table>
### VORONOI Package
### KIM Package
TODO
Requires installation of the KIM library with API v2
### USER-SMD Package
Requires a Eigen3 installation
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` can be found.
<table>
<thead>
@ -1551,9 +1659,323 @@ Requires a Eigen3 installation
</tr>
</thead>
<tbody>
<tr>
<td><code>DOWNLOAD_KIM</code></td>
<td>Download KIM API v2 and compile it as part of the build.</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
</tbody>
</table>
### MESSAGE Package
This package can optionally include support for messaging via sockets, using the open-source [ZeroMQ library](http://zeromq.org/), which must be installed on your system.
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>MESSAGE_ZMQ</code></td>
<td>Build with ZeroMQ support</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>ZMQ_LIBRARY</code></td>
<td>
ZMQ library file (only needed if at custom location)
</td>
<td>
</td>
</tr>
<tr>
<td><code>ZMG_INCLUDE_DIR</code></td>
<td>
Provide include directory of existing ZMQ installation (only needed if at custom location)
</td>
<td>
</td>
</tr>
</tbody>
</table>
### MSCG Package
Requires installation of the MSCG library
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>DOWNLOAD_MSCG</code></td>
<td>Download MSCG and compile it as part of the build</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>MSCG_LIBRARY</code></td>
<td>
MSCG library file (only needed if at custom location)
</td>
<td>
</td>
</tr>
<tr>
<td><code>MSCG_INCLUDE_DIR</code></td>
<td>
Provide include directory of existing MSCG installation (only needed if at custom location)
</td>
<td>
</td>
</tr>
</tbody>
</table>
### VORONOI Package
Requires installation of the Voro++ library
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>DOWNLOAD_VORO</code></td>
<td>Download Voro++ and compile it as part of the build</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>VORO_LIBRARY</code></td>
<td>
Voro++ library file (only needed if at custom location)
</td>
<td>
</td>
</tr>
<tr>
<td><code>VORO_INCLUDE_DIR</code></td>
<td>
Provide include directory of existing Voro++ installation (only needed if at custom location)
</td>
<td>
</td>
</tr>
</tbody>
</table>
### USER-LATTE Package
Requires installation of the LATTE library
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>DOWNLOAD_LATTE</code></td>
<td>Download LATTE and compile it as part of the build</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>LATTE_LIBRARY</code></td>
<td>
LATTE library file (only needed if at custom location)
</td>
<td>
</td>
</tr>
</tbody>
</table>
### USER-PLUMED Package
Requires installation of the PLUMED library
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>DOWNLOAD_PLUMED</code></td>
<td>Download PLUMED and compile it as part of the build</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PLUMED_MODE</code></td>
<td>
Determines the linkage mode for the PLUMED library.
</td>
<td>
<dl>
<dt><code>static</code> (default)</dt>
<dt><code>shared</code></dt>
<dt><code>runtime</code></dt>
</dl>
</td>
</tr>
</tbody>
</table>
### USER-LATTE Package
Requires installation of the LATTE library
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>DOWNLOAD_LATTE</code></td>
<td>Download LATTE and compile it as part of the build</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>LATTE_LIBRARY</code></td>
<td>
LATTE library file (only needed if at custom location)
</td>
<td>
</td>
</tr>
</tbody>
</table>
### USER-SMD Package
Requires installation of the Eigen3 library
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>DOWNLOAD_EIGEN3</code></td>
<td>Download Eigen3 and compile it as part of the build</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>EIGEN3_INCLUDE_DIR</code></td>
<td></td>
<td>
Provide include directory of existing Eigen3 installation (only needed if at custom location)
</td>
<td>
</td>
</tr>
</tbody>
</table>
### USER-SCAFACOS Package
To build with this package, you must download and build the [ScaFaCoS Coulomb solver library](http://www.scafacos.de/)
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>DOWNLOAD_SCAFACOS</code></td>
<td>Download SCAFACOS and compile it as part of the build</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>SCAFACOS_LIBRARY</code></td>
<td>
SCAFACOS library file (only needed if at custom location)
</td>
<td>
</td>
</tr>
<tr>
<td><code>SCAFACOS_INCLUDE_DIR</code></td>
<td>
SCAFACOS include directory (only needed if at custom location)
</td>
<td>
</td>
</tr>
@ -1791,5 +2213,82 @@ cmake -D CMAKE_C_COMPILER=icc -D CMAKE_CXX_COMPILER=icpc -D CMAKE_Fortran_COMPIL
cmake -D CMAKE_C_COMPILER=clang -D CMAKE_CXX_COMPILER=clang++ -D CMAKE_Fortran_COMPILER=flang ../cmake
```
## LAMMPS Developer Options
## Examples
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>ENABLE_TESTING</code></td>
<td>Control wheather to add tests via CTest</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>LAMMPS_TESTING_SOURCE_DIR</code></td>
<td>Custom location of lammps-testing repository (optional). If not specified it will download it via Git</td>
<td>
</td>
</tr>
<tr>
<td><code>LAMMPS_TESTING_GIT_TAG</code></td>
<td>If lammps-testing repository is cloned, this is the tag/commit that will be checked out</td>
<td>
<dl>
<dt><code>master</code> (default)</dt>
</dl>
</td>
</tr>
<tr>
<td><code>ENABLE_COVERAGE</code></td>
<td>Enables code coverage support via gcov and adds a gcovr build target to generate a coverage report.</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>ENABLE_SANITIZE_ADDRESS</code></td>
<td>Enables Address Sanitizer support when compiling using GCC or Clang for detecting memory leaks in binaries while running them. See https://clang.llvm.org/docs/AddressSanitizer.html</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>ENABLE_SANITIZE_UNDEFINED</code></td>
<td>Enables Undefined Behavior Sanitizer support when compiling using GCC or Clang for detecting code that is running into undefined behavior of the language. See https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>ENABLE_SANITIZE_THREAD</code></td>
<td>Enables Thread Sanitizer support when compiling using GCC or Clang for detecting data races in binaries while running them. See https://clang.llvm.org/docs/ThreadSanitizer.html</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
</tbody>
</table>

View File

@ -3,9 +3,9 @@ set(WIN_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU
REPLICA RIGID SHOCK SNAP SPIN SRD VORONOI USER-ATC USER-AWPMD
USER-BOCS USER-CGDNA USER-CGSDK USER-COLVARS USER-DIFFRACTION
USER-DPD USER-DRUDE USER-EFF USER-FEP USER-INTEL USER-MANIFOLD
USER-MEAMC USER-MESO USER-MISC USER-MOFFF USER-MOLFILE USER-OMP
USER-PHONON USER-PTM USER-QTB USER-REAXC USER-SDPD USER-SMD
USER-SMTBQ USER-SPH USER-TALLY USER-UEF USER-YAFF)
USER-MEAMC USER-MESO USER-MISC USER-MGPT USER-MOFFF USER-MOLFILE
USER-OMP USER-PHONON USER-PTM USER-QTB USER-REAXC USER-SDPD
USER-SMD USER-SMTBQ USER-SPH USER-TALLY USER-UEF USER-YAFF)
foreach(PKG ${WIN_PACKAGES})
set(PKG_${PKG} ON CACHE BOOL "" FORCE)
@ -14,4 +14,4 @@ endforeach()
set(DOWNLOAD_VORO ON CACHE BOOL "" FORCE)
set(DOWNLOAD_EIGEN3 ON CACHE BOOL "" FORCE)
set(LAMMPS_MEMALIGN "0" CACHE STRING "" FORCE)
set(INTEL_LRT_MODE "none" CACHE STRING "" FORCE)
set(CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/lammps-installer")

View File

@ -107,7 +107,7 @@ Include files should be included in this order:
#### pointers.h
The `pointer.h` header file also includes `cstdio` and `lmptype.h`
(and through it `stdint.h`, `intttypes.h`, and `climits`).
(and through it `stdint.h`, `intttypes.h`, cstdlib, and `climits`).
This means any header including `pointers.h` can assume that `FILE`,
`NULL`, `INT_MAX` are defined.

View File

@ -1,4 +1,4 @@
.TH LAMMPS "19 July 2019" "2019-07-19"
.TH LAMMPS "7 August 2019" "2019-08-07"
.SH NAME
.B LAMMPS
\- Molecular Dynamics Simulator.

View File

@ -29,6 +29,7 @@ as described on the "Install"_Install.html doc page.
Build_package
Build_extras
Build_windows
Build_development
END_RST -->
@ -41,7 +42,8 @@ END_RST -->
"Optional build settings"_Build_settings.html
"Include packages in build"_Build_package.html
"Packages with extra build options"_Build_extras.html
"Notes for building LAMMPS on Windows"_Build_windows.html :all(b)
"Notes for building LAMMPS on Windows"_Build_windows.html
"Development build options (CMake only)"_Build_development.html :all(b)
If you have problems building LAMMPS, it is often due to software
issues on your local machine. If you can, find a local expert to

View File

@ -235,12 +235,16 @@ running LAMMPS from Python via its library interface.
-D BUILD_EXE=value # yes (default) or no
-D BUILD_LIB=value # yes or no (default)
-D BUILD_SHARED_LIBS=value # yes or no (default) :pre
-D BUILD_SHARED_LIBS=value # yes or no (default)
-D LAMMPS_LIB_SUFFIX=name # name = mpi, serial, mybox, titan, laptop, etc
# no default value :pre
Setting BUILD_EXE=no will not produce an executable. Setting
BUILD_LIB=yes will produce a static library named liblammps.a.
Setting both BUILD_LIB=yes and BUILD_SHARED_LIBS=yes will produce a
shared library named liblammps.so.
shared library named liblammps.so. If LAMMPS_LIB_SUFFIX is set the generated
libraries will be named liblammps_name.a or liblammps_name.so instead.
[Traditional make]:
@ -310,6 +314,30 @@ current LAMMPS version (HTML and PDF files), from the website
:line
Build LAMMPS tools :h4,link(tools)
Some tools described in "Auxiliary tools"_Tools.html can be built directly
using CMake or Make.
[CMake variable]:
-D BUILD_TOOLS=value # yes or no (default) :pre
The generated binaries will also become part of the LAMMPS installation (see below)
[Traditional make]:
cd lammps/tools
make all # build all binaries of tools
make binary2txt # build only binary2txt tool
make chain # build only chain tool
make micelle2d # build only micelle2d tool
make thermo_extract # build only thermo_extract tool
:pre
:line
Install LAMMPS after a build :h4,link(install)
After building LAMMPS, you may wish to copy the LAMMPS executable of

View File

@ -120,7 +120,7 @@ The argument can be preceeded or followed by various CMake
command-line options. Several useful ones are:
-D CMAKE_INSTALL_PREFIX=path # where to install LAMMPS executable/lib if desired
-D CMAKE_BUILD_TYPE=type # type = Release or Debug
-D CMAKE_BUILD_TYPE=type # type = RelWithDebInfo (default), Release, MinSizeRel, or Debug
-G output # style of output CMake generates
-DVARIABLE=value # setting for a LAMMPS feature to enable
-D VARIABLE=value # ditto, but cannot come after CMakeLists.txt dir

View File

@ -0,0 +1,86 @@
"Higher level section"_Build.html - "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
Development build options (CMake only) :h3
The CMake build of LAMMPS has a few extra options which are useful during
development, testing or debugging.
:line
Verify compilation flags :h4,link(compilation)
Sometimes it is necessary to verify the complete sequence of compilation flags
generated by the CMake build. To enable a more verbose output during
compilation you can use the following option.
-D CMAKE_VERBOSE_MAKEFILE=value # value = no (default) or yes :pre
Another way of doing this without reconfiguration is calling make with variable VERBOSE set to 1:
make VERBOSE=1 :pre
:line
Address, Undefined Behavior, and Thread Sanitizer Support :h4,link(sanitizer)
Compilers such as GCC and Clang support generating binaries which use different
sanitizers to detect problems in code during run-time. They can detect "memory leaks"_https://clang.llvm.org/docs/AddressSanitizer.html,
code that runs into "undefined behavior"_https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html of the
language and "data races"_https://clang.llvm.org/docs/ThreadSanitizer.html in threaded code.
The following settings allow you enable these features if your compiler supports
it. Please note that they come with a performance hit. However, they are
usually faster than using tools like Valgrind.
-D ENABLE_SANITIZE_ADDRESS=value # enable Address Sanitizer, value = no (default) or yes
-D ENABLE_SANITIZE_UNDEFINED=value # enable Undefined Behaviour Sanitizer, value = no (default) or yes
-D ENABLE_SANITIZE_THREAD=value # enable Thread Sanitizer, value = no (default) or yes
:pre
:line
Code Coverage and Testing :h4,link(testing)
We do extensive regression testing of the LAMMPS code base on a continuous
basis. Some of the logic to do this has been added to the CMake build so
developers can run the tests directly on their workstation.
NOTE: this is incomplete and only represents a small subset of tests that we run
-D ENABLE_TESTING=value # enable simple run tests of LAMMPS, value = no (default) or yes
-D LAMMPS_TESTING_SOURCE_DIR=path # path to lammps-testing repository (option if in custom location)
-D LAMMPS_TESTING_GIT_TAG=value # version of lammps-testing repository that should be used, value = master (default) or custom git commit or tag
:pre
If you enable testing in the CMake build it will create an additional target called "test". You can run them with:
make test
:pre
The test cases used come from the lammps-testing repository. They are
derivatives of the examples folder with some modifications to make the run
faster.
You can also collect code coverage metrics while running the tests by enabling
coverage support during building.
-D ENABLE_COVERAGE=value # enable coverage measurements, value = no (default) or yes :pre
This will also add the following targets to generate coverage reports after running the LAMMPS executable:
make test # run tests first!
make gen_coverage_html # generate coverage report in HTML format
make gen_coverage_xml # generate coverage report in XML format
:pre
These reports require GCOVR to be installed. The easiest way to do this to install it via pip:
pip install git+https://github.com/gcovr/gcovr.git :pre
:pre

View File

@ -88,7 +88,7 @@ which GPU hardware to build for.
# 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
# default is sm_30
-D CUDPP_OPT=value # optimization setting for GPU_API=cuda
# enables CUDA Performance Primitives Optimizations
# value = yes (default) or no
@ -354,6 +354,9 @@ be installed on your system.
[CMake build]:
-D MESSAGE_ZMQ=value # build with ZeroMQ support, value = no (default) or yes
-D ZMQ_LIBRARY=path # ZMQ library file (only needed if a custom location)
-D ZMQ_INCLUDE_DIR=path # ZMQ include directory (only needed if a custom location)
:pre
[Traditional make]:
@ -366,6 +369,7 @@ simply invoke the lib/message/Install.py script with the specified args:
make lib-message # print help message
make lib-message args="-m -z" # build with MPI and socket (ZMQ) support
make lib-message args="-s" # build as serial lib with no ZMQ support
:pre
The build should produce two files: lib/message/cslib/src/libmessage.a
and lib/message/Makefile.lammps. The latter is copied from an

View File

@ -65,6 +65,7 @@ OPT.
"colloid (go)"_pair_colloid.html,
"comb (o)"_pair_comb.html,
"comb3"_pair_comb.html,
"cosine/squared"_pair_cosine_squared.html,
"coul/cut (gko)"_pair_coul.html,
"coul/cut/soft (o)"_pair_fep_soft.html,
"coul/debye (gko)"_pair_coul.html,

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

View File

@ -0,0 +1,16 @@
\documentclass[12pt]{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
E =
\begin{cases}
-\epsilon& \quad r < \sigma \\
-\epsilon\cos\left(\frac{\pi\left(r - \sigma\right)}{2\left(r_c - \sigma\right)}\right)&\quad \sigma \leq r < r_c \\
0& \quad r \geq r_c
\end{cases}
\end{align*}
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@ -0,0 +1,11 @@
\documentstyle[12pt]{article}
\begin{document}
$$
E = \epsilon \left[ \left(\frac{\sigma}{r}\right)^{12} -
2\left(\frac{\sigma}{r}\right)^6 + 1\right]
, \quad r < \sigma
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 KiB

After

Width:  |  Height:  |  Size: 49 KiB

View File

@ -27,7 +27,7 @@
V_{ij} & = & e^{-\lambda (r_{ij} -z_0)} \left [ C + f(\rho_{ij}) + f(\rho_{ji}) - A \left ( \frac{r_{ij}}{z_0}\right )^{-6} \right ] \\
\rho_{ij}^2 & = & r_{ij}^2 - ({\bf r}_{ij}\cdot {\bf n}_{i})^2 \\[15pt]
\rho_{ji}^2 & = & r_{ij}^2 - ({\bf r}_{ij}\cdot {\bf n}_{j})^2 \\[15pt]
f(\rho) & = & e^{-(\rho/\delta)^2} \sum_{n=0}^2 C_{2n} { \rho/\delta }^{2n}
f(\rho) & = & e^{-(\rho/\delta)^2} \sum_{n=0}^2 C_{2n} { (\rho/\delta) }^{2n}
\end{eqnarray*}
\endgroup
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View File

@ -1,7 +1,7 @@
<!-- HTML_ONLY -->
<HEAD>
<TITLE>LAMMPS Users Manual</TITLE>
<META NAME="docnumber" CONTENT="19 Jul 2019 version">
<META NAME="docnumber" CONTENT="7 Aug 2019 version">
<META NAME="author" CONTENT="http://lammps.sandia.gov - Sandia National Laboratories">
<META NAME="copyright" CONTENT="Copyright (2003) Sandia Corporation. This software and manual is distributed under the GNU General Public License.">
</HEAD>
@ -21,7 +21,7 @@
:line
LAMMPS Documentation :c,h1
19 Jul 2019 version :c,h2
7 Aug 2019 version :c,h2
"What is a LAMMPS version?"_Manual_version.html

View File

@ -1191,7 +1191,7 @@ USER-PLUMED package :link(PKG-USER-PLUMED),h4
The fix plumed command allows you to use the PLUMED free energy plugin
for molecular dynamics to analyze and bias your LAMMPS trajectory on
the fly. The PLUMED library is called from within the LAMMPS input
script by using the "fix plumed _fix_plumed.html command.
script by using the "fix plumed"_fix_plumed.html command.
[Authors:] The "PLUMED library"_#PLUMED is written and maintained by
Massimilliano Bonomi, Giovanni Bussi, Carlo Camiloni and Gareth

View File

@ -217,6 +217,7 @@ compute"_Commands_compute.html doc page are followed by one or more of
"heat/flux"_compute_heat_flux.html - heat flux through a group of atoms
"heat/flux/tally"_compute_tally.html -
"hexorder/atom"_compute_hexorder_atom.html - bond orientational order parameter q6
"hma"_compute_hma.html - harmonically mapped averaging for atomic crystals
"improper"_compute_improper.html - energy of each improper sub-style
"improper/local"_compute_improper_local.html - angle of each improper
"inertia/chunk"_compute_inertia_chunk.html - inertia tensor for each chunk

View File

@ -65,7 +65,7 @@ In an isotropic liquid, local neighborhoods may still exhibit
weak hexagonal symmetry, but because the orientational correlation
decays quickly with distance, the value of phi will be different for
different atoms, and so when {q}6 is averaged over all the atoms
in the system, \|<{q}6>\| << 1.
in the system, |<{q}6>| << 1.
The value of {qn} is set to zero for atoms not in the
specified compute group, as well as for atoms that have less than

184
doc/src/compute_hma.txt Normal file
View File

@ -0,0 +1,184 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
compute hma command :h3
[Syntax:]
compute ID group-ID hma temp-ID keyword ... :pre
ID, group-ID are documented in "compute"_compute.html command :l
hma = style name of this compute command :l
temp-ID = ID of fix that specifies the set temperature during canonical simulation :l
keyword = {anharmonic} {u} {p Pharm} {cv} :l
{anharmonic} = compute will return anharmonic property values
{u} = compute will return potential energy
{p} = compute will return pressure. the following keyword must be the difference between the harmonic pressure and lattice pressure as described below
{cv} = compute will return the heat capacity :pre
:ule
[Examples:]
compute 2 all hma 1 u
compute 2 all hma 1 anharmonic u p 0.9
compute 2 all hma 1 u cv :pre
[Description:]
Define a computation that calculates the properties of a solid (potential
energy, pressure or heat capacity), using the harmonically-mapped averaging
(HMA) method.
This command yields much higher precision than the equivalent compute commands
("compute pe"_compute_pe.html, "compute pressure"_compute_pressure.html, etc.)
commands during a canonical simulation of an atomic crystal. Specifically,
near melting HMA can yield averages of a given precision an order of magnitude
faster than conventional methods, and this only improves as the temperatures is
lowered. This is particularly important for evaluating the free energy by
thermodynamic integration, where the low-temperature contributions are the
greatest source of statistical uncertainty. Moreover, HMA has other
advantages, including smaller potential-truncation effects, finite-size
effects, smaller timestep inaccuracy, faster equilibration and shorter
decorrelation time.
HMA should not be used if atoms are expected to diffuse. It is also
restricted to simulations in the NVT ensemble. While this compute may be
used with any potential in LAMMPS, it will provide inaccurate results
for potentials that do not go to 0 at the truncation distance;
"pair_lj_smooth_linear"_pair_lj_smooth_linear.html and Ewald summation should
work fine, while "pair_lj"_pair_lj.html will perform poorly unless
the potential is shifted (via "pair_modify"_pair_modify.html shift) or the cutoff is large. Furthermore, computation of the heat capacity with
this compute is restricted to those that implement the single_hessian method
in Pair. Implementing single_hessian in additional pair styles is simple.
Please contact Andrew Schultz (ajs42 at buffalo.edu) and David Kofke (kofke at
buffalo.edu) if your desired pair style does not have this method. This is
the list of pair styles that currently implement pair_hessian:
"lj_smooth_linear"_pair_lj_smooth_linear.html :l
:ule
In this method, the analytically known harmonic behavior of a crystal is removed from the traditional ensemble
averages, which leads to an accurate and precise measurement of the anharmonic contributions without contamination
by noise produced by the already-known harmonic behavior.
A detailed description of this method can be found in ("Moustafa"_#hma-Moustafa). The potential energy is computed by the formula:
\begin\{equation\}
\left< U\right>_\{HMA\} = \frac\{d\}\{2\} (N-1) k_B T + \left< U + \frac\{1\}\{2\} F\bullet\Delta r \right>
\end\{equation\}
where \(N\) is the number of atoms in the system, \(k_B\) is Boltzmann's
constant, \(T\) is the temperature, \(d\) is the
dimensionality of the system (2 or 3 for 2d/3d), \(F\bullet\Delta r\) is the sum of dot products of the
atomic force vectors and displacement (from lattice sites) vectors, and \(U\) is the sum of
pair, bond, angle, dihedral, improper, kspace (long-range), and fix energies.
The pressure is computed by the formula:
\begin\{equation\}
\left< P\right>_\{HMA\} = \Delta \hat P + \left< P_\{vir\} + \frac\{\beta \Delta \hat P - \rho\}\{d(N-1)\} F\bullet\Delta r \right>
\end\{equation\}
where \(\rho\) is the number density of the system, \(\Delta \hat P\) is the
difference between the harmonic and lattice pressure, \(P_\{vir\}\) is
the virial pressure computed as the sum of pair, bond, angle, dihedral,
improper, kspace (long-range), and fix contributions to the force on each
atom, and \(k_B=1/k_B T\). Although the method will work for any value of \(\Delta \hat P\)
specified (use pressure "units"_units.html), the precision of the resultant
pressure is sensitive to \(\Delta \hat P\); the precision tends to be
best when \(\Delta \hat P\) is the actual the difference between the lattice
pressure and harmonic pressure.
\begin\{equation\}
\left<C_V \right>_\{HMA\} = \frac\{d\}\{2\} (N-1) k_B + \frac\{1\}\{k_B T^2\} \left( \left<
U_\{HMA\}^2 \right> - \left<U_\{HMA\}\right>^2 \right) + \frac\{1\}\{4 T\}
\left< F\bullet\Delta r + \Delta r \bullet \Phi \bullet \Delta r \right>
\end\{equation\}
where \(\Phi\) is the Hessian matrix. The compute hma command
computes the full expression for \(C_V\) except for the
\(\left<U_\{HMA\}^2\right>^2\) in the variance term, which can be obtained by
passing the {u} keyword; you must add this extra contribution to the \(C_V\)
value reported by this compute. The variance term can cause significant
round-off error when computing \(C_V\). To address this, the {anharmonic}
keyword can be passed and/or the output format can be specified with more
digits.
thermo_modify format float '%22.15e' :pre
The {anharmonic} keyword will instruct the compute to return anharmonic
properties rather than the full properties, which include lattice, harmonic
and anharmonic contributions.
When using this keyword, the compute must be first active (it must be included
via a "thermo_style custom"_thermo_style.html command) while the atoms are
still at their lattice sites (before equilibration).
The temp-ID specified with compute hma command should be same as the fix-ID of Nose-Hoover ("fix nvt"_fix_nh.html) or
Berendsen ("fix temp/berendsen"_fix_temp_berendsen.html) thermostat used for the simulation. While using this command, Langevin thermostat
("fix langevin"_fix_langevin.html)
should be avoided as its extra forces interfere with the HMA implementation.
NOTE: Compute hma command should be used right after the energy minimization, when the atoms are at their lattice sites.
The simulation should not be started before this command has been used in the input script.
The following example illustrates the placement of this command in the input script:
min_style cg
minimize 1e-35 1e-15 50000 500000
compute 1 all hma thermostatid u
fix thermostatid all nvt temp 600.0 600.0 100.0 :pre
NOTE: Compute hma should be used when the atoms of the solid do not diffuse. Diffusion will reduce the precision in the potential energy computation.
NOTE: The "fix_modify energy yes"_fix_modify.html command must also be specified if a fix is to contribute potential energy to this command.
An example input script that uses this compute is included in
examples/USER/hma/ along with corresponding LAMMPS output showing that the HMA
properties fluctuate less than the corresponding conventional properties.
[Output info:]
This compute calculates a global vector that includes the n properties
requested as arguments to the command (the potential energy, pressure and/or heat
capacity). The elements of the vector can be accessed by indices 1-n by any
command that uses global vector values as input. See the "Howto
output"_Howto_output.html doc page for an overview of LAMMPS output options.
The vector values calculated by this compute are "extensive". The
scalar value will be in energy "units"_units.html.
[Restrictions:]
This compute is part of the USER-MISC package. It is enabled only
if LAMMPS was built with that package. See the "Build
package"_Build_package.html doc page for more info.
Usage restricted to canonical (NVT) ensemble simulation only.
[Related commands:]
"compute pe"_compute_pe.html, "compute pressure"_compute_pressure.html
"dynamical matrix"_dynamical_matrix.html provides a finite difference
formulation of the hessian provided by Pair's single_hessian, which is used by
this compute.
[Default:] none
:line
:link(hma-Moustafa)
[(Moustafa)] Sabry G. Moustafa, Andrew J. Schultz, and David A. Kofke, {Very fast averaging of thermal properties of crystals by molecular simulation},
"Phys. Rev. E \[92\], 043303 (2015)"_https://link.aps.org/doi/10.1103/PhysRevE.92.043303

View File

@ -47,6 +47,7 @@ Computes :h1
compute_gyration_shape
compute_heat_flux
compute_hexorder_atom
compute_hma
compute_improper
compute_improper_local
compute_inertia_chunk

View File

@ -47,6 +47,9 @@ package"_Build_package.html doc page for more info.
"fix phonon"_fix_phonon.html
"compute hma"_compute_hma.html uses an analytic formulation of the hessian
provided by Pair's single_hessian.
[Default:]
The default settings are file = "dynmat.dyn", binary = no

View File

@ -165,40 +165,40 @@ page are followed by one or more of (g,i,k,o,t) to indicate which
accelerated styles exist.
"adapt"_fix_adapt.html - change a simulation parameter over time
"adapt/fep"_fix_adapt_fep.html -
"adapt/fep"_fix_adapt_fep.html - enhanced version of fix adapt
"addforce"_fix_addforce.html - add a force to each atom
"addtorque"_fix_addtorque.html -
"addtorque"_fix_addtorque.html - add a torque to a group of atoms
"append/atoms"_fix_append_atoms.html - append atoms to a running simulation
"atc"_fix_atc.html -
"atc"_fix_atc.html - initiates a coupled MD/FE simulation
"atom/swap"_fix_atom_swap.html - Monte Carlo atom type swapping
"ave/atom"_fix_ave_atom.html - compute per-atom time-averaged quantities
"ave/chunk"_fix_ave_chunk.html - compute per-chunk time-averaged quantities
"ave/correlate"_fix_ave_correlate.html - compute/output time correlations
"ave/correlate/long"_fix_ave_correlate_long.html -
"ave/histo"_fix_ave_histo.html - compute/output time-averaged histograms
"ave/histo/weight"_fix_ave_histo.html -
"ave/histo/weight"_fix_ave_histo.html - weighted version of fix ave/histo
"ave/time"_fix_ave_time.html - compute/output global time-averaged quantities
"aveforce"_fix_aveforce.html - add an averaged force to each atom
"balance"_fix_balance.html - perform dynamic load-balancing
"bocs"_fix_bocs.html -
"bocs"_fix_bocs.html - NPT style time integration with pressure correction
"bond/break"_fix_bond_break.html - break bonds on the fly
"bond/create"_fix_bond_create.html - create bonds on the fly
"bond/react"_fix_bond_react.html -
"bond/react"_fix_bond_react.html - apply topology changes to model reactions
"bond/swap"_fix_bond_swap.html - Monte Carlo bond swapping
"box/relax"_fix_box_relax.html - relax box size during energy minimization
"client/md"_fix_client_md.html -
"cmap"_fix_cmap.html -
"colvars"_fix_colvars.html -
"controller"_fix_controller.html -
"client/md"_fix_client_md.html - MD client for client/server simulations
"cmap"_fix_cmap.html - enables CMAP cross-terms of the CHARMM force field
"colvars"_fix_colvars.html - interface to the collective variables “Colvars” library
"controller"_fix_controller.html - apply control loop feedback mechanism
"deform"_fix_deform.html - change the simulation box size/shape
"deposit"_fix_deposit.html - add new atoms above a surface
"dpd/energy"_fix_dpd_energy.html -
"dpd/energy"_fix_dpd_energy.html - constant energy dissipative particle dynamics
"drag"_fix_drag.html - drag atoms towards a defined coordinate
"drude"_fix_drude.html -
"drude/transform/direct"_fix_drude_transform.html -
"drude/transform/inverse"_fix_drude_transform.html -
"drude"_fix_drude.html - part of Drude oscillator polarization model
"drude/transform/direct"_fix_drude_transform.html - part of Drude oscillator polarization model
"drude/transform/inverse"_fix_drude_transform.html - part of Drude oscillator polarization model
"dt/reset"_fix_dt_reset.html - reset the timestep based on velocity, forces
"edpd/source"_fix_dpd_source.html -
"edpd/source"_fix_dpd_source.html - add heat source to eDPD simulations
"efield"_fix_efield.html - impose electric field on system
"ehex"_fix_ehex.html - enhanced heat exchange algorithm
"electron/stopping"_fix_electron_stopping.html - electronic stopping power as a friction force
@ -208,27 +208,26 @@ accelerated styles exist.
"eos/table/rx"_fix_eos_table_rx.html -
"evaporate"_fix_evaporate.html - remove atoms from simulation periodically
"external"_fix_external.html - callback to an external driver program
"ffl"_fix_ffl.html -
"filter/corotate"_fix_filter_corotate.html -
"flow/gauss"_fix_flow_gauss.html -
"ffl"_fix_ffl.html - apply a Fast-Forward Langevin equation thermostat
"filter/corotate"_fix_filter_corotate.html - implement corotation filter to allow larger timesteps with r-RESPA
"flow/gauss"_fix_flow_gauss.html - Gaussian dynamics for constant mass flux
"freeze"_fix_freeze.html - freeze atoms in a granular simulation
"gcmc"_fix_gcmc.html - grand canonical insertions/deletions
"gld"_fix_gcmc.html - generalized Langevin dynamics integrator
"gld"_fix_gld.html -
"gle"_fix_gle.html -
"gld"_fix_gld.html - generalized Langevin dynamics integrator
"gle"_fix_gle.html - generalized Langevin equation thermostat
"gravity"_fix_gravity.html - add gravity to atoms in a granular simulation
"grem"_fix_grem.html -
"grem"_fix_grem.html - implements the generalized replica exchange method
"halt"_fix_halt.html - terminate a dynamics run or minimization
"heat"_fix_heat.html - add/subtract momentum-conserving heat
"hyper/global"_fix_hyper_global.html - global hyperdynamics
"hyper/local"_fix_hyper_local.html - local hyperdynamics
"imd"_fix_imd.html -
"imd"_fix_imd.html - implements the “Interactive MD” (IMD) protocol
"indent"_fix_indent.html - impose force due to an indenter
"ipi"_fix_ipi.html -
"ipi"_fix_ipi.html - enable LAMMPS to run as a client for i-PI path-integral simulations
"langevin"_fix_langevin.html - Langevin temperature control
"langevin/drude"_fix_langevin_drude.html -
"langevin/eff"_fix_langevin_eff.html -
"langevin/spin"_fix_langevin_spin.html -
"langevin/drude"_fix_langevin_drude.html - Langevin temperature control of Drude oscillators
"langevin/eff"_fix_langevin_eff.html - Langevin temperature control for the electron force field model
"langevin/spin"_fix_langevin_spin.html - Langevin temperature control for a spin or spin-lattice system
"latte"_fix_latte.html - wrapper on LATTE density-functional tight-binding code
"lb/fluid"_fix_lb_fluid.html -
"lb/momentum"_fix_lb_momentum.html -
@ -236,64 +235,60 @@ accelerated styles exist.
"lb/rigid/pc/sphere"_fix_lb_rigid_pc_sphere.html -
"lb/viscous"_fix_lb_viscous.html -
"lineforce"_fix_lineforce.html - constrain atoms to move in a line
"manifoldforce"_fix_manifoldforce.html -
"meso"_fix_meso.html -
"meso"_fix_meso_move.html - move mesoscopic SPH/SDPD particles in a prescribed fashion
"meso/move"_fix_meso_move.html -
"manifoldforce"_fix_manifoldforce.html - restrain atoms to a manifold during minimization
"meso"_fix_meso.html - time integration for SPH/DPDE particles
"meso/move"_fix_meso_move.html - move mesoscopic SPH/SDPD particles in a prescribed fashion
"meso/stationary"_fix_meso_stationary.html -
"momentum"_fix_momentum.html - zero the linear and/or angular momentum of a group of atoms
"move"_fix_move.html - move atoms in a prescribed fashion
"mscg"_fix_mscg.html -
"mscg"_fix_mscg.html - apply MSCG method for force-matching to generate coarse grain models
"msst"_fix_msst.html - multi-scale shock technique (MSST) integration
"mvv/dpd"_fix_mvv_dpd.html -
"mvv/edpd"_fix_mvv_dpd.html -
"mvv/tdpd"_fix_mvv_dpd.html -
"mvv/dpd"_fix_mvv_dpd.html - DPD using the modified velocity-Verlet integration algorithm
"mvv/edpd"_fix_mvv_dpd.html - constant energy DPD using the modified velocity-Verlet algorithm
"mvv/tdpd"_fix_mvv_dpd.html - constant temperature DPD using the modified velocity-Verlet algorithm
"neb"_fix_neb.html - nudged elastic band (NEB) spring forces
"nph"_fix_nh.html - constant NPH time integration via Nose/Hoover
"nph/asphere"_fix_nph_asphere.html - NPH for aspherical particles
"nph/body"_fix_nph_body.html -
"nph/body"_fix_nve_body.html - NPH for body particles
"nph/eff"_fix_nh_eff.html -
"nph/body"_fix_nph_body.html - NPH for body particles
"nph/eff"_fix_nh_eff.html - NPH for nuclei and electrons in the electron force field model
"nph/sphere"_fix_nph_sphere.html - NPH for spherical particles
"nphug"_fix_nphug.html - constant-stress Hugoniostat integration
"npt"_fix_nh.html - constant NPT time integration via Nose/Hoover
"npt/asphere"_fix_npt_asphere.html - NPT for aspherical particles
"npt/body"_fix_npt_body.html -
"npt/body"_fix_nve_body.html - NPT for body particles
"npt/eff"_fix_nh_eff.html -
"npt/body"_fix_npt_body.html - NPT for body particles
"npt/eff"_fix_nh_eff.html - NPT for nuclei and electrons in the electron force field model
"npt/sphere"_fix_npt_sphere.html - NPT for spherical particles
"npt/uef"_fix_nh_uef.html -
"npt/uef"_fix_nh_uef.html - NPT style time integration with diagonal flow
"nve"_fix_nve.html - constant NVE time integration
"nve/asphere"_fix_nve_asphere.html - NVE for aspherical particles
"nve/asphere/noforce"_fix_nve_asphere_noforce.html - NVE for aspherical particles without forces"
"nve/awpmd"_fix_nve_awpmd.html -
"nve/asphere/noforce"_fix_nve_asphere_noforce.html - NVE for aspherical particles without forces
"nve/awpmd"_fix_nve_awpmd.html - NVE for the Antisymmetrized Wave Packet Molecular Dynamics model
"nve/body"_fix_nve_body.html - NVE for body particles
"nve/dot"_fix_nve_dot.html -
"nve/dotc/langevin"_fix_nve_dotc_langevin.html -
"nve/eff"_fix_nve_eff.html -
"nve/dot"_fix_nve_dot.html - rigid body constant energy time integrator for coarse grain models
"nve/dotc/langevin"_fix_nve_dotc_langevin.html - Langevin style rigid body time integrator for coarse grain models
"nve/eff"_fix_nve_eff.html - NVE for nuclei and electrons in the electron force field model
"nve/limit"_fix_nve_limit.html - NVE with limited step length
"nve/line"_fix_nve_line.html - NVE for line segments
"nve/manifold/rattle"_fix_nve_manifold_rattle.html -
"nve/noforce"_fix_nve_noforce.html - NVE without forces (v only)
"nve/sphere"_fix_nve_sphere.html - NVE for spherical particles
"nve/spin"_fix_nve_spin.html -
"nve/spin"_fix_nve_spin.html - NVE for a spin or spin-lattice system
"nve/tri"_fix_nve_tri.html - NVE for triangles
"nvk"_fix_nvk.html -
"nvt"_fix_nh.html - constant NVT time integration via Nose/Hoover
"nvk"_fix_nvk.html - constant kinetic energy time integration
"nvt"_fix_nh.html - NVT time integration via Nose/Hoover
"nvt/asphere"_fix_nvt_asphere.html - NVT for aspherical particles
"nvt/body"_fix_nve_body.html - NVT for body particles
"nvt/body"_fix_nvt_body.html -
"nvt/eff"_fix_nh_eff.html -
"nvt/body"_fix_nvt_body.html - NVT for body particles
"nvt/eff"_fix_nh_eff.html - NVE for nuclei and electrons in the electron force field model
"nvt/manifold/rattle"_fix_nvt_manifold_rattle.html -
"nvt/sllod"_fix_nvt_sllod.html - NVT for NEMD with SLLOD equations
"nvt/sllod/eff"_fix_nvt_sllod_eff.html -
"nvt/sllod/eff"_fix_nvt_sllod_eff.html - NVT for NEMD with SLLOD equations for the electron force field model
"nvt/sphere"_fix_nvt_sphere.html - NVT for spherical particles
"nvt/uef"_fix_nh_uef.html -
"nvt/uef"_fix_nh_uef.html - NVT style time integration with diagonal flow
"oneway"_fix_oneway.html - constrain particles on move in one direction
"orient/bcc"_fix_orient.html - add grain boundary migration force for BCC
"orient/fcc"_fix_orient.html - add grain boundary migration force for FCC
"phonon"_fix_phonon.html -
"pimd"_fix_pimd.html -
"phonon"_fix_phonon.html - calculate dynamical matrix from MD simulations
"pimd"_fix_pimd.html - Feynman path integral molecular dynamics
"planeforce"_fix_planeforce.html - constrain atoms to move in a plane
"plumed"_fix_plumed.html - wrapper on PLUMED free energy library
"poems"_fix_poems.html - constrain clusters of atoms to move as coupled rigid bodies
@ -302,24 +297,24 @@ accelerated styles exist.
"press/berendsen"_fix_press_berendsen.html - pressure control by Berendsen barostat
"print"_fix_print.html - print text and variables during a simulation
"property/atom"_fix_property_atom.html - add customized per-atom values
"python/invoke"_fix_python_invoke.html -
"python/move"_fix_python_move.html -
"qbmsst"_fix_qbmsst.html -
"python/invoke"_fix_python_invoke.html - call a Python function during a simulation
"python/move"_fix_python_move.html - call a Python function during a simulation run
"qbmsst"_fix_qbmsst.html - quantum bath multi-scale shock technique time integrator
"qeq/comb"_fix_qeq_comb.html - charge equilibration for COMB potential
"qeq/dynamic"_fix_qeq.html - charge equilibration via dynamic method
"qeq/fire"_fix_qeq.html - charge equilibration via FIRE minimizer
"qeq/point"_fix_qeq.html - charge equilibration via point method
"qeq/reax"_fix_qeq_reax.html -
"qeq/reax"_fix_qeq_reax.html - charge equilibration for ReaxFF potential
"qeq/shielded"_fix_qeq.html - charge equilibration via shielded method
"qeq/slater"_fix_qeq.html - charge equilibration via Slater method
"qmmm"_fix_qmmm.html -
"qtb"_fix_qtb.html -
"qmmm"_fix_qmmm.html - functionality to enable a quantum mechanics/molecular mechanics coupling
"qtb"_fix_qtb.html - implement quantum thermal bath scheme
"rattle"_fix_shake.html - RATTLE constraints on bonds and/or angles
"reax/c/bonds"_fix_reaxc_bonds.html - write out ReaxFF bond information
"reax/c/species"_fix_reaxc_species.html - write out ReaxFF molecule information
"recenter"_fix_recenter.html - constrain the center-of-mass position of a group of atoms
"restrain"_fix_restrain.html - constrain a bond, angle, dihedral
"rhok"_fix_rhok.html -
"rhok"_fix_rhok.html - add bias potential for long-range ordered systems
"rigid"_fix_rigid.html - constrain one or more clusters of atoms to move as a rigid body with NVE integration
"rigid/meso"_fix_rigid_meso.html - constrain clusters of mesoscopic SPH/SDPD particles to move as a rigid body
"rigid/nph"_fix_rigid.html - constrain one or more clusters of atoms to move as a rigid body with NPH integration
@ -332,11 +327,11 @@ accelerated styles exist.
"rigid/nvt/small"_fix_rigid.html - constrain many small clusters of atoms to move as a rigid body with NVT integration
"rigid/small"_fix_rigid.html - constrain many small clusters of atoms to move as a rigid body with NVE integration
"rx"_fix_rx.html -
"saed/vtk"_fix_saed_vtk.html -
"saed/vtk"_fix_saed_vtk.html -
"setforce"_fix_setforce.html - set the force on each atom
"shake"_fix_shake.html - SHAKE constraints on bonds and/or angles
"shardlow"_fix_shardlow.html -
"smd"_fix_smd.html -
"shardlow"_fix_shardlow.html - integration of DPD equations of motion using the Shardlow splitting
"smd"_fix_smd.html - applied a steered MD force to a group
"smd/adjust_dt"_fix_smd_adjust_dt.html -
"smd/integrate_tlsph"_fix_smd_integrate_tlsph.html -
"smd/integrate_ulsph"_fix_smd_integrate_ulsph.html -
@ -355,13 +350,13 @@ accelerated styles exist.
"temp/csld"_fix_temp_csvr.html - canonical sampling thermostat with Langevin dynamics
"temp/csvr"_fix_temp_csvr.html - canonical sampling thermostat with Hamiltonian dynamics
"temp/rescale"_fix_temp_rescale.html - temperature control by velocity rescaling
"temp/rescale/eff"_fix_temp_rescale_eff.html -
"temp/rescale/eff"_fix_temp_rescale_eff.html - temperature control by velocity rescaling in the electron force field model
"tfmc"_fix_tfmc.html - perform force-bias Monte Carlo with time-stamped method
"thermal/conductivity"_fix_thermal_conductivity.html - Muller-Plathe kinetic energy exchange for thermal conductivity calculation
"ti/spring"_fix_ti_spring.html -
"tmd"_fix_tmd.html - guide a group of atoms to a new configuration
"ttm"_fix_ttm.html - two-temperature model for electronic/atomic coupling
"ttm/mod"_fix_ttm.html -
"ttm/mod"_fix_ttm.html - enhanced two-temperature model with additional options
"tune/kspace"_fix_tune_kspace.html - auto-tune KSpace parameters
"vector"_fix_vector.html - accumulate a global vector every N timesteps
"viscosity"_fix_viscosity.html - Muller-Plathe momentum exchange for viscosity calculation
@ -369,7 +364,7 @@ accelerated styles exist.
"wall/body/polygon"_fix_wall_body_polygon.html -
"wall/body/polyhedron"_fix_wall_body_polyhedron.html -
"wall/colloid"_fix_wall.html - Lennard-Jones wall interacting with finite-size particles
"wall/ees"_fix_wall_ees.html -
"wall/ees"_fix_wall_ees.html - wall for ellipsoidal particles
"wall/gran"_fix_wall_gran.html - frictional wall(s) for granular simulations
"wall/gran/region"_fix_wall_gran_region.html -
"wall/harmonic"_fix_wall.html - harmonic spring wall
@ -379,7 +374,7 @@ accelerated styles exist.
"wall/piston"_fix_wall_piston.html - moving reflective piston wall
"wall/reflect"_fix_wall_reflect.html - reflecting wall(s)
"wall/region"_fix_wall_region.html - use region surface as wall
"wall/region/ees"_fix_wall_ees.html -
"wall/region/ees"_fix_wall_ees.html - use region surface as wall for ellipsoidal particles
"wall/srd"_fix_wall_srd.html - slip/no-slip wall for SRD particles :ul
[Restrictions:]

View File

@ -47,13 +47,13 @@ or {cubic_spline}.
With either spline method, the only argument that needs to follow it
is the name of a file that contains the desired pressure correction
as a function of volume. The file should be formatted so each line has:
as a function of volume. The file must be formatted so each line has:
Volume_i, PressureCorrection_i :pre
Note both the COMMA and the SPACE separating the volume's
value and its corresponding pressure correction. The volumes in the file
should be uniformly spaced. Both the volumes and the pressure corrections
must be uniformly spaced. Both the volumes and the pressure corrections
should be provided in the proper units, e.g. if you are using {units real},
the volumes should all be in cubic angstroms, and the pressure corrections
should all be in atmospheres. Furthermore, the table should start/end at a

View File

@ -114,5 +114,5 @@ The default options are plumedfile = NULL and outfile = NULL
:link(PLUMED)
[(PLUMED)] G.A. Tribello, M. Bonomi, D. Branduardi, C. Camilloni and G. Bussi, Comp. Phys. Comm 185, 604 (2014)
:link(plumeddocs,http://www.plumed.org/documentation)
:link(plumeddocs,http://www.plumed.org/doc.html)
:link(plumedhome,http://www.plumed.org/)

View File

@ -39,8 +39,8 @@ An example of using the interface pinning method is located in the
[Restrictions:]
This fix is part of the MISC package. It is only enabled if LAMMPS
was built with that package. See the "Build
This fix is part of the USER-MISC package. It is only enabled if
LAMMPS was built with that package. See the "Build
package"_Build_package.html doc page for more info.
[Related commands:]

View File

@ -365,7 +365,7 @@ an array of one or more comma-separated items in brackets.
The list of supported keywords and the type and format of their values
depend on the query function used. The current list of query functions
is available on the OpenKIM webpage at
"https://openkim.org/doc/repository/kim-query"_https://openkim.org/doc/repository/kim-query.
"https://openkim.org/doc/usage/kim-query"_https://openkim.org/doc/usage/kim-query.
NOTE: All query functions require the {model} keyword, which identifies
the IM whose predictions are being queried. This keyword is automatically

View File

@ -569,6 +569,7 @@ pair_charmm.html
pair_class2.html
pair_colloid.html
pair_comb.html
pair_cosine_squared.html
pair_coul.html
pair_coul_diel.html
pair_coul_shield.html

View File

@ -0,0 +1,108 @@
"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 cosine/squared command :h3
[Syntax:]
pair_style cosine/squared cutoff :pre
cutoff = global cutoff for cosine-squared interactions (distance units) :ul
pair_coeff i j eps sigma
pair_coeff i j eps sigma cutoff
pair_coeff i j eps sigma wca
pair_coeff i j eps sigma cutoff wca :pre
i,j = a particle type
eps = interaction strength, i.e. the depth of the potential minimum (energy units)
sigma = distance of the potential minimum from 0
cutoff = the cutoff distance for this pair type, if different from global (distance units)
wca = if specified a Weeks-Chandler-Andersen potential (with eps strength and minimum at sigma) is added, otherwise not :ul
[Examples:]
pair_style cosine/squared 3.0
pair_coeff * * 1.0 1.3
pair_coeff 1 3 1.0 1.3 2.0
pair_coeff 1 3 1.0 1.3 wca
pair_coeff 1 3 1.0 1.3 2.0 wca :pre
[Description:]
Style {cosine/squared} computes a potential of the form
:c,image(Eqs/pair_cosine_squared.jpg)
between two point particles, where (sigma, -epsilon) is the location of
the (rightmost) minimum of the potential, as explained in the syntax
section above.
This potential was first used in (Cooke)_#CKD for a coarse-grained lipid
membrane model. It is generally very useful as a non-specific
interaction potential because it is fully adjustable in depth and width
while joining the minimum at (sigma, -epsilon) and zero at (cutoff, 0)
smoothly, requiring no shifting and causing no related artifacts, tail
energy calculations etc. This evidently requires {cutoff} to be larger
than {sigma}.
If the {wca} option is used then a Weeks-Chandler-Andersen potential
(Weeks)_#WCA is added to the above specified cosine-squared potential,
specifically the following:
:c,image(Eqs/pair_cosine_squared_wca.jpg)
In this case, and this case only, the {sigma} parameter can be equal to
{cutoff} (sigma = cutoff) which will result in ONLY the WCA potential
being used (and print a warning), so the minimum will be attained at
(sigma, 0). This is a convenience feature that enables a purely
repulsive potential to be used without a need to define an additional
pair style and use the hybrid styles.
The energy and force of this pair style for parameters epsilon = 1.0,
sigma = 1.0, cutoff = 2.5, with and without the WCA potential, are shown
in the graphs below:
:c,image(JPG/pair_cosine_squared_graphs.jpg)
:line
[Mixing, shift, table, tail correction, restart, rRESPA info]:
Mixing is not supported for this style.
The {shift}, {table} and {tail} options are not relevant for this style.
This pair style writes its information to "binary restart
files"_restart.html, so pair_style and pair_coeff commands do 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.
:line
[Restrictions:]
The {cosine/squared} style is part of the "USER-MISC" package. It is only
enabled if LAMMPS is build with that package. See the "Build
package"_Build_package.html doc page for more info.
[Related commands:]
"pair_coeff"_pair_coeff.html,
"pair_style lj/cut"_pair_lj.html
[Default:] none
:link(CKD)
[(Cooke)] "Cooke, Kremer and Deserno, Phys. Rev. E, 72, 011506 (2005)"
:link(WCA)
[(Weeks)] "Weeks, Chandler and Andersen, J. Chem. Phys., 54, 5237 (1971)"

View File

@ -13,7 +13,7 @@ pair_style coul/shield command :h3
pair_style coul/shield cutoff tap_flag :pre
cutoff = global cutoff (distance units)
tap_flag = 0/1 to turn off/on the taper function
tap_flag = 0/1 to turn off/on the taper function :ul
[Examples:]

View File

@ -13,17 +13,17 @@ pair_style ilp/graphene/hbn command :h3
pair_style \[hybrid/overlay ...\] ilp/graphene/hbn cutoff tap_flag :pre
cutoff = global cutoff (distance units)
tap_flag = 0/1 to turn off/on the taper function
tap_flag = 0/1 to turn off/on the taper function :ul
[Examples:]
pair_style hybrid/overlay ilp/graphene/hbn 16.0 1
pair_coeff * * ilp/graphene/hbn BNCH.ILP B N C :pre
pair_style hybrid/overlay ilp/graphene/hbn 16.0 1
pair_coeff * * ilp/graphene/hbn BNCH.ILP B N C :pre
pair_style hybrid/overlay rebo tersoff ilp/graphene/hbn 16.0 coul/shield 16.0
pair_coeff * * rebo CH.rebo NULL NULL C
pair_coeff * * tersoff BNC.tersoff B N NULL
pair_coeff * * ilp/graphene/hbn BNCH.ILP B N C
pair_coeff * * rebo CH.rebo NULL NULL C
pair_coeff * * tersoff BNC.tersoff B N NULL
pair_coeff * * ilp/graphene/hbn BNCH.ILP B N C
pair_coeff 1 1 coul/shield 0.70
pair_coeff 1 2 coul/shield 0.695
pair_coeff 2 2 coul/shield 0.69 :pre
@ -85,6 +85,22 @@ be found in "(Ouyang)"_#Ouyang.
This potential must be used in combination with hybrid/overlay.
Other interactions can be set to zero using pair_style {none}.
This pair style tallies a breakdown of the total interlayer potential
energy into sub-categories, which can be accessed via the "compute
pair"_compute_pair.html command as a vector of values of length 2.
The 2 values correspond to the following sub-categories:
{E_vdW} = vdW (attractive) energy
{E_Rep} = Repulsive energy :ol
To print these quantities to the log file (with descriptive column
headings) the following commands could be included in an input script:
compute 0 all pair ilp/graphene/hbn
variable Evdw equal c_0\[1\]
variable Erep equal c_0\[2\]
thermo_style custom step temp epair v_Erep v_Evdw :pre
:line
[Mixing, shift, table, tail correction, restart, rRESPA info]:

View File

@ -13,7 +13,7 @@ pair_style kolmogorov/crespi/full command :h3
pair_style hybrid/overlay kolmogorov/crespi/full cutoff tap_flag :pre
cutoff = global cutoff (distance units)
tap_flag = 0/1 to turn off/on the taper function
tap_flag = 0/1 to turn off/on the taper function :ul
[Examples:]
@ -74,6 +74,22 @@ comparison of these parameters can be found in "(Ouyang)"_#Ouyang1.
This potential must be used in combination with hybrid/overlay.
Other interactions can be set to zero using pair_style {none}.
This pair style tallies a breakdown of the total interlayer potential
energy into sub-categories, which can be accessed via the "compute
pair"_compute_pair.html command as a vector of values of length 2.
The 2 values correspond to the following sub-categories:
{E_vdW} = vdW (attractive) energy
{E_Rep} = Repulsive energy :ol
To print these quantities to the log file (with descriptive column
headings) the following commands could be included in an input script:
compute 0 all pair kolmogorov/crespi/full
variable Evdw equal c_0\[1\]
variable Erep equal c_0\[2\]
thermo_style custom step temp epair v_Erep v_Evdw :pre
:line
[Mixing, shift, table, tail correction, restart, rRESPA info]:

View File

@ -129,6 +129,7 @@ accelerated styles exist.
"colloid"_pair_colloid.html - integrated colloidal potential
"comb"_pair_comb.html - charge-optimized many-body (COMB) potential
"comb3"_pair_comb.html - charge-optimized many-body (COMB3) potential
"cosine/squared"_pair_cosine_squared.html - Cooke-Kremer-Deserno membrane model potential
"coul/cut"_pair_coul.html - cutoff Coulombic potential
"coul/cut/soft"_pair_fep_soft.html - Coulombic potential with a soft core
"coul/debye"_pair_coul.html - cutoff Coulombic potential with Debye screening

View File

@ -24,6 +24,7 @@ Pair Styles :h1
pair_class2
pair_colloid
pair_comb
pair_cosine_squared
pair_coul
pair_coul_diel
pair_coul_shield

View File

@ -14,7 +14,8 @@ replicate nx ny nz {keyword} :pre
nx,ny,nz = replication factors in each dimension :ulb
optional {keyword} = {bbox} :l
{bbox} = only check atoms in replicas that overlap with a processor's sub-domain :ule
{bbox} = only check atoms in replicas that overlap with a processor's sub-domain :pre
:ule
[Examples:]
@ -45,11 +46,13 @@ file that crosses a periodic boundary should be between two atoms with
image flags that differ by 1. This will allow the bond to be
unwrapped appropriately.
The optional keyword {bbox} uses a bounding box to only check atoms
in replicas that overlap with a processor's sub-domain when assigning
atoms to processors, and thus can result in substantial speedups for
calculations using a large number of processors. It does require
temporarily using more memory.
The optional keyword {bbox} uses a bounding box to only check atoms in
replicas that overlap with a processor's sub-domain when assigning
atoms to processors. It typically results in a substantial speedup
when using the replicate command on a large number of processors. It
does require temporary use of more memory, specifically that each
processor can store all atoms in the entire system before it is
replicated.
[Restrictions:]

View File

@ -45,6 +45,7 @@ Aidan
aij
airebo
Aj
ajs
ajaramil
akohlmey
Aktulga
@ -99,6 +100,7 @@ antisymmetry
anton
Antonelli
api
Apoorva
Appl
Apu
arccos
@ -357,6 +359,7 @@ Cii
Cij
cis
civ
CKD
Clang
clearstore
Cleary
@ -422,6 +425,7 @@ coreshell
cornflowerblue
cornsilk
corotate
corotation
corotational
correlator
cosineshifted
@ -522,6 +526,7 @@ Dcut
de
dE
De
decorrelation
debye
Debye
Decius
@ -1075,6 +1080,7 @@ Hilger
histo
histogrammed
histogramming
hma
hmaktulga
hoc
Hochbruck
@ -1331,6 +1337,8 @@ kmax
Kmax
Knizhnik
knl
Kofke
kofke
Kohlmeyer
Kohn
kokkos
@ -1719,6 +1727,7 @@ Morteza
Mosayebi
Moseler
Moskalev
Moustafa
mov
mpi
MPI
@ -2219,6 +2228,7 @@ PTM
ptr
pu
purdue
Purohit
pushstore
pvar
pw
@ -2436,6 +2446,7 @@ Ryckaert
Rycroft
Rydbergs
Rz
Sabry
saddlebrown
Sadigh
saed
@ -2447,6 +2458,8 @@ Salles
sandia
Sandia
sandybrown
Sanitizer
sanitizers
sc
scafacos
SCAFACOS
@ -2994,6 +3007,7 @@ Waltham
wavepacket
wB
Wbody
wca
webpage
Weckner
WeinanE

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,22 @@
The example input script sets up a simple FCC crystal using the Lennard-Jones
potential. The script sets up the HMA compute to calculate the energy, pressure
and heat capacity. The output columns are:
1: timestep
2: measured temperature
3: potential energy
4: HMA potential energy
5: pressure
6: HMA pressure
7: HMA heat capacity contribution
Averages of the potential energy (#3 and #4) agree although #4 (HMA) is more precise.
Averages of the pressure (#5 and #6) agree once the ideal gas
contribution is included; #6 (HMA) is more precise.
The heat capacity can be computed from colume #3 (convential) as
Cv = Var(#3)/(k T^2)
With HMA, the heat capacity can be computed from column #4 and #7 as
Cv = #7 + Var(#4)/(k T^2)

View File

@ -0,0 +1,36 @@
# Harmonically mapped average example
units lj
dimension 3
boundary p p p
atom_style atomic
atom_modify map array
# ---------- Create Atoms ----------------------------
lattice fcc 1.0
region box block 0 4 0 4 0 4 units lattice
create_box 1 box
lattice fcc 1.0 orient x 1 0 0 orient y 0 1 0 orient z 0 0 1
create_atoms 1 region box
# ---------- Define Interatomic Potential ---------------------
pair_style lj/smooth/linear 3
pair_coeff * * 1.0 1.0
mass 1 1.0
atom_modify sort 0 1
velocity all create 0.1 45678 dist gaussian
compute u all pe
compute p all pressure NULL pair
compute hma all hma settemp u p 9.579586686264458 cv
timestep 0.005
fix settemp all nvt temp 1.0 1.0 0.5
thermo_style custom elapsed temp c_u c_hma[1] c_p c_hma[2] c_hma[3]
thermo_modify format float '%22.15e'
thermo 500
run 20000
thermo 20
run 200000

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1 +0,0 @@
../../../../../potentials/BNCH-old.ILP

View File

@ -1 +0,0 @@
../../../../../potentials/CH.airebo

View File

@ -1,61 +0,0 @@
# Initialization
units metal
boundary p p p
atom_style full
processors * * 1 # domain decomposition over x and y
# System and atom definition
# we use 2 atom types so that inter- and intra-layer
# interactions can be specified separately
# read lammps data file
read_data Bi_gr_AB_stack_2L_noH_300K.data
mass 1 12.0107 # carbon mass (g/mole) | membrane
mass 2 12.0107 # carbon mass (g/mole) | adsorbate
# Separate atom groups
group membrane type 1
group adsorbate type 2
######################## Potential defition ########################
pair_style hybrid/overlay rebo ilp/graphene/hbn 16.0
####################################################################
pair_coeff * * rebo CH.airebo NULL C # chemical
pair_coeff * * ilp/graphene/hbn BNCH-old.ILP C C # long range
####################################################################
# Neighbor update settings
neighbor 2.0 bin
neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
# calculate the COM
variable adsxcom equal xcm(adsorbate,x)
variable adsycom equal xcm(adsorbate,y)
variable adszcom equal xcm(adsorbate,z)
variable adsvxcom equal vcm(adsorbate,x)
variable adsvycom equal vcm(adsorbate,y)
variable adsvzcom equal vcm(adsorbate,z)
#### Simulation settings ####
timestep 0.001
#velocity adsorbate create 300.0 12345
fix subf membrane setforce 0.0 0.0 0.0
fix thermostat all nve
compute 0 all pair rebo
compute 1 all pair ilp/graphene/hbn
variable REBO equal c_0
variable ILP equal c_1
############################
# Output
thermo 100
thermo_style custom step etotal pe ke v_REBO v_ILP temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom
thermo_modify line one format float %.10f
thermo_modify flush yes norm no lost warn
#dump 1 all custom 1000 traj.lammpstrj id mol type xu yu zu
#dump_modify 1 format line "%7d %3d %3d %15.10g %15.10g %15.10g" flush yes
###### Run molecular dynamics ######
run 1000

View File

@ -1,137 +0,0 @@
LAMMPS (8 Mar 2018)
using 1 OpenMP thread(s) per MPI task
# Initialization
units metal
boundary p p p
atom_style full
processors * * 1 # domain decomposition over x and y
# System and atom definition
# we use 2 atom types so that inter- and intra-layer
# interactions can be specified separately
# read lammps data file
read_data Bi_gr_AB_stack_2L_noH_300K.data
orthogonal box = (0 0 0) to (42.6 41.8117 100)
1 by 1 by 1 MPI processor grid
reading atoms ...
1360 atoms
reading velocities ...
1360 velocities
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
mass 1 12.0107 # carbon mass (g/mole) | membrane
mass 2 12.0107 # carbon mass (g/mole) | adsorbate
# Separate atom groups
group membrane type 1
680 atoms in group membrane
group adsorbate type 2
680 atoms in group adsorbate
######################## Potential defition ########################
pair_style hybrid/overlay rebo ilp/graphene/hbn 16.0
####################################################################
pair_coeff * * rebo CH.airebo NULL C # chemical
Reading potential file CH.airebo with DATE: 2011-10-25
pair_coeff * * ilp/graphene/hbn BNCH-old.ILP C C # long range
####################################################################
# Neighbor update settings
neighbor 2.0 bin
neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
# calculate the COM
variable adsxcom equal xcm(adsorbate,x)
variable adsycom equal xcm(adsorbate,y)
variable adszcom equal xcm(adsorbate,z)
variable adsvxcom equal vcm(adsorbate,x)
variable adsvycom equal vcm(adsorbate,y)
variable adsvzcom equal vcm(adsorbate,z)
#### Simulation settings ####
timestep 0.001
#velocity adsorbate create 300.0 12345
fix subf membrane setforce 0.0 0.0 0.0
fix thermostat all nve
compute 0 all pair rebo
compute 1 all pair ilp/graphene/hbn
variable REBO equal c_0
variable ILP equal c_1
############################
# Output
thermo 100
thermo_style custom step etotal pe ke v_REBO v_ILP temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom
thermo_modify line one format float %.10f
thermo_modify flush yes norm no lost warn
#dump 1 all custom 1000 traj.lammpstrj id mol type xu yu zu
#dump_modify 1 format line "%7d %3d %3d %15.10g %15.10g %15.10g" flush yes
###### Run molecular dynamics ######
run 1000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 5 5 12
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair rebo, perpetual, skip from (2)
attributes: full, newton on, ghost
pair build: skip/ghost
stencil: none
bin: none
(2) pair ilp/graphene/hbn, perpetual
attributes: full, newton on, ghost
pair build: full/bin/ghost
stencil: full/ghost/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 16.96 | 16.96 | 16.96 Mbytes
Step TotEng PotEng KinEng v_REBO v_ILP Temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom
0 -5029.3801131277 -5044.0700799791 14.6899668514 -5011.2636297759 -32.8064502032 83.6251135127 22.0155657205 20.2812150219 3.4623630945 0.0282287195 0.0535565745 0.2193320108
100 -5029.3895815657 -5045.3201249690 15.9305434033 -5012.4897058028 -32.8304191662 90.6873047362 22.0181751545 20.2867946176 3.4502536831 0.0239131349 0.0576557373 -0.4387830564
200 -5029.3874064119 -5045.8119502228 16.4245438109 -5012.7276250747 -33.0843251481 93.4994853617 22.0202931358 20.2926890775 3.3883512918 0.0180268639 0.0596894423 -0.6964675465
300 -5029.3851410393 -5044.9928147367 15.6076736974 -5012.1131531405 -32.8796615962 88.8493144891 22.0216852689 20.2985091183 3.3368274018 0.0093519893 0.0546775051 -0.2110676539
400 -5029.3900102082 -5045.6706717598 16.2806615516 -5012.7330095297 -32.9376622301 92.6804113372 22.0220931529 20.3035219616 3.3560233852 -0.0015365116 0.0454268927 0.5478139709
500 -5029.3985510533 -5046.0433160610 16.6447650078 -5013.0924334585 -32.9508826025 94.7531316612 22.0214795944 20.3074656871 3.4232399722 -0.0107212024 0.0332249366 0.6595923534
600 -5029.3929936746 -5045.4367231195 16.0437294449 -5012.7046931021 -32.7320300174 91.3316353653 22.0200027176 20.3101652565 3.4651727438 -0.0178110391 0.0210056002 0.1144372537
700 -5029.3934435811 -5045.6074608403 16.2140172592 -5012.7886962164 -32.8187646239 92.3010274644 22.0178838793 20.3116257077 3.4432436715 -0.0242636237 0.0078323424 -0.5162836955
800 -5029.3892931255 -5046.2270462380 16.8377531124 -5013.2383770824 -32.9886691555 95.8517489911 22.0151485191 20.3116305041 3.3780520461 -0.0302821178 -0.0083184719 -0.6710801515
900 -5029.3930414672 -5046.0272003818 16.6341589146 -5013.2317798384 -32.7954205434 94.6927546874 22.0119224940 20.3099187654 3.3350551183 -0.0341747588 -0.0256858066 -0.0799872839
1000 -5029.3908907831 -5045.6437703691 16.2528795861 -5012.6800867885 -32.9636835807 92.5222578135 22.0084902521 20.3065746721 3.3658243730 -0.0336536245 -0.0406018547 0.6191660974
Loop time of 137.46 on 1 procs for 1000 steps with 1360 atoms
Performance: 0.629 ns/day, 38.183 hours/ns, 7.275 timesteps/s
95.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 | 137.33 | 137.33 | 137.33 | 0.0 | 99.90
Bond | 0.00071788 | 0.00071788 | 0.00071788 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.067907 | 0.067907 | 0.067907 | 0.0 | 0.05
Output | 0.0016029 | 0.0016029 | 0.0016029 | 0.0 | 0.00
Modify | 0.036542 | 0.036542 | 0.036542 | 0.0 | 0.03
Other | | 0.02574 | | | 0.02
Nlocal: 1360 ave 1360 max 1360 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 7964 ave 7964 max 7964 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 265206 ave 265206 max 265206 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 265206
Ave neighs/atom = 195.004
Ave special neighs/atom = 0
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:02:17

View File

@ -1,137 +0,0 @@
LAMMPS (8 Mar 2018)
using 1 OpenMP thread(s) per MPI task
# Initialization
units metal
boundary p p p
atom_style full
processors * * 1 # domain decomposition over x and y
# System and atom definition
# we use 2 atom types so that inter- and intra-layer
# interactions can be specified separately
# read lammps data file
read_data Bi_gr_AB_stack_2L_noH_300K.data
orthogonal box = (0 0 0) to (42.6 41.8117 100)
2 by 2 by 1 MPI processor grid
reading atoms ...
1360 atoms
reading velocities ...
1360 velocities
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
mass 1 12.0107 # carbon mass (g/mole) | membrane
mass 2 12.0107 # carbon mass (g/mole) | adsorbate
# Separate atom groups
group membrane type 1
680 atoms in group membrane
group adsorbate type 2
680 atoms in group adsorbate
######################## Potential defition ########################
pair_style hybrid/overlay rebo ilp/graphene/hbn 16.0
####################################################################
pair_coeff * * rebo CH.airebo NULL C # chemical
Reading potential file CH.airebo with DATE: 2011-10-25
pair_coeff * * ilp/graphene/hbn BNCH-old.ILP C C # long range
####################################################################
# Neighbor update settings
neighbor 2.0 bin
neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
# calculate the COM
variable adsxcom equal xcm(adsorbate,x)
variable adsycom equal xcm(adsorbate,y)
variable adszcom equal xcm(adsorbate,z)
variable adsvxcom equal vcm(adsorbate,x)
variable adsvycom equal vcm(adsorbate,y)
variable adsvzcom equal vcm(adsorbate,z)
#### Simulation settings ####
timestep 0.001
#velocity adsorbate create 300.0 12345
fix subf membrane setforce 0.0 0.0 0.0
fix thermostat all nve
compute 0 all pair rebo
compute 1 all pair ilp/graphene/hbn
variable REBO equal c_0
variable ILP equal c_1
############################
# Output
thermo 100
thermo_style custom step etotal pe ke v_REBO v_ILP temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom
thermo_modify line one format float %.10f
thermo_modify flush yes norm no lost warn
#dump 1 all custom 1000 traj.lammpstrj id mol type xu yu zu
#dump_modify 1 format line "%7d %3d %3d %15.10g %15.10g %15.10g" flush yes
###### Run molecular dynamics ######
run 1000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 5 5 12
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair rebo, perpetual, skip from (2)
attributes: full, newton on, ghost
pair build: skip/ghost
stencil: none
bin: none
(2) pair ilp/graphene/hbn, perpetual
attributes: full, newton on, ghost
pair build: full/bin/ghost
stencil: full/ghost/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 11.13 | 11.13 | 11.13 Mbytes
Step TotEng PotEng KinEng v_REBO v_ILP Temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom
0 -5029.3801131277 -5044.0700799791 14.6899668514 -5011.2636297759 -32.8064502032 83.6251135127 22.0155657205 20.2812150219 3.4623630945 0.0282287195 0.0535565745 0.2193320108
100 -5029.3895815657 -5045.3201249690 15.9305434033 -5012.4897058028 -32.8304191662 90.6873047362 22.0181751545 20.2867946176 3.4502536831 0.0239131349 0.0576557373 -0.4387830564
200 -5029.3874064119 -5045.8119502228 16.4245438109 -5012.7276250747 -33.0843251481 93.4994853617 22.0202931358 20.2926890775 3.3883512918 0.0180268639 0.0596894423 -0.6964675465
300 -5029.3851410393 -5044.9928147367 15.6076736974 -5012.1131531405 -32.8796615962 88.8493144891 22.0216852689 20.2985091183 3.3368274018 0.0093519893 0.0546775051 -0.2110676539
400 -5029.3900102082 -5045.6706717598 16.2806615516 -5012.7330095297 -32.9376622301 92.6804113371 22.0220931529 20.3035219616 3.3560233852 -0.0015365116 0.0454268927 0.5478139709
500 -5029.3985510533 -5046.0433160611 16.6447650078 -5013.0924334585 -32.9508826025 94.7531316612 22.0214795944 20.3074656871 3.4232399722 -0.0107212024 0.0332249366 0.6595923534
600 -5029.3929936746 -5045.4367231195 16.0437294449 -5012.7046931021 -32.7320300174 91.3316353653 22.0200027176 20.3101652565 3.4651727438 -0.0178110391 0.0210056002 0.1144372537
700 -5029.3934435811 -5045.6074608403 16.2140172592 -5012.7886962164 -32.8187646239 92.3010274643 22.0178838793 20.3116257077 3.4432436715 -0.0242636237 0.0078323424 -0.5162836955
800 -5029.3892931255 -5046.2270462380 16.8377531124 -5013.2383770824 -32.9886691555 95.8517489911 22.0151485191 20.3116305041 3.3780520461 -0.0302821178 -0.0083184719 -0.6710801515
900 -5029.3930414671 -5046.0272003818 16.6341589146 -5013.2317798384 -32.7954205434 94.6927546874 22.0119224940 20.3099187654 3.3350551183 -0.0341747588 -0.0256858066 -0.0799872839
1000 -5029.3908907831 -5045.6437703692 16.2528795861 -5012.6800867885 -32.9636835807 92.5222578135 22.0084902521 20.3065746721 3.3658243730 -0.0336536245 -0.0406018547 0.6191660974
Loop time of 36.0917 on 4 procs for 1000 steps with 1360 atoms
Performance: 2.394 ns/day, 10.025 hours/ns, 27.707 timesteps/s
97.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 | 33.204 | 34.289 | 35.893 | 17.3 | 95.01
Bond | 0.00038719 | 0.00065947 | 0.00097609 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.1539 | 1.7595 | 2.8464 | 76.7 | 4.88
Output | 0.0013447 | 0.0014529 | 0.0016887 | 0.4 | 0.00
Modify | 0.010811 | 0.012037 | 0.013764 | 1.0 | 0.03
Other | | 0.0287 | | | 0.08
Nlocal: 340 ave 344 max 334 min
Histogram: 1 0 0 0 0 0 1 0 1 1
Nghost: 4628 ave 4634 max 4624 min
Histogram: 1 0 1 0 1 0 0 0 0 1
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
FullNghs: 66301.5 ave 67860 max 63963 min
Histogram: 1 0 0 0 0 0 1 0 1 1
Total # of neighbors = 265206
Ave neighs/atom = 195.004
Ave special neighs/atom = 0
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:36

View File

@ -1 +0,0 @@
../../../../../potentials/BNC.tersoff

View File

@ -1 +0,0 @@
../../../../../potentials/BNCH-old.ILP

View File

@ -1 +0,0 @@
../../../../../potentials/CH.airebo

View File

@ -1,71 +0,0 @@
# Initialization
units metal
boundary p p p
atom_style full
processors * * 1 # domain decomposition over x and y
# System and atom definition
# we use 2 atom types so that inter- and intra-layer
# interactions can be specified separately
read_data gr_hBN_Cstack_2L_noH.data
mass 1 10.8110 # boron mass (g/mole) | membrane
mass 2 14.0067 # nitrogen mass (g/mole) | membrane
mass 3 12.0107 # carbon mass (g/mole) | adsorbate
# Separate atom groups
group membrane type 1 2
group adsorbate type 3
######################## Potential defition ########################
pair_style hybrid/overlay rebo tersoff ilp/graphene/hbn 16.0 coul/shield 16.0
####################################################################
pair_coeff * * rebo CH.airebo NULL NULL C # chemical
pair_coeff * * tersoff BNC.tersoff B N NULL # chemical
pair_coeff * * ilp/graphene/hbn BNCH-old.ILP B N C # long range
pair_coeff 1 1 coul/shield 0.70
pair_coeff 1 2 coul/shield 0.69498201415576216335
pair_coeff 2 2 coul/shield 0.69
####################################################################
# Neighbor update settings
neighbor 2.0 bin
neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
# calculate the COM
variable adsxcom equal xcm(adsorbate,x)
variable adsycom equal xcm(adsorbate,y)
variable adszcom equal xcm(adsorbate,z)
variable adsvxcom equal vcm(adsorbate,x)
variable adsvycom equal vcm(adsorbate,y)
variable adsvzcom equal vcm(adsorbate,z)
#### Simulation settings ####
timestep 0.001
velocity all create 300.0 12345
fix thermostat all nve
compute 0 all pair rebo
compute 1 all pair tersoff
compute 2 all pair ilp/graphene/hbn
compute 3 all pair coul/shield
variable REBO equal c_0
variable Tersoff equal c_1
variable EILP equal c_2
variable Ecoul equal c_3
# Calculate the pair potential between the substrate and slider
compute sldsub adsorbate group/group membrane
variable Evdw equal c_sldsub
############################
# Output
thermo 100
thermo_style custom step etotal pe ke v_Evdw v_Tersoff v_REBO v_EILP v_Ecoul temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom
thermo_modify line one format float %.10f
#dump 1 all custom 1000 traj.lammpstrj id mol type xu yu zu
#dump_modify 1 format line "%7d %3d %3d %15.10g %15.10g %15.10g" flush yes
###### Run molecular dynamics ######
run 1000

View File

@ -1,171 +0,0 @@
LAMMPS (8 Mar 2018)
using 1 OpenMP thread(s) per MPI task
# Initialization
units metal
boundary p p p
atom_style full
processors * * 1 # domain decomposition over x and y
# System and atom definition
# we use 2 atom types so that inter- and intra-layer
# interactions can be specified separately
read_data gr_hBN_Cstack_2L_noH.data
orthogonal box = (0 0 0) to (44.583 42.9 100)
1 by 1 by 1 MPI processor grid
reading atoms ...
1440 atoms
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
mass 1 10.8110 # boron mass (g/mole) | membrane
mass 2 14.0067 # nitrogen mass (g/mole) | membrane
mass 3 12.0107 # carbon mass (g/mole) | adsorbate
# Separate atom groups
group membrane type 1 2
720 atoms in group membrane
group adsorbate type 3
720 atoms in group adsorbate
######################## Potential defition ########################
pair_style hybrid/overlay rebo tersoff ilp/graphene/hbn 16.0 coul/shield 16.0
####################################################################
pair_coeff * * rebo CH.airebo NULL NULL C # chemical
Reading potential file CH.airebo with DATE: 2011-10-25
pair_coeff * * tersoff BNC.tersoff B N NULL # chemical
Reading potential file BNC.tersoff with DATE: 2013-03-21
pair_coeff * * ilp/graphene/hbn BNCH-old.ILP B N C # long range
pair_coeff 1 1 coul/shield 0.70
pair_coeff 1 2 coul/shield 0.69498201415576216335
pair_coeff 2 2 coul/shield 0.69
####################################################################
# Neighbor update settings
neighbor 2.0 bin
neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
# calculate the COM
variable adsxcom equal xcm(adsorbate,x)
variable adsycom equal xcm(adsorbate,y)
variable adszcom equal xcm(adsorbate,z)
variable adsvxcom equal vcm(adsorbate,x)
variable adsvycom equal vcm(adsorbate,y)
variable adsvzcom equal vcm(adsorbate,z)
#### Simulation settings ####
timestep 0.001
velocity all create 300.0 12345
fix thermostat all nve
compute 0 all pair rebo
compute 1 all pair tersoff
compute 2 all pair ilp/graphene/hbn
compute 3 all pair coul/shield
variable REBO equal c_0
variable Tersoff equal c_1
variable EILP equal c_2
variable Ecoul equal c_3
# Calculate the pair potential between the substrate and slider
compute sldsub adsorbate group/group membrane
variable Evdw equal c_sldsub
############################
# Output
thermo 100
thermo_style custom step etotal pe ke v_Evdw v_Tersoff v_REBO v_EILP v_Ecoul temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom
thermo_modify line one format float %.10f
#dump 1 all custom 1000 traj.lammpstrj id mol type xu yu zu
#dump_modify 1 format line "%7d %3d %3d %15.10g %15.10g %15.10g" flush yes
###### Run molecular dynamics ######
run 1000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 5 5 12
7 neighbor lists, perpetual/occasional/extra = 6 1 0
(1) pair rebo, perpetual, skip from (3)
attributes: full, newton on, ghost
pair build: skip/ghost
stencil: none
bin: none
(2) pair tersoff, perpetual, skip from (6)
attributes: full, newton on
pair build: skip
stencil: none
bin: none
(3) pair ilp/graphene/hbn, perpetual
attributes: full, newton on, ghost
pair build: full/bin/ghost
stencil: full/ghost/bin/3d
bin: standard
(4) pair coul/shield, perpetual, half/full from (2)
attributes: half, newton on
pair build: halffull/newton/skip
stencil: none
bin: none
(5) compute group/group, occasional, copy from (7)
attributes: half, newton on
pair build: copy
stencil: none
bin: none
(6) neighbor class addition, perpetual, copy from (3)
attributes: full, newton on
pair build: copy
stencil: none
bin: none
(7) neighbor class addition, perpetual, half/full from (6)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 25.93 | 25.93 | 25.93 Mbytes
Step TotEng PotEng KinEng v_Evdw v_Tersoff v_REBO v_EILP v_Ecoul Temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom
0 -10708.4531746010 -10764.2547791975 55.8016045965 -66.8250335416 -5401.7347845703 -5322.2780762734 -40.2419183538 0.0000000000 300.0000000000 21.6722857297 22.1650000000 3.3300000000 0.1682661410 -0.0842226772 0.1056563755
100 -10708.2491256387 -10738.4532793285 30.2041536898 -68.8603937785 -5389.4304136167 -5309.6361134033 -39.3867523085 0.0000000000 162.3832535368 21.6879886706 22.1574778199 3.3223279482 0.1346509596 -0.0580689194 -0.1274433614
200 -10708.1985754490 -10736.7142682477 28.5156927987 -70.0276479251 -5388.8677096501 -5308.3263464524 -39.5202121452 0.0000000000 153.3057678444 21.6968427596 22.1541506320 3.3143666142 0.0334706445 -0.0081639882 -0.0055006321
300 -10708.1878214116 -10736.9033486636 28.7155272520 -68.2422175765 -5388.5952548022 -5308.9505338445 -39.3575600169 0.0000000000 154.3801157314 21.6939171741 22.1551483321 3.3251666346 -0.0896064591 0.0248921781 0.1717740196
400 -10708.2036103906 -10738.2295882994 30.0259779088 -67.4993928655 -5389.4510311345 -5309.1985887571 -39.5799684078 0.0000000000 161.4253467759 21.6806789605 22.1589742804 3.3300374170 -0.1615300496 0.0532638209 -0.1185426799
500 -10708.1853082161 -10736.0245173060 27.8392090900 -69.9737746636 -5387.9379921501 -5308.5551693329 -39.5313558230 0.0000000000 149.6688632411 21.6641276776 22.1655659011 3.3143210751 -0.1579504334 0.0766822604 -0.1154029266
600 -10708.1781001285 -10736.4254568396 28.2473567110 -69.9368770273 -5388.3515507737 -5308.6700567475 -39.4038493184 0.0000000000 151.8631421907 21.6516789999 22.1733266592 3.3149997184 -0.0805825343 0.0684349609 0.1419617624
700 -10708.1867253590 -10736.6143955088 28.4276701498 -67.1597096579 -5387.8570063253 -5309.0676141640 -39.6897750195 0.0000000000 152.8325414049 21.6489884054 22.1774523945 3.3315351816 0.0259900263 0.0094570835 0.0707953688
800 -10708.1733385055 -10736.0277775931 27.8544390876 -68.6354557276 -5388.1933954711 -5308.5094712719 -39.3249108500 0.0000000000 149.7507425941 21.6565725156 22.1751617515 3.3227650180 0.1222442823 -0.0531420670 -0.1677749693
900 -10708.1827888042 -10737.2646739167 29.0818851126 -70.2218493216 -5387.9824857335 -5309.6527953488 -39.6293928345 0.0000000000 156.3497250098 21.6716950833 22.1680989334 3.3131455846 0.1650154385 -0.0820901425 0.0072049300
1000 -10708.1804322657 -10736.1966428009 28.0162105352 -68.3753745517 -5388.2611029662 -5308.4521913187 -39.4833485160 0.0000000000 150.6204565501 21.6865468141 22.1602434319 3.3246621699 0.1213363701 -0.0688593023 0.1701174943
Loop time of 149.449 on 1 procs for 1000 steps with 1440 atoms
Performance: 0.578 ns/day, 41.514 hours/ns, 6.691 timesteps/s
96.7% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 149.06 | 149.06 | 149.06 | 0.0 | 99.74
Bond | 0.00082946 | 0.00082946 | 0.00082946 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.068351 | 0.068351 | 0.068351 | 0.0 | 0.05
Output | 0.25935 | 0.25935 | 0.25935 | 0.0 | 0.17
Modify | 0.030915 | 0.030915 | 0.030915 | 0.0 | 0.02
Other | | 0.02702 | | | 0.02
Nlocal: 1440 ave 1440 max 1440 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 8180 ave 8180 max 8180 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 140400 ave 140400 max 140400 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 280800 ave 280800 max 280800 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 280800
Ave neighs/atom = 195
Ave special neighs/atom = 0
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:02:29

View File

@ -1,171 +0,0 @@
LAMMPS (8 Mar 2018)
using 1 OpenMP thread(s) per MPI task
# Initialization
units metal
boundary p p p
atom_style full
processors * * 1 # domain decomposition over x and y
# System and atom definition
# we use 2 atom types so that inter- and intra-layer
# interactions can be specified separately
read_data gr_hBN_Cstack_2L_noH.data
orthogonal box = (0 0 0) to (44.583 42.9 100)
2 by 2 by 1 MPI processor grid
reading atoms ...
1440 atoms
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
mass 1 10.8110 # boron mass (g/mole) | membrane
mass 2 14.0067 # nitrogen mass (g/mole) | membrane
mass 3 12.0107 # carbon mass (g/mole) | adsorbate
# Separate atom groups
group membrane type 1 2
720 atoms in group membrane
group adsorbate type 3
720 atoms in group adsorbate
######################## Potential defition ########################
pair_style hybrid/overlay rebo tersoff ilp/graphene/hbn 16.0 coul/shield 16.0
####################################################################
pair_coeff * * rebo CH.airebo NULL NULL C # chemical
Reading potential file CH.airebo with DATE: 2011-10-25
pair_coeff * * tersoff BNC.tersoff B N NULL # chemical
Reading potential file BNC.tersoff with DATE: 2013-03-21
pair_coeff * * ilp/graphene/hbn BNCH-old.ILP B N C # long range
pair_coeff 1 1 coul/shield 0.70
pair_coeff 1 2 coul/shield 0.69498201415576216335
pair_coeff 2 2 coul/shield 0.69
####################################################################
# Neighbor update settings
neighbor 2.0 bin
neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
# calculate the COM
variable adsxcom equal xcm(adsorbate,x)
variable adsycom equal xcm(adsorbate,y)
variable adszcom equal xcm(adsorbate,z)
variable adsvxcom equal vcm(adsorbate,x)
variable adsvycom equal vcm(adsorbate,y)
variable adsvzcom equal vcm(adsorbate,z)
#### Simulation settings ####
timestep 0.001
velocity all create 300.0 12345
fix thermostat all nve
compute 0 all pair rebo
compute 1 all pair tersoff
compute 2 all pair ilp/graphene/hbn
compute 3 all pair coul/shield
variable REBO equal c_0
variable Tersoff equal c_1
variable EILP equal c_2
variable Ecoul equal c_3
# Calculate the pair potential between the substrate and slider
compute sldsub adsorbate group/group membrane
variable Evdw equal c_sldsub
############################
# Output
thermo 100
thermo_style custom step etotal pe ke v_Evdw v_Tersoff v_REBO v_EILP v_Ecoul temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom
thermo_modify line one format float %.10f
#dump 1 all custom 1000 traj.lammpstrj id mol type xu yu zu
#dump_modify 1 format line "%7d %3d %3d %15.10g %15.10g %15.10g" flush yes
###### Run molecular dynamics ######
run 1000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 5 5 12
7 neighbor lists, perpetual/occasional/extra = 6 1 0
(1) pair rebo, perpetual, skip from (3)
attributes: full, newton on, ghost
pair build: skip/ghost
stencil: none
bin: none
(2) pair tersoff, perpetual, skip from (6)
attributes: full, newton on
pair build: skip
stencil: none
bin: none
(3) pair ilp/graphene/hbn, perpetual
attributes: full, newton on, ghost
pair build: full/bin/ghost
stencil: full/ghost/bin/3d
bin: standard
(4) pair coul/shield, perpetual, half/full from (2)
attributes: half, newton on
pair build: halffull/newton/skip
stencil: none
bin: none
(5) compute group/group, occasional, copy from (7)
attributes: half, newton on
pair build: copy
stencil: none
bin: none
(6) neighbor class addition, perpetual, copy from (3)
attributes: full, newton on
pair build: copy
stencil: none
bin: none
(7) neighbor class addition, perpetual, half/full from (6)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 14.25 | 14.25 | 14.25 Mbytes
Step TotEng PotEng KinEng v_Evdw v_Tersoff v_REBO v_EILP v_Ecoul Temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom
0 -10708.4531746011 -10764.2547791976 55.8016045965 -66.8250335415 -5401.7347845703 -5322.2780762735 -40.2419183538 0.0000000000 300.0000000000 21.6722857297 22.1650000000 3.3300000000 0.1682661410 -0.0842226772 0.1056563755
100 -10708.2491256387 -10738.4532793285 30.2041536898 -68.8603937785 -5389.4304136167 -5309.6361134033 -39.3867523085 0.0000000000 162.3832535368 21.6879886706 22.1574778199 3.3223279482 0.1346509596 -0.0580689194 -0.1274433614
200 -10708.1985754490 -10736.7142682477 28.5156927987 -70.0276479251 -5388.8677096501 -5308.3263464524 -39.5202121452 0.0000000000 153.3057678444 21.6968427596 22.1541506320 3.3143666142 0.0334706445 -0.0081639882 -0.0055006321
300 -10708.1878214116 -10736.9033486636 28.7155272520 -68.2422175765 -5388.5952548022 -5308.9505338445 -39.3575600169 0.0000000000 154.3801157314 21.6939171741 22.1551483321 3.3251666346 -0.0896064591 0.0248921781 0.1717740196
400 -10708.2036103906 -10738.2295882994 30.0259779088 -67.4993928655 -5389.4510311345 -5309.1985887571 -39.5799684078 0.0000000000 161.4253467759 21.6806789605 22.1589742804 3.3300374170 -0.1615300496 0.0532638209 -0.1185426799
500 -10708.1853082161 -10736.0245173060 27.8392090900 -69.9737746636 -5387.9379921501 -5308.5551693329 -39.5313558230 0.0000000000 149.6688632411 21.6641276776 22.1655659011 3.3143210751 -0.1579504334 0.0766822604 -0.1154029266
600 -10708.1781001285 -10736.4254568396 28.2473567110 -69.9368770273 -5388.3515507736 -5308.6700567475 -39.4038493184 0.0000000000 151.8631421907 21.6516789999 22.1733266592 3.3149997184 -0.0805825343 0.0684349609 0.1419617624
700 -10708.1867253590 -10736.6143955089 28.4276701498 -67.1597096579 -5387.8570063253 -5309.0676141640 -39.6897750195 0.0000000000 152.8325414049 21.6489884054 22.1774523945 3.3315351816 0.0259900263 0.0094570835 0.0707953688
800 -10708.1733385055 -10736.0277775930 27.8544390876 -68.6354557276 -5388.1933954711 -5308.5094712719 -39.3249108500 0.0000000000 149.7507425941 21.6565725156 22.1751617515 3.3227650180 0.1222442823 -0.0531420670 -0.1677749693
900 -10708.1827888042 -10737.2646739167 29.0818851126 -70.2218493216 -5387.9824857335 -5309.6527953488 -39.6293928345 0.0000000000 156.3497250098 21.6716950833 22.1680989334 3.3131455846 0.1650154385 -0.0820901425 0.0072049300
1000 -10708.1804322657 -10736.1966428009 28.0162105352 -68.3753745517 -5388.2611029662 -5308.4521913187 -39.4833485160 0.0000000000 150.6204565501 21.6865468141 22.1602434319 3.3246621699 0.1213363701 -0.0688593023 0.1701174943
Loop time of 39.6206 on 4 procs for 1000 steps with 1440 atoms
Performance: 2.181 ns/day, 11.006 hours/ns, 25.239 timesteps/s
98.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 | 34.948 | 37.122 | 39.309 | 31.6 | 93.69
Bond | 0.00046444 | 0.0005914 | 0.00089121 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.20131 | 2.3895 | 4.565 | 124.7 | 6.03
Output | 0.069107 | 0.069157 | 0.069264 | 0.0 | 0.17
Modify | 0.010056 | 0.010403 | 0.010688 | 0.3 | 0.03
Other | | 0.02875 | | | 0.07
Nlocal: 360 ave 380 max 340 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 4716 ave 4736 max 4696 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Neighs: 35100 ave 37050 max 33150 min
Histogram: 2 0 0 0 0 0 0 0 0 2
FullNghs: 70200 ave 74100 max 66300 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Total # of neighbors = 280800
Ave neighs/atom = 195
Ave special neighs/atom = 0
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:39

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,51 @@
# Initialization
units metal
boundary p p p
atom_style full
processors * * 1 # domain decomposition over x and y
# System and atom definition
# we use different molecule ids for each layer of hBN
# so that inter- and intra-layer
# interactions can be specified separately
read_data Bi_gr_AB_stack_2L_noH.data
mass 1 12.0107 # carbon mass (g/mole) | membrane
mass 2 12.0107 # carbon mass (g/mole) | adsorbate
# Separate atom groups
group layer1 molecule 1
group layer2 molecule 2
######################## Potential defition ########################
pair_style hybrid/overlay rebo ilp/graphene/hbn 16.0
####################################################################
pair_coeff * * rebo CH.rebo C C # chemical
pair_coeff * * ilp/graphene/hbn BNCH.ILP C C # long range
####################################################################
# Neighbor update settings
neighbor 2.0 bin
neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
#### Simulation settings ####
timestep 0.001
velocity all create 300.0 12345
compute 0 all pair rebo
compute 1 all pair ilp/graphene/hbn
variable REBO equal c_0 # REBO energy
variable ILP equal c_1 # total interlayer energy
variable Evdw equal c_1[1] # attractive energy
variable Erep equal c_1[2] # repulsive energy
############################
# Output
thermo 100
thermo_style custom step etotal pe ke v_REBO v_ILP v_Erep v_Evdw temp
thermo_modify lost warn
###### Run molecular dynamics ######
fix thermostat all nve
run 1000

View File

@ -0,0 +1,56 @@
# Initialization
units metal
boundary p p p
atom_style full
processors * * 1 # domain decomposition over x and y
# System and atom definition
# we use different molecule ids for each layer of hBN
# so that inter- and intra-layer
# interactions can be specified separately
read_data hBN_AA_prime_stack_2L_noH.data
mass 1 10.8110 # boron mass (g/mole) | membrane
mass 2 14.0067 # nitrogen mass (g/mole) | adsorbate
mass 3 10.8110 # boron mass (g/mole) | membrane
mass 4 14.0067 # nitrogen mass (g/mole) | adsorbate
# Separate atom groups
group layer1 molecule 1
group layer2 molecule 2
######################## Potential defition ########################
pair_style hybrid/overlay tersoff ilp/graphene/hbn 16.0 coul/shield 16.0 1
####################################################################
pair_coeff * * tersoff BNC.tersoff B N B N # chemical
pair_coeff * * ilp/graphene/hbn BNCH.ILP B N B N # long range
pair_coeff 1 3 coul/shield 0.70
pair_coeff 1 4 coul/shield 0.69498201415576216335
pair_coeff 2 3 coul/shield 0.69498201415576216335
pair_coeff 2 4 coul/shield 0.69
####################################################################
# Neighbor update settings
neighbor 2.0 bin
neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
#### Simulation settings ####
timestep 0.001
velocity all create 300.0 12345 dist gaussian mom yes rot yes
fix thermostat all nve
compute 0 all pair tersoff
compute 1 all pair coul/shield ecoul
compute 2 all pair ilp/graphene/hbn
variable Tersoff equal c_0 # Tersoff energy
variable Ecoul equal c_1 # Coulomb energy
variable EILP equal c_2 # total interlayer energy
variable Evdw equal c_2[1] # attractive energy
variable Erep equal c_2[2] # repulsive energy
############# Output ###############
thermo 100
thermo_style custom step etotal pe ke v_Evdw v_Tersoff v_EILP v_Erep v_Evdw v_Ecoul temp
thermo_modify lost warn
###### Run molecular dynamics ######
run 1000

View File

@ -0,0 +1,56 @@
# Initialization
units metal
boundary p p p
atom_style full
processors * * 1 # domain decomposition over x and y
# System and atom definition
# we use different molecule ids for each layer
# so that inter- and intra-layer
# interactions can be specified separately
read_data gr_hBN_Cstack_2L_noH.data
mass 1 10.8110 # boron mass (g/mole) | membrane
mass 2 14.0067 # nitrogen mass (g/mole) | membrane
mass 3 12.0107 # carbon mass (g/mole) | adsorbate
# Separate atom groups
group hBN molecule 1
group gr molecule 2
######################## Potential defition ########################
pair_style hybrid/overlay rebo tersoff ilp/graphene/hbn 16.0 coul/shield 16.0
####################################################################
pair_coeff * * rebo CH.rebo NULL NULL C # chemical
pair_coeff * * tersoff BNC.tersoff B N NULL # chemical
pair_coeff * * ilp/graphene/hbn BNCH.ILP B N C # long range
pair_coeff 1 1 coul/shield 0.70
pair_coeff 1 2 coul/shield 0.69498201415576216335
pair_coeff 2 2 coul/shield 0.69
####################################################################
# Neighbor update settings
neighbor 2.0 bin
neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
#### Simulation settings ####
timestep 0.001
velocity all create 300.0 12345 dist gaussian mom yes rot yes
fix thermostat all nve
compute 0 all pair rebo
compute 1 all pair tersoff
compute 2 all pair ilp/graphene/hbn
compute 3 all pair coul/shield
variable REBO equal c_0
variable Tersoff equal c_1
variable EILP equal c_2 # total interlayer energy
variable Evdw equal c_2[1] # attractive energy
variable Erep equal c_2[2] # repulsive energy
variable Ecoul equal c_3
############# Output ##############
thermo 100
thermo_style custom step etotal pe ke v_Evdw v_Tersoff v_REBO v_EILP v_Erep v_Evdw v_Ecoul temp
###### Run molecular dynamics ######
run 1000

View File

@ -32,14 +32,6 @@ neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
# calculate the COM
variable adsxcom equal xcm(adsorbate,x)
variable adsycom equal xcm(adsorbate,y)
variable adszcom equal xcm(adsorbate,z)
variable adsvxcom equal vcm(adsorbate,x)
variable adsvycom equal vcm(adsorbate,y)
variable adsvzcom equal vcm(adsorbate,z)
#### Simulation settings ####
timestep 0.001
#velocity adsorbate create 300.0 12345
@ -51,19 +43,16 @@ compute 1 all pair coul/shield ecoul
compute 2 all pair ilp/graphene/hbn
variable Tersoff equal c_0
variable Ecoul equal c_1
variable EILP equal c_2
# Calculate the pair potential between the substrate and slider
compute sldsub adsorbate group/group membrane
variable Evdw equal c_sldsub
variable ILP equal c_2
variable Evdw equal c_2[1]
variable Erep equal c_2[2]
############################
# Output
thermo 100
thermo_style custom step etotal pe ke v_Evdw v_Tersoff v_EILP v_Ecoul temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom f_subf[1] f_subf[2] f_subf[3]
thermo_modify line one format float %.10f
thermo_modify flush yes norm no lost warn #ignore
thermo_style custom step etotal pe ke v_Tersoff v_ILP v_Ecoul v_Erep v_Evdw temp
thermo_modify lost warn #ignore
#dump 1 all custom 1000 traj.lammpstrj id mol type xu yu zu
#dump_modify 1 format line "%7d %3d %3d %15.10g %15.10g %15.10g" flush yes

View File

@ -1,168 +0,0 @@
LAMMPS (8 Mar 2018)
using 1 OpenMP thread(s) per MPI task
# Initialization
units metal
boundary p p p
atom_style full
processors * * 1 # domain decomposition over x and y
# System and atom definition
# we use 2 atom types so that inter- and intra-layer
# interactions can be specified separately
read_data hBN_AB_stack_2L_noH_equi_300K.data
orthogonal box = (0 0 0) to (43.38 42.5773 100)
1 by 1 by 1 MPI processor grid
reading atoms ...
1360 atoms
reading velocities ...
1360 velocities
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
mass 1 10.8110 # boron mass (g/mole) | membrane
mass 2 14.0067 # nitrogen mass (g/mole) | adsorbate
mass 3 10.8110 # boron mass (g/mole) | membrane
mass 4 14.0067 # nitrogen mass (g/mole) | adsorbate
# Separate atom groups
group membrane type 1 2
680 atoms in group membrane
group adsorbate type 3 4
680 atoms in group adsorbate
######################## Potential defition ########################
pair_style hybrid/overlay tersoff ilp/graphene/hbn 16.0 coul/shield 16.0 1
####################################################################
pair_coeff * * tersoff BNC.tersoff NULL NULL B N # chemical
Reading potential file BNC.tersoff with DATE: 2013-03-21
pair_coeff * * ilp/graphene/hbn BNCH-old.ILP B N B N # long range
pair_coeff 1 3 coul/shield 0.70
pair_coeff 1 4 coul/shield 0.69498201415576216335
pair_coeff 2 3 coul/shield 0.69498201415576216335
pair_coeff 2 4 coul/shield 0.69
####################################################################
# Neighbor update settings
neighbor 2.0 bin
neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
# calculate the COM
variable adsxcom equal xcm(adsorbate,x)
variable adsycom equal xcm(adsorbate,y)
variable adszcom equal xcm(adsorbate,z)
variable adsvxcom equal vcm(adsorbate,x)
variable adsvycom equal vcm(adsorbate,y)
variable adsvzcom equal vcm(adsorbate,z)
#### Simulation settings ####
timestep 0.001
#velocity adsorbate create 300.0 12345
fix subf membrane setforce 0.0 0.0 0.0
fix thermostat all nve
compute 0 all pair tersoff
compute 1 all pair coul/shield ecoul
compute 2 all pair ilp/graphene/hbn
variable Tersoff equal c_0
variable Ecoul equal c_1
variable EILP equal c_2
# Calculate the pair potential between the substrate and slider
compute sldsub adsorbate group/group membrane
variable Evdw equal c_sldsub
############################
# Output
thermo 100
thermo_style custom step etotal pe ke v_Evdw v_Tersoff v_EILP v_Ecoul temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom f_subf[1] f_subf[2] f_subf[3]
thermo_modify line one format float %.10f
thermo_modify flush yes norm no lost warn #ignore
#dump 1 all custom 1000 traj.lammpstrj id mol type xu yu zu
#dump_modify 1 format line "%7d %3d %3d %15.10g %15.10g %15.10g" flush yes
###### Run molecular dynamics ######
run 1000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 5 5 12
6 neighbor lists, perpetual/occasional/extra = 5 1 0
(1) pair tersoff, perpetual, skip from (5)
attributes: full, newton on
pair build: skip
stencil: none
bin: none
(2) pair ilp/graphene/hbn, perpetual
attributes: full, newton on, ghost
pair build: full/bin/ghost
stencil: full/ghost/bin/3d
bin: standard
(3) pair coul/shield, perpetual, skip from (6)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
(4) compute group/group, occasional, copy from (6)
attributes: half, newton on
pair build: copy
stencil: none
bin: none
(5) neighbor class addition, perpetual, copy from (2)
attributes: full, newton on
pair build: copy
stencil: none
bin: none
(6) neighbor class addition, perpetual, half/full from (5)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 57.85 | 57.85 | 57.85 Mbytes
Step TotEng PotEng KinEng v_Evdw v_Tersoff v_EILP v_Ecoul Temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom f_subf[1] f_subf[2] f_subf[3]
0 -5114.6628078598 -5127.8586355055 13.1958276458 -75.3652234209 -5091.4120857465 -36.0831137829 -0.3634359761 75.1194741238 20.9113202537 20.6582215878 3.2895976612 -0.0495147937 -0.0552233516 -0.0166592619 -0.1742790202 -0.0884665936 -0.8010816801
100 -5114.6620580583 -5127.6958349342 13.0337768758 -75.2249487778 -5091.2407919311 -36.0927601416 -0.3622828614 74.1969727889 20.9076129631 20.6534162972 3.2908118318 -0.0234802196 -0.0397832410 0.0332404745 -0.2430042439 -0.1598109185 -0.5351246275
200 -5114.6630637865 -5127.5945140906 12.9314503041 -74.6445167393 -5091.1507571912 -36.0866688941 -0.3570880053 73.6144615235 20.9067696105 20.6505240051 3.2976575241 0.0078967872 -0.0170385302 0.0850447973 -0.2934041648 -0.2405295165 0.2309200807
300 -5114.6693830121 -5128.3286231421 13.6592401300 -74.2223518942 -5091.8645555419 -36.1107860098 -0.3532815904 77.7575278367 20.9090146500 20.6502445717 3.3024525026 0.0352437329 0.0112279015 -0.0021399216 -0.2166516175 -0.2410661267 0.9007458614
400 -5114.6614035404 -5127.6423784754 12.9809749350 -74.6548295432 -5091.2348011465 -36.0496340516 -0.3579432773 73.8963888364 20.9136276183 20.6526810045 3.2977225951 0.0556629502 0.0358324354 -0.0738287296 -0.1431221016 -0.1626739623 0.0673046122
500 -5114.6599876234 -5127.4097813122 12.7497936887 -75.2268687829 -5090.9284608504 -36.1195707042 -0.3617497575 72.5803506074 20.9197050770 20.6571510311 3.2909058903 0.0631939085 0.0530269602 -0.0516940297 -0.0112976844 -0.1217009147 -0.4713422319
600 -5114.6672773464 -5128.0912983829 13.4240210364 -75.3848112535 -5091.6338883189 -36.0938401510 -0.3635699131 76.4185034811 20.9258252862 20.6628322031 3.2892805234 0.0573396226 0.0579085440 0.0291853982 0.1059950758 0.0102266125 -0.7683214794
700 -5114.6609647250 -5127.7466720637 13.0857073388 -74.7981789470 -5091.2811095008 -36.1066385732 -0.3589239897 74.4925957063 20.9307092134 20.6683554324 3.2957959411 0.0396744013 0.0503347378 0.0818267711 0.1737903706 0.1258761156 0.1307185989
800 -5114.6622627667 -5128.0130406264 13.3507778597 -74.2952448854 -5091.5693975625 -36.0897180314 -0.3539250325 76.0015543464 20.9334441079 20.6725125240 3.3019570181 0.0142277646 0.0313116646 0.0291673132 0.2457478793 0.1912082770 0.7239823553
900 -5114.6675469561 -5128.1496933801 13.4821464240 -74.3644898573 -5091.6703861750 -36.1246785145 -0.3546286905 76.7493920516 20.9334403558 20.6744181494 3.3005582394 -0.0141399355 0.0063543986 -0.0561206619 0.2370151923 0.2115707560 0.7822017606
1000 -5114.6683146144 -5128.3364609113 13.6681462969 -75.1091579020 -5091.9370210069 -36.0375964349 -0.3618434694 77.8082276935 20.9306643096 20.6737238853 3.2922181699 -0.0411219854 -0.0200694204 -0.0788193565 0.2225175431 0.2377413412 -0.5875288557
Loop time of 202.063 on 1 procs for 1000 steps with 1360 atoms
Performance: 0.428 ns/day, 56.129 hours/ns, 4.949 timesteps/s
91.0% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 201.4 | 201.4 | 201.4 | 0.0 | 99.67
Bond | 0.00092697 | 0.00092697 | 0.00092697 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.086005 | 0.086005 | 0.086005 | 0.0 | 0.04
Output | 0.50438 | 0.50438 | 0.50438 | 0.0 | 0.25
Modify | 0.038846 | 0.038846 | 0.038846 | 0.0 | 0.02
Other | | 0.03093 | | | 0.02
Nlocal: 1360 ave 1360 max 1360 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 7840 ave 7840 max 7840 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 249628 ave 249628 max 249628 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 253390 ave 253390 max 253390 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 253390
Ave neighs/atom = 186.316
Ave special neighs/atom = 0
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:03:22

View File

@ -1,168 +0,0 @@
LAMMPS (8 Mar 2018)
using 1 OpenMP thread(s) per MPI task
# Initialization
units metal
boundary p p p
atom_style full
processors * * 1 # domain decomposition over x and y
# System and atom definition
# we use 2 atom types so that inter- and intra-layer
# interactions can be specified separately
read_data hBN_AB_stack_2L_noH_equi_300K.data
orthogonal box = (0 0 0) to (43.38 42.5773 100)
2 by 2 by 1 MPI processor grid
reading atoms ...
1360 atoms
reading velocities ...
1360 velocities
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
mass 1 10.8110 # boron mass (g/mole) | membrane
mass 2 14.0067 # nitrogen mass (g/mole) | adsorbate
mass 3 10.8110 # boron mass (g/mole) | membrane
mass 4 14.0067 # nitrogen mass (g/mole) | adsorbate
# Separate atom groups
group membrane type 1 2
680 atoms in group membrane
group adsorbate type 3 4
680 atoms in group adsorbate
######################## Potential defition ########################
pair_style hybrid/overlay tersoff ilp/graphene/hbn 16.0 coul/shield 16.0 1
####################################################################
pair_coeff * * tersoff BNC.tersoff NULL NULL B N # chemical
Reading potential file BNC.tersoff with DATE: 2013-03-21
pair_coeff * * ilp/graphene/hbn BNCH-old.ILP B N B N # long range
pair_coeff 1 3 coul/shield 0.70
pair_coeff 1 4 coul/shield 0.69498201415576216335
pair_coeff 2 3 coul/shield 0.69498201415576216335
pair_coeff 2 4 coul/shield 0.69
####################################################################
# Neighbor update settings
neighbor 2.0 bin
neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
# calculate the COM
variable adsxcom equal xcm(adsorbate,x)
variable adsycom equal xcm(adsorbate,y)
variable adszcom equal xcm(adsorbate,z)
variable adsvxcom equal vcm(adsorbate,x)
variable adsvycom equal vcm(adsorbate,y)
variable adsvzcom equal vcm(adsorbate,z)
#### Simulation settings ####
timestep 0.001
#velocity adsorbate create 300.0 12345
fix subf membrane setforce 0.0 0.0 0.0
fix thermostat all nve
compute 0 all pair tersoff
compute 1 all pair coul/shield ecoul
compute 2 all pair ilp/graphene/hbn
variable Tersoff equal c_0
variable Ecoul equal c_1
variable EILP equal c_2
# Calculate the pair potential between the substrate and slider
compute sldsub adsorbate group/group membrane
variable Evdw equal c_sldsub
############################
# Output
thermo 100
thermo_style custom step etotal pe ke v_Evdw v_Tersoff v_EILP v_Ecoul temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom f_subf[1] f_subf[2] f_subf[3]
thermo_modify line one format float %.10f
thermo_modify flush yes norm no lost warn #ignore
#dump 1 all custom 1000 traj.lammpstrj id mol type xu yu zu
#dump_modify 1 format line "%7d %3d %3d %15.10g %15.10g %15.10g" flush yes
###### Run molecular dynamics ######
run 1000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 5 5 12
6 neighbor lists, perpetual/occasional/extra = 5 1 0
(1) pair tersoff, perpetual, skip from (5)
attributes: full, newton on
pair build: skip
stencil: none
bin: none
(2) pair ilp/graphene/hbn, perpetual
attributes: full, newton on, ghost
pair build: full/bin/ghost
stencil: full/ghost/bin/3d
bin: standard
(3) pair coul/shield, perpetual, skip from (6)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
(4) compute group/group, occasional, copy from (6)
attributes: half, newton on
pair build: copy
stencil: none
bin: none
(5) neighbor class addition, perpetual, copy from (2)
attributes: full, newton on
pair build: copy
stencil: none
bin: none
(6) neighbor class addition, perpetual, half/full from (5)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 30.63 | 30.63 | 30.64 Mbytes
Step TotEng PotEng KinEng v_Evdw v_Tersoff v_EILP v_Ecoul Temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom f_subf[1] f_subf[2] f_subf[3]
0 -5114.6628078598 -5127.8586355055 13.1958276458 -75.3652234209 -5091.4120857465 -36.0831137829 -0.3634359761 75.1194741238 20.9113202537 20.6582215878 3.2895976612 -0.0495147937 -0.0552233516 -0.0166592619 -0.1742790202 -0.0884665936 -0.8010816801
100 -5114.6620580583 -5127.6958349342 13.0337768758 -75.2249487778 -5091.2407919311 -36.0927601416 -0.3622828614 74.1969727889 20.9076129631 20.6534162972 3.2908118318 -0.0234802196 -0.0397832410 0.0332404745 -0.2430042439 -0.1598109185 -0.5351246275
200 -5114.6630637865 -5127.5945140906 12.9314503041 -74.6445167393 -5091.1507571912 -36.0866688941 -0.3570880053 73.6144615235 20.9067696105 20.6505240051 3.2976575241 0.0078967872 -0.0170385302 0.0850447973 -0.2934041648 -0.2405295165 0.2309200807
300 -5114.6693830121 -5128.3286231421 13.6592401300 -74.2223518942 -5091.8645555419 -36.1107860098 -0.3532815904 77.7575278367 20.9090146500 20.6502445717 3.3024525026 0.0352437329 0.0112279015 -0.0021399216 -0.2166516175 -0.2410661267 0.9007458614
400 -5114.6614035404 -5127.6423784754 12.9809749350 -74.6548295432 -5091.2348011465 -36.0496340516 -0.3579432773 73.8963888364 20.9136276183 20.6526810045 3.2977225951 0.0556629502 0.0358324354 -0.0738287296 -0.1431221016 -0.1626739623 0.0673046122
500 -5114.6599876234 -5127.4097813122 12.7497936887 -75.2268687829 -5090.9284608504 -36.1195707042 -0.3617497575 72.5803506074 20.9197050770 20.6571510311 3.2909058903 0.0631939085 0.0530269602 -0.0516940297 -0.0112976844 -0.1217009147 -0.4713422319
600 -5114.6672773464 -5128.0912983829 13.4240210364 -75.3848112535 -5091.6338883189 -36.0938401510 -0.3635699131 76.4185034811 20.9258252862 20.6628322031 3.2892805234 0.0573396226 0.0579085440 0.0291853982 0.1059950758 0.0102266125 -0.7683214794
700 -5114.6609647250 -5127.7466720637 13.0857073388 -74.7981789470 -5091.2811095008 -36.1066385732 -0.3589239897 74.4925957063 20.9307092134 20.6683554324 3.2957959411 0.0396744013 0.0503347378 0.0818267711 0.1737903706 0.1258761156 0.1307185989
800 -5114.6622627667 -5128.0130406264 13.3507778597 -74.2952448854 -5091.5693975625 -36.0897180314 -0.3539250325 76.0015543464 20.9334441079 20.6725125240 3.3019570181 0.0142277646 0.0313116646 0.0291673132 0.2457478793 0.1912082770 0.7239823553
900 -5114.6675469561 -5128.1496933801 13.4821464240 -74.3644898573 -5091.6703861750 -36.1246785145 -0.3546286905 76.7493920516 20.9334403558 20.6744181494 3.3005582394 -0.0141399355 0.0063543986 -0.0561206619 0.2370151923 0.2115707560 0.7822017606
1000 -5114.6683146144 -5128.3364609113 13.6681462969 -75.1091579020 -5091.9370210069 -36.0375964349 -0.3618434694 77.8082276935 20.9306643096 20.6737238853 3.2922181699 -0.0411219854 -0.0200694204 -0.0788193565 0.2225175431 0.2377413412 -0.5875288557
Loop time of 53.3155 on 4 procs for 1000 steps with 1360 atoms
Performance: 1.621 ns/day, 14.810 hours/ns, 18.756 timesteps/s
97.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 | 49.475 | 50.978 | 52.988 | 18.0 | 95.62
Bond | 0.00045061 | 0.00066602 | 0.00086665 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.16491 | 2.1759 | 3.679 | 87.0 | 4.08
Output | 0.11871 | 0.11882 | 0.11911 | 0.0 | 0.22
Modify | 0.012956 | 0.013504 | 0.01387 | 0.3 | 0.03
Other | | 0.02828 | | | 0.05
Nlocal: 340 ave 346 max 336 min
Histogram: 1 0 1 0 1 0 0 0 0 1
Nghost: 4537.5 ave 4540 max 4534 min
Histogram: 1 0 0 0 0 0 2 0 0 1
Neighs: 62407 ave 62413 max 62402 min
Histogram: 1 0 0 1 1 0 0 0 0 1
FullNghs: 63347.5 ave 65585 max 61866 min
Histogram: 1 1 0 1 0 0 0 0 0 1
Total # of neighbors = 253926
Ave neighs/atom = 186.71
Ave special neighs/atom = 0
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:53

View File

@ -0,0 +1,127 @@
LAMMPS (31 Jul 2019)
using 1 OpenMP thread(s) per MPI task
# Initialization
units metal
boundary p p p
atom_style full
processors * * 1 # domain decomposition over x and y
# System and atom definition
# we use different molecule ids for each layer of hBN
# so that inter- and intra-layer
# interactions can be specified separately
read_data Bi_gr_AB_stack_2L_noH.data
orthogonal box = (0 0 0) to (42.6 41.8117 100)
1 by 1 by 1 MPI processor grid
reading atoms ...
1360 atoms
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
special bonds CPU = 0.000290871 secs
read_data CPU = 0.00159073 secs
mass 1 12.0107 # carbon mass (g/mole) | membrane
mass 2 12.0107 # carbon mass (g/mole) | adsorbate
# Separate atom groups
group layer1 molecule 1
680 atoms in group layer1
group layer2 molecule 2
680 atoms in group layer2
######################## Potential defition ########################
pair_style hybrid/overlay rebo ilp/graphene/hbn 16.0
####################################################################
pair_coeff * * rebo CH.rebo C C # chemical
Reading potential file CH.rebo with DATE: 2018-7-3
pair_coeff * * ilp/graphene/hbn BNCH.ILP C C # long range
####################################################################
# Neighbor update settings
neighbor 2.0 bin
neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
#### Simulation settings ####
timestep 0.001
velocity all create 300.0 12345
compute 0 all pair rebo
compute 1 all pair ilp/graphene/hbn
variable REBO equal c_0 # REBO energy
variable ILP equal c_1 # total interlayer energy
variable Evdw equal c_1[1] # attractive energy
variable Erep equal c_1[2] # repulsive energy
############################
# Output
thermo 100
thermo_style custom step etotal pe ke v_REBO v_ILP v_Erep v_Evdw temp
thermo_modify lost warn
###### Run molecular dynamics ######
fix thermostat all nve
run 1000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 5 5 12
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair rebo, perpetual
attributes: full, newton on, ghost
pair build: full/bin/ghost
stencil: full/ghost/bin/3d
bin: standard
(2) pair ilp/graphene/hbn, perpetual, copy from (1)
attributes: full, newton on, ghost
pair build: copy
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 17.21 | 17.21 | 17.21 Mbytes
Step TotEng PotEng KinEng v_REBO v_ILP v_Erep v_Evdw Temp
0 -10037.285 -10089.985 52.699361 -10057.189 -32.795185 43.640104 -76.435288 300
100 -10037.034 -10064.765 27.73131 -10032.181 -32.58421 34.730868 -67.315078 157.86516
200 -10036.963 -10061.144 24.18111 -10028.856 -32.288132 28.179936 -60.468068 137.65505
300 -10037.003 -10063.5 26.496726 -10030.823 -32.677105 34.923849 -67.600954 150.83708
400 -10037.032 -10064.389 27.356526 -10031.853 -32.535415 44.242347 -76.777762 155.73164
500 -10037.023 -10064.114 27.090279 -10031.431 -32.682418 37.229232 -69.91165 154.21598
600 -10037.003 -10063.657 26.653718 -10031.327 -32.329664 28.509073 -60.838737 151.73078
700 -10037.004 -10063.35 26.345697 -10030.801 -32.549231 32.564686 -65.113917 149.97732
800 -10037.025 -10064.219 27.194765 -10031.766 -32.453653 43.381557 -75.83521 154.81078
900 -10037.028 -10064.668 27.639127 -10032.167 -32.500121 39.99345 -72.493571 157.34039
1000 -10037.003 -10063.662 26.658825 -10031.337 -32.325053 29.573578 -61.898631 151.75986
Loop time of 149.887 on 1 procs for 1000 steps with 1360 atoms
Performance: 0.576 ns/day, 41.635 hours/ns, 6.672 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 | 149.75 | 149.75 | 149.75 | 0.0 | 99.91
Bond | 0.00024772 | 0.00024772 | 0.00024772 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.086328 | 0.086328 | 0.086328 | 0.0 | 0.06
Output | 0.00036383 | 0.00036383 | 0.00036383 | 0.0 | 0.00
Modify | 0.028636 | 0.028636 | 0.028636 | 0.0 | 0.02
Other | | 0.01708 | | | 0.01
Nlocal: 1360 ave 1360 max 1360 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 7964 ave 7964 max 7964 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 1.037e+06 ave 1.037e+06 max 1.037e+06 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 1037000
Ave neighs/atom = 762.5
Ave special neighs/atom = 0
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:02:30

View File

@ -0,0 +1,127 @@
LAMMPS (31 Jul 2019)
using 1 OpenMP thread(s) per MPI task
# Initialization
units metal
boundary p p p
atom_style full
processors * * 1 # domain decomposition over x and y
# System and atom definition
# we use different molecule ids for each layer of hBN
# so that inter- and intra-layer
# interactions can be specified separately
read_data Bi_gr_AB_stack_2L_noH.data
orthogonal box = (0 0 0) to (42.6 41.8117 100)
2 by 2 by 1 MPI processor grid
reading atoms ...
1360 atoms
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
special bonds CPU = 0.000157118 secs
read_data CPU = 0.00145698 secs
mass 1 12.0107 # carbon mass (g/mole) | membrane
mass 2 12.0107 # carbon mass (g/mole) | adsorbate
# Separate atom groups
group layer1 molecule 1
680 atoms in group layer1
group layer2 molecule 2
680 atoms in group layer2
######################## Potential defition ########################
pair_style hybrid/overlay rebo ilp/graphene/hbn 16.0
####################################################################
pair_coeff * * rebo CH.rebo C C # chemical
Reading potential file CH.rebo with DATE: 2018-7-3
pair_coeff * * ilp/graphene/hbn BNCH.ILP C C # long range
####################################################################
# Neighbor update settings
neighbor 2.0 bin
neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
#### Simulation settings ####
timestep 0.001
velocity all create 300.0 12345
compute 0 all pair rebo
compute 1 all pair ilp/graphene/hbn
variable REBO equal c_0 # REBO energy
variable ILP equal c_1 # total interlayer energy
variable Evdw equal c_1[1] # attractive energy
variable Erep equal c_1[2] # repulsive energy
############################
# Output
thermo 100
thermo_style custom step etotal pe ke v_REBO v_ILP v_Erep v_Evdw temp
thermo_modify lost warn
###### Run molecular dynamics ######
fix thermostat all nve
run 1000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 5 5 12
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair rebo, perpetual
attributes: full, newton on, ghost
pair build: full/bin/ghost
stencil: full/ghost/bin/3d
bin: standard
(2) pair ilp/graphene/hbn, perpetual, copy from (1)
attributes: full, newton on, ghost
pair build: copy
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 9.879 | 9.879 | 9.879 Mbytes
Step TotEng PotEng KinEng v_REBO v_ILP v_Erep v_Evdw Temp
0 -10037.285 -10089.985 52.699361 -10057.189 -32.795185 43.640104 -76.435288 300
100 -10037.034 -10064.765 27.73131 -10032.181 -32.58421 34.730868 -67.315078 157.86516
200 -10036.963 -10061.144 24.18111 -10028.856 -32.288132 28.179936 -60.468068 137.65505
300 -10037.003 -10063.5 26.496726 -10030.823 -32.677105 34.923849 -67.600954 150.83708
400 -10037.032 -10064.389 27.356526 -10031.853 -32.535415 44.242347 -76.777762 155.73164
500 -10037.023 -10064.114 27.090279 -10031.431 -32.682418 37.229232 -69.91165 154.21598
600 -10037.003 -10063.657 26.653718 -10031.327 -32.329664 28.509073 -60.838737 151.73078
700 -10037.004 -10063.35 26.345697 -10030.801 -32.549231 32.564686 -65.113917 149.97732
800 -10037.025 -10064.219 27.194765 -10031.766 -32.453653 43.381557 -75.83521 154.81078
900 -10037.028 -10064.668 27.639127 -10032.167 -32.500121 39.99345 -72.493571 157.34039
1000 -10037.003 -10063.662 26.658825 -10031.337 -32.325053 29.573578 -61.898631 151.75986
Loop time of 44.6551 on 4 procs for 1000 steps with 1360 atoms
Performance: 1.935 ns/day, 12.404 hours/ns, 22.394 timesteps/s
93.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 | 40.304 | 41.221 | 41.998 | 9.5 | 92.31
Bond | 0.00027633 | 0.00029379 | 0.00031424 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 2.5678 | 3.3334 | 4.2403 | 32.9 | 7.46
Output | 0.0051446 | 0.0054518 | 0.0059683 | 0.4 | 0.01
Modify | 0.0088317 | 0.009002 | 0.0090654 | 0.1 | 0.02
Other | | 0.08586 | | | 0.19
Nlocal: 340 ave 340 max 340 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Nghost: 4628 ave 4628 max 4628 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
FullNghs: 259250 ave 259250 max 259250 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 1037000
Ave neighs/atom = 762.5
Ave special neighs/atom = 0
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:44

View File

@ -0,0 +1,142 @@
LAMMPS (31 Jul 2019)
using 1 OpenMP thread(s) per MPI task
# Initialization
units metal
boundary p p p
atom_style full
processors * * 1 # domain decomposition over x and y
# System and atom definition
# we use different molecule ids for each layer of hBN
# so that inter- and intra-layer
# interactions can be specified separately
read_data hBN_AA_prime_stack_2L_noH.data
orthogonal box = (0 0 0) to (43.38 42.5773 100)
1 by 1 by 1 MPI processor grid
reading atoms ...
1360 atoms
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
special bonds CPU = 0.000375509 secs
read_data CPU = 0.00181293 secs
mass 1 10.8110 # boron mass (g/mole) | membrane
mass 2 14.0067 # nitrogen mass (g/mole) | adsorbate
mass 3 10.8110 # boron mass (g/mole) | membrane
mass 4 14.0067 # nitrogen mass (g/mole) | adsorbate
# Separate atom groups
group layer1 molecule 1
680 atoms in group layer1
group layer2 molecule 2
680 atoms in group layer2
######################## Potential defition ########################
pair_style hybrid/overlay tersoff ilp/graphene/hbn 16.0 coul/shield 16.0 1
####################################################################
pair_coeff * * tersoff BNC.tersoff B N B N # chemical
Reading potential file BNC.tersoff with DATE: 2013-03-21
pair_coeff * * ilp/graphene/hbn BNCH.ILP B N B N # long range
pair_coeff 1 3 coul/shield 0.70
pair_coeff 1 4 coul/shield 0.69498201415576216335
pair_coeff 2 3 coul/shield 0.69498201415576216335
pair_coeff 2 4 coul/shield 0.69
####################################################################
# Neighbor update settings
neighbor 2.0 bin
neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
#### Simulation settings ####
timestep 0.001
velocity all create 300.0 12345 dist gaussian mom yes rot yes
fix thermostat all nve
compute 0 all pair tersoff
compute 1 all pair coul/shield ecoul
compute 2 all pair ilp/graphene/hbn
variable Tersoff equal c_0 # Tersoff energy
variable Ecoul equal c_1 # Coulomb energy
variable EILP equal c_2 # total interlayer energy
variable Evdw equal c_2[1] # attractive energy
variable Erep equal c_2[2] # repulsive energy
############# Output ###############
thermo 100
thermo_style custom step etotal pe ke v_Evdw v_Tersoff v_EILP v_Erep v_Evdw v_Ecoul temp
thermo_modify lost warn
###### Run molecular dynamics ######
run 1000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 5 5 12
4 neighbor lists, perpetual/occasional/extra = 4 0 0
(1) pair tersoff, perpetual
attributes: full, newton on
pair build: full/bin
stencil: full/bin/3d
bin: standard
(2) pair ilp/graphene/hbn, perpetual
attributes: full, newton on, ghost
pair build: full/bin/ghost
stencil: full/ghost/bin/3d
bin: standard
(3) pair coul/shield, perpetual, skip from (4)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
(4) neighbor class addition, perpetual, half/full from (1)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 35.9 | 35.9 | 35.9 Mbytes
Step TotEng PotEng KinEng v_Evdw v_Tersoff v_EILP v_Erep v_Evdw v_Ecoul Temp
0 -10193.138 -10245.837 52.699361 -77.557069 -10208.73 -36.776483 40.780586 -77.557069 -0.33075117 300
100 -10192.814 -10215.193 22.37957 -80.997619 -10177.878 -36.967736 44.029884 -80.997619 -0.34809915 127.39947
200 -10192.922 -10221.807 28.884855 -86.370319 -10184.251 -37.168986 49.201334 -86.370319 -0.38644764 164.43191
300 -10192.878 -10219.029 26.151464 -83.063924 -10182.349 -36.30412 46.759804 -83.063924 -0.37660157 148.87162
400 -10192.892 -10218.834 25.942229 -78.394242 -10181.398 -37.110968 41.283274 -78.394242 -0.32494569 147.68051
500 -10192.909 -10221.331 28.422213 -81.768531 -10184.03 -36.946226 44.822304 -81.768531 -0.35489965 161.79824
600 -10192.886 -10219.371 26.48495 -86.278335 -10182.669 -36.29515 49.983185 -86.278335 -0.40636253 150.77004
700 -10192.902 -10220.95 28.048108 -82.28873 -10183.208 -37.39374 44.89499 -82.28873 -0.34777958 159.66859
800 -10192.88 -10218.51 25.630186 -78.011019 -10181.427 -36.754209 41.256811 -78.011019 -0.32904942 145.90415
900 -10192.894 -10220.56 27.665437 -82.474379 -10183.801 -36.381157 46.093222 -82.474379 -0.37703328 157.49017
1000 -10192.897 -10219.01 26.11313 -87.125683 -10181.252 -37.361898 49.763785 -87.125683 -0.39607952 148.65339
Loop time of 211.527 on 1 procs for 1000 steps with 1360 atoms
Performance: 0.408 ns/day, 58.757 hours/ns, 4.728 timesteps/s
99.9% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 211.4 | 211.4 | 211.4 | 0.0 | 99.94
Bond | 0.00018859 | 0.00018859 | 0.00018859 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.082034 | 0.082034 | 0.082034 | 0.0 | 0.04
Output | 0.00037289 | 0.00037289 | 0.00037289 | 0.0 | 0.00
Modify | 0.027928 | 0.027928 | 0.027928 | 0.0 | 0.01
Other | | 0.0159 | | | 0.01
Nlocal: 1360 ave 1360 max 1360 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 7836 ave 7836 max 7836 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 249560 ave 249560 max 249560 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 1.00504e+06 ave 1.00504e+06 max 1.00504e+06 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 1005040
Ave neighs/atom = 739
Ave special neighs/atom = 0
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:03:31

View File

@ -0,0 +1,142 @@
LAMMPS (31 Jul 2019)
using 1 OpenMP thread(s) per MPI task
# Initialization
units metal
boundary p p p
atom_style full
processors * * 1 # domain decomposition over x and y
# System and atom definition
# we use different molecule ids for each layer of hBN
# so that inter- and intra-layer
# interactions can be specified separately
read_data hBN_AA_prime_stack_2L_noH.data
orthogonal box = (0 0 0) to (43.38 42.5773 100)
2 by 2 by 1 MPI processor grid
reading atoms ...
1360 atoms
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
special bonds CPU = 0.000224352 secs
read_data CPU = 0.00160909 secs
mass 1 10.8110 # boron mass (g/mole) | membrane
mass 2 14.0067 # nitrogen mass (g/mole) | adsorbate
mass 3 10.8110 # boron mass (g/mole) | membrane
mass 4 14.0067 # nitrogen mass (g/mole) | adsorbate
# Separate atom groups
group layer1 molecule 1
680 atoms in group layer1
group layer2 molecule 2
680 atoms in group layer2
######################## Potential defition ########################
pair_style hybrid/overlay tersoff ilp/graphene/hbn 16.0 coul/shield 16.0 1
####################################################################
pair_coeff * * tersoff BNC.tersoff B N B N # chemical
Reading potential file BNC.tersoff with DATE: 2013-03-21
pair_coeff * * ilp/graphene/hbn BNCH.ILP B N B N # long range
pair_coeff 1 3 coul/shield 0.70
pair_coeff 1 4 coul/shield 0.69498201415576216335
pair_coeff 2 3 coul/shield 0.69498201415576216335
pair_coeff 2 4 coul/shield 0.69
####################################################################
# Neighbor update settings
neighbor 2.0 bin
neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
#### Simulation settings ####
timestep 0.001
velocity all create 300.0 12345 dist gaussian mom yes rot yes
fix thermostat all nve
compute 0 all pair tersoff
compute 1 all pair coul/shield ecoul
compute 2 all pair ilp/graphene/hbn
variable Tersoff equal c_0 # Tersoff energy
variable Ecoul equal c_1 # Coulomb energy
variable EILP equal c_2 # total interlayer energy
variable Evdw equal c_2[1] # attractive energy
variable Erep equal c_2[2] # repulsive energy
############# Output ###############
thermo 100
thermo_style custom step etotal pe ke v_Evdw v_Tersoff v_EILP v_Erep v_Evdw v_Ecoul temp
thermo_modify lost warn
###### Run molecular dynamics ######
run 1000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 5 5 12
4 neighbor lists, perpetual/occasional/extra = 4 0 0
(1) pair tersoff, perpetual
attributes: full, newton on
pair build: full/bin
stencil: full/bin/3d
bin: standard
(2) pair ilp/graphene/hbn, perpetual
attributes: full, newton on, ghost
pair build: full/bin/ghost
stencil: full/ghost/bin/3d
bin: standard
(3) pair coul/shield, perpetual, skip from (4)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
(4) neighbor class addition, perpetual, half/full from (1)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 18.99 | 18.99 | 18.99 Mbytes
Step TotEng PotEng KinEng v_Evdw v_Tersoff v_EILP v_Erep v_Evdw v_Ecoul Temp
0 -10193.138 -10245.837 52.699361 -77.557069 -10208.73 -36.776483 40.780586 -77.557069 -0.33075117 300
100 -10192.814 -10215.193 22.37957 -80.997619 -10177.878 -36.967736 44.029884 -80.997619 -0.34809915 127.39947
200 -10192.922 -10221.807 28.884855 -86.370319 -10184.251 -37.168986 49.201334 -86.370319 -0.38644764 164.43191
300 -10192.878 -10219.029 26.151464 -83.063924 -10182.349 -36.30412 46.759804 -83.063924 -0.37660157 148.87162
400 -10192.892 -10218.834 25.942229 -78.394242 -10181.398 -37.110968 41.283274 -78.394242 -0.32494569 147.68051
500 -10192.909 -10221.331 28.422213 -81.768531 -10184.03 -36.946226 44.822304 -81.768531 -0.35489965 161.79824
600 -10192.886 -10219.371 26.48495 -86.278335 -10182.669 -36.29515 49.983185 -86.278335 -0.40636253 150.77004
700 -10192.902 -10220.95 28.048108 -82.28873 -10183.208 -37.39374 44.89499 -82.28873 -0.34777958 159.66859
800 -10192.88 -10218.51 25.630186 -78.011019 -10181.427 -36.754209 41.256811 -78.011019 -0.32904942 145.90415
900 -10192.894 -10220.56 27.665437 -82.474379 -10183.801 -36.381157 46.093222 -82.474379 -0.37703328 157.49017
1000 -10192.897 -10219.01 26.11313 -87.125683 -10181.252 -37.361898 49.763785 -87.125683 -0.39607952 148.65339
Loop time of 68.3631 on 4 procs for 1000 steps with 1360 atoms
Performance: 1.264 ns/day, 18.990 hours/ns, 14.628 timesteps/s
98.5% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 64.58 | 66.38 | 67.402 | 13.2 | 97.10
Bond | 0.0001719 | 0.00021869 | 0.00024033 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.93767 | 1.9601 | 3.76 | 77.0 | 2.87
Output | 0.00033593 | 0.00061601 | 0.0014501 | 0.0 | 0.00
Modify | 0.0085733 | 0.0089303 | 0.0093236 | 0.4 | 0.01
Other | | 0.01285 | | | 0.02
Nlocal: 340 ave 340 max 340 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Nghost: 4536 ave 4536 max 4536 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Neighs: 62390 ave 62390 max 62390 min
Histogram: 4 0 0 0 0 0 0 0 0 0
FullNghs: 251260 ave 251260 max 251260 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 1005040
Ave neighs/atom = 739
Ave special neighs/atom = 0
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:01:08

View File

@ -0,0 +1,153 @@
LAMMPS (31 Jul 2019)
using 1 OpenMP thread(s) per MPI task
# Initialization
units metal
boundary p p p
atom_style full
processors * * 1 # domain decomposition over x and y
# System and atom definition
# we use different molecule ids for each layer
# so that inter- and intra-layer
# interactions can be specified separately
read_data gr_hBN_Cstack_2L_noH.data
orthogonal box = (0 0 0) to (44.583 42.9 100)
1 by 1 by 1 MPI processor grid
reading atoms ...
1440 atoms
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
special bonds CPU = 0.000282049 secs
read_data CPU = 0.00159025 secs
mass 1 10.8110 # boron mass (g/mole) | membrane
mass 2 14.0067 # nitrogen mass (g/mole) | membrane
mass 3 12.0107 # carbon mass (g/mole) | adsorbate
# Separate atom groups
group hBN molecule 1
720 atoms in group hBN
group gr molecule 2
720 atoms in group gr
######################## Potential defition ########################
pair_style hybrid/overlay rebo tersoff ilp/graphene/hbn 16.0 coul/shield 16.0
####################################################################
pair_coeff * * rebo CH.rebo NULL NULL C # chemical
Reading potential file CH.rebo with DATE: 2018-7-3
pair_coeff * * tersoff BNC.tersoff B N NULL # chemical
Reading potential file BNC.tersoff with DATE: 2013-03-21
pair_coeff * * ilp/graphene/hbn BNCH.ILP B N C # long range
pair_coeff 1 1 coul/shield 0.70
pair_coeff 1 2 coul/shield 0.69498201415576216335
pair_coeff 2 2 coul/shield 0.69
####################################################################
# Neighbor update settings
neighbor 2.0 bin
neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
#### Simulation settings ####
timestep 0.001
velocity all create 300.0 12345 dist gaussian mom yes rot yes
fix thermostat all nve
compute 0 all pair rebo
compute 1 all pair tersoff
compute 2 all pair ilp/graphene/hbn
compute 3 all pair coul/shield
variable REBO equal c_0
variable Tersoff equal c_1
variable EILP equal c_2 # total interlayer energy
variable Evdw equal c_2[1] # attractive energy
variable Erep equal c_2[2] # repulsive energy
variable Ecoul equal c_3
############# Output ##############
thermo 100
thermo_style custom step etotal pe ke v_Evdw v_Tersoff v_REBO v_EILP v_Erep v_Evdw v_Ecoul temp
###### Run molecular dynamics ######
run 1000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 5 5 12
6 neighbor lists, perpetual/occasional/extra = 6 0 0
(1) pair rebo, perpetual, skip from (3)
attributes: full, newton on, ghost
pair build: skip/ghost
stencil: none
bin: none
(2) pair tersoff, perpetual, skip from (5)
attributes: full, newton on
pair build: skip
stencil: none
bin: none
(3) pair ilp/graphene/hbn, perpetual
attributes: full, newton on, ghost
pair build: full/bin/ghost
stencil: full/ghost/bin/3d
bin: standard
(4) pair coul/shield, perpetual, half/full from (2)
attributes: half, newton on
pair build: halffull/newton/skip
stencil: none
bin: none
(5) neighbor class addition, perpetual, copy from (3)
attributes: full, newton on
pair build: copy
stencil: none
bin: none
(6) neighbor class addition, perpetual, half/full from (5)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 22.52 | 22.52 | 22.52 Mbytes
Step TotEng PotEng KinEng v_Evdw v_Tersoff v_REBO v_EILP v_Erep v_Evdw v_Ecoul Temp
0 -10707.284 -10763.085 55.801605 -75.247726 -5401.7348 -5322.2781 -39.072409 36.175318 -75.247726 0 300
100 -10707.074 -10737.127 30.05353 -73.217322 -5389.9568 -5309.2004 -37.970102 35.24722 -73.217322 0 161.57347
200 -10707.016 -10734.932 27.91576 -71.603097 -5389.1294 -5307.7455 -38.056875 33.546222 -71.603097 0 150.08042
300 -10707.013 -10734.987 27.973705 -75.082134 -5388.9196 -5308.1165 -37.950947 37.131186 -75.082134 0 150.39194
400 -10707.012 -10735.498 28.486171 -76.339871 -5389.1657 -5308.153 -38.179442 38.160429 -76.339871 0 153.14706
500 -10707.007 -10734.681 27.674101 -73.312354 -5388.7261 -5307.7384 -38.216944 35.09541 -73.312354 0 148.78121
600 -10707.018 -10735.833 28.815132 -71.927763 -5389.0798 -5308.596 -38.157333 33.77043 -71.927763 0 154.91561
700 -10707.02 -10735.656 28.635377 -74.679371 -5389.2971 -5308.1866 -38.172002 36.507368 -74.679371 0 153.94921
800 -10707.004 -10734.352 27.347425 -76.371288 -5388.5923 -5307.7206 -38.038736 38.332552 -76.371288 0 147.02494
900 -10707.014 -10735.832 28.817405 -73.699332 -5388.9674 -5308.7964 -38.068078 35.631254 -73.699332 0 154.92783
1000 -10706.995 -10733.562 26.56615 -71.439868 -5388.0186 -5307.4414 -38.101452 33.338415 -71.439868 0 142.82466
Loop time of 152.66 on 1 procs for 1000 steps with 1440 atoms
Performance: 0.566 ns/day, 42.406 hours/ns, 6.550 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 | 152.52 | 152.52 | 152.52 | 0.0 | 99.91
Bond | 0.00023174 | 0.00023174 | 0.00023174 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.087147 | 0.087147 | 0.087147 | 0.0 | 0.06
Output | 0.0004189 | 0.0004189 | 0.0004189 | 0.0 | 0.00
Modify | 0.029972 | 0.029972 | 0.029972 | 0.0 | 0.02
Other | | 0.02057 | | | 0.01
Nlocal: 1440 ave 1440 max 1440 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 8180 ave 8180 max 8180 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 140400 ave 140400 max 140400 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 280800 ave 280800 max 280800 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 280800
Ave neighs/atom = 195
Ave special neighs/atom = 0
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:02:32

View File

@ -0,0 +1,153 @@
LAMMPS (31 Jul 2019)
using 1 OpenMP thread(s) per MPI task
# Initialization
units metal
boundary p p p
atom_style full
processors * * 1 # domain decomposition over x and y
# System and atom definition
# we use different molecule ids for each layer
# so that inter- and intra-layer
# interactions can be specified separately
read_data gr_hBN_Cstack_2L_noH.data
orthogonal box = (0 0 0) to (44.583 42.9 100)
2 by 2 by 1 MPI processor grid
reading atoms ...
1440 atoms
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
special bonds CPU = 0.00012207 secs
read_data CPU = 0.00357461 secs
mass 1 10.8110 # boron mass (g/mole) | membrane
mass 2 14.0067 # nitrogen mass (g/mole) | membrane
mass 3 12.0107 # carbon mass (g/mole) | adsorbate
# Separate atom groups
group hBN molecule 1
720 atoms in group hBN
group gr molecule 2
720 atoms in group gr
######################## Potential defition ########################
pair_style hybrid/overlay rebo tersoff ilp/graphene/hbn 16.0 coul/shield 16.0
####################################################################
pair_coeff * * rebo CH.rebo NULL NULL C # chemical
Reading potential file CH.rebo with DATE: 2018-7-3
pair_coeff * * tersoff BNC.tersoff B N NULL # chemical
Reading potential file BNC.tersoff with DATE: 2013-03-21
pair_coeff * * ilp/graphene/hbn BNCH.ILP B N C # long range
pair_coeff 1 1 coul/shield 0.70
pair_coeff 1 2 coul/shield 0.69498201415576216335
pair_coeff 2 2 coul/shield 0.69
####################################################################
# Neighbor update settings
neighbor 2.0 bin
neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
#### Simulation settings ####
timestep 0.001
velocity all create 300.0 12345 dist gaussian mom yes rot yes
fix thermostat all nve
compute 0 all pair rebo
compute 1 all pair tersoff
compute 2 all pair ilp/graphene/hbn
compute 3 all pair coul/shield
variable REBO equal c_0
variable Tersoff equal c_1
variable EILP equal c_2 # total interlayer energy
variable Evdw equal c_2[1] # attractive energy
variable Erep equal c_2[2] # repulsive energy
variable Ecoul equal c_3
############# Output ##############
thermo 100
thermo_style custom step etotal pe ke v_Evdw v_Tersoff v_REBO v_EILP v_Erep v_Evdw v_Ecoul temp
###### Run molecular dynamics ######
run 1000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 5 5 12
6 neighbor lists, perpetual/occasional/extra = 6 0 0
(1) pair rebo, perpetual, skip from (3)
attributes: full, newton on, ghost
pair build: skip/ghost
stencil: none
bin: none
(2) pair tersoff, perpetual, skip from (5)
attributes: full, newton on
pair build: skip
stencil: none
bin: none
(3) pair ilp/graphene/hbn, perpetual
attributes: full, newton on, ghost
pair build: full/bin/ghost
stencil: full/ghost/bin/3d
bin: standard
(4) pair coul/shield, perpetual, half/full from (2)
attributes: half, newton on
pair build: halffull/newton/skip
stencil: none
bin: none
(5) neighbor class addition, perpetual, copy from (3)
attributes: full, newton on
pair build: copy
stencil: none
bin: none
(6) neighbor class addition, perpetual, half/full from (5)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 12.45 | 12.45 | 12.45 Mbytes
Step TotEng PotEng KinEng v_Evdw v_Tersoff v_REBO v_EILP v_Erep v_Evdw v_Ecoul Temp
0 -10707.284 -10763.085 55.801605 -75.247726 -5401.7348 -5322.2781 -39.072409 36.175318 -75.247726 0 300
100 -10707.074 -10737.127 30.05353 -73.217322 -5389.9568 -5309.2004 -37.970102 35.24722 -73.217322 0 161.57347
200 -10707.016 -10734.932 27.91576 -71.603097 -5389.1294 -5307.7455 -38.056875 33.546222 -71.603097 0 150.08042
300 -10707.013 -10734.987 27.973705 -75.082134 -5388.9196 -5308.1165 -37.950947 37.131186 -75.082134 0 150.39194
400 -10707.012 -10735.498 28.486171 -76.339871 -5389.1657 -5308.153 -38.179442 38.160429 -76.339871 0 153.14706
500 -10707.007 -10734.681 27.674101 -73.312354 -5388.7261 -5307.7384 -38.216944 35.09541 -73.312354 0 148.78121
600 -10707.018 -10735.833 28.815132 -71.927763 -5389.0798 -5308.596 -38.157333 33.77043 -71.927763 0 154.91561
700 -10707.02 -10735.656 28.635377 -74.679371 -5389.2971 -5308.1866 -38.172002 36.507368 -74.679371 0 153.94921
800 -10707.004 -10734.352 27.347425 -76.371288 -5388.5923 -5307.7206 -38.038736 38.332552 -76.371288 0 147.02494
900 -10707.014 -10735.832 28.817405 -73.699332 -5388.9674 -5308.7964 -38.068078 35.631254 -73.699332 0 154.92783
1000 -10706.995 -10733.562 26.56615 -71.439868 -5388.0186 -5307.4414 -38.101452 33.338415 -71.439868 0 142.82466
Loop time of 54.095 on 4 procs for 1000 steps with 1440 atoms
Performance: 1.597 ns/day, 15.026 hours/ns, 18.486 timesteps/s
84.8% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 42.138 | 45.531 | 49.106 | 42.0 | 84.17
Bond | 0.0003159 | 0.00037384 | 0.000489 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 4.71 | 8.2803 | 11.682 | 98.3 | 15.31
Output | 0.0021999 | 0.0055975 | 0.013382 | 6.0 | 0.01
Modify | 0.0092845 | 0.010981 | 0.012538 | 1.3 | 0.02
Other | | 0.2673 | | | 0.49
Nlocal: 360 ave 380 max 340 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 4716 ave 4736 max 4696 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Neighs: 35100 ave 37050 max 33150 min
Histogram: 2 0 0 0 0 0 0 0 0 2
FullNghs: 70200 ave 74100 max 66300 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Total # of neighbors = 280800
Ave neighs/atom = 195
Ave special neighs/atom = 0
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:54

View File

@ -0,0 +1,154 @@
LAMMPS (31 Jul 2019)
using 1 OpenMP thread(s) per MPI task
# Initialization
units metal
boundary p p p
atom_style full
processors * * 1 # domain decomposition over x and y
# System and atom definition
# we use 2 atom types so that inter- and intra-layer
# interactions can be specified separately
read_data hBN_AB_stack_2L_noH_equi_300K.data
orthogonal box = (0 0 0) to (43.38 42.5773 100)
1 by 1 by 1 MPI processor grid
reading atoms ...
1360 atoms
reading velocities ...
1360 velocities
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
special bonds CPU = 0.000251532 secs
read_data CPU = 0.00451231 secs
mass 1 10.8110 # boron mass (g/mole) | membrane
mass 2 14.0067 # nitrogen mass (g/mole) | adsorbate
mass 3 10.8110 # boron mass (g/mole) | membrane
mass 4 14.0067 # nitrogen mass (g/mole) | adsorbate
# Separate atom groups
group membrane type 1 2
680 atoms in group membrane
group adsorbate type 3 4
680 atoms in group adsorbate
######################## Potential defition ########################
pair_style hybrid/overlay tersoff ilp/graphene/hbn 16.0 coul/shield 16.0 1
####################################################################
pair_coeff * * tersoff BNC.tersoff NULL NULL B N # chemical
Reading potential file BNC.tersoff with DATE: 2013-03-21
pair_coeff * * ilp/graphene/hbn BNCH-old.ILP B N B N # long range
pair_coeff 1 3 coul/shield 0.70
pair_coeff 1 4 coul/shield 0.69498201415576216335
pair_coeff 2 3 coul/shield 0.69498201415576216335
pair_coeff 2 4 coul/shield 0.69
####################################################################
# Neighbor update settings
neighbor 2.0 bin
neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
#### Simulation settings ####
timestep 0.001
#velocity adsorbate create 300.0 12345
fix subf membrane setforce 0.0 0.0 0.0
fix thermostat all nve
compute 0 all pair tersoff
compute 1 all pair coul/shield ecoul
compute 2 all pair ilp/graphene/hbn
variable Tersoff equal c_0
variable Ecoul equal c_1
variable ILP equal c_2
variable Evdw equal c_2[1]
variable Erep equal c_2[2]
############################
# Output
thermo 100
thermo_style custom step etotal pe ke v_Tersoff v_ILP v_Ecoul v_Erep v_Evdw temp
thermo_modify lost warn #ignore
#dump 1 all custom 1000 traj.lammpstrj id mol type xu yu zu
#dump_modify 1 format line "%7d %3d %3d %15.10g %15.10g %15.10g" flush yes
###### Run molecular dynamics ######
run 1000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 5 5 12
5 neighbor lists, perpetual/occasional/extra = 5 0 0
(1) pair tersoff, perpetual, skip from (4)
attributes: full, newton on
pair build: skip
stencil: none
bin: none
(2) pair ilp/graphene/hbn, perpetual
attributes: full, newton on, ghost
pair build: full/bin/ghost
stencil: full/ghost/bin/3d
bin: standard
(3) pair coul/shield, perpetual, skip from (5)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
(4) neighbor class addition, perpetual, copy from (2)
attributes: full, newton on
pair build: copy
stencil: none
bin: none
(5) neighbor class addition, perpetual, half/full from (4)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 54.59 | 54.59 | 54.59 Mbytes
Step TotEng PotEng KinEng v_Tersoff v_ILP v_Ecoul v_Erep v_Evdw Temp
0 -5114.6628 -5127.8586 13.195828 -5091.4121 -36.083114 -0.36343598 38.918674 -75.001787 75.119474
100 -5114.6621 -5127.6958 13.033777 -5091.2408 -36.09276 -0.36228286 38.769906 -74.862666 74.196973
200 -5114.6631 -5127.5945 12.93145 -5091.1508 -36.086669 -0.35708801 38.20076 -74.287429 73.614462
300 -5114.6694 -5128.3286 13.65924 -5091.8646 -36.110786 -0.35328159 37.758284 -73.86907 77.757528
400 -5114.6614 -5127.6424 12.980975 -5091.2348 -36.049634 -0.35794328 38.247252 -74.296886 73.896389
500 -5114.66 -5127.4098 12.749794 -5090.9285 -36.119571 -0.36174976 38.745548 -74.865119 72.580351
600 -5114.6673 -5128.0913 13.424021 -5091.6339 -36.09384 -0.36356991 38.927401 -75.021241 76.418503
700 -5114.661 -5127.7467 13.085707 -5091.2811 -36.106639 -0.35892399 38.332616 -74.439255 74.492596
800 -5114.6623 -5128.013 13.350778 -5091.5694 -36.089718 -0.35392503 37.851602 -73.94132 76.001554
900 -5114.6675 -5128.1497 13.482146 -5091.6704 -36.124679 -0.35462869 37.885183 -74.009861 76.749392
1000 -5114.6683 -5128.3365 13.668146 -5091.937 -36.037596 -0.36184347 38.709718 -74.747314 77.808228
Loop time of 207.028 on 1 procs for 1000 steps with 1360 atoms
Performance: 0.417 ns/day, 57.508 hours/ns, 4.830 timesteps/s
99.9% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 206.9 | 206.9 | 206.9 | 0.0 | 99.94
Bond | 0.00019169 | 0.00019169 | 0.00019169 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.081397 | 0.081397 | 0.081397 | 0.0 | 0.04
Output | 0.00036597 | 0.00036597 | 0.00036597 | 0.0 | 0.00
Modify | 0.033408 | 0.033408 | 0.033408 | 0.0 | 0.02
Other | | 0.01615 | | | 0.01
Nlocal: 1360 ave 1360 max 1360 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 7840 ave 7840 max 7840 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 249628 ave 249628 max 249628 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 253390 ave 253390 max 253390 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 253390
Ave neighs/atom = 186.316
Ave special neighs/atom = 0
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:03:27

View File

@ -0,0 +1,154 @@
LAMMPS (31 Jul 2019)
using 1 OpenMP thread(s) per MPI task
# Initialization
units metal
boundary p p p
atom_style full
processors * * 1 # domain decomposition over x and y
# System and atom definition
# we use 2 atom types so that inter- and intra-layer
# interactions can be specified separately
read_data hBN_AB_stack_2L_noH_equi_300K.data
orthogonal box = (0 0 0) to (43.38 42.5773 100)
2 by 2 by 1 MPI processor grid
reading atoms ...
1360 atoms
reading velocities ...
1360 velocities
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
special bonds CPU = 0.000332117 secs
read_data CPU = 0.00270581 secs
mass 1 10.8110 # boron mass (g/mole) | membrane
mass 2 14.0067 # nitrogen mass (g/mole) | adsorbate
mass 3 10.8110 # boron mass (g/mole) | membrane
mass 4 14.0067 # nitrogen mass (g/mole) | adsorbate
# Separate atom groups
group membrane type 1 2
680 atoms in group membrane
group adsorbate type 3 4
680 atoms in group adsorbate
######################## Potential defition ########################
pair_style hybrid/overlay tersoff ilp/graphene/hbn 16.0 coul/shield 16.0 1
####################################################################
pair_coeff * * tersoff BNC.tersoff NULL NULL B N # chemical
Reading potential file BNC.tersoff with DATE: 2013-03-21
pair_coeff * * ilp/graphene/hbn BNCH-old.ILP B N B N # long range
pair_coeff 1 3 coul/shield 0.70
pair_coeff 1 4 coul/shield 0.69498201415576216335
pair_coeff 2 3 coul/shield 0.69498201415576216335
pair_coeff 2 4 coul/shield 0.69
####################################################################
# Neighbor update settings
neighbor 2.0 bin
neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
#### Simulation settings ####
timestep 0.001
#velocity adsorbate create 300.0 12345
fix subf membrane setforce 0.0 0.0 0.0
fix thermostat all nve
compute 0 all pair tersoff
compute 1 all pair coul/shield ecoul
compute 2 all pair ilp/graphene/hbn
variable Tersoff equal c_0
variable Ecoul equal c_1
variable ILP equal c_2
variable Evdw equal c_2[1]
variable Erep equal c_2[2]
############################
# Output
thermo 100
thermo_style custom step etotal pe ke v_Tersoff v_ILP v_Ecoul v_Erep v_Evdw temp
thermo_modify lost warn #ignore
#dump 1 all custom 1000 traj.lammpstrj id mol type xu yu zu
#dump_modify 1 format line "%7d %3d %3d %15.10g %15.10g %15.10g" flush yes
###### Run molecular dynamics ######
run 1000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 5 5 12
5 neighbor lists, perpetual/occasional/extra = 5 0 0
(1) pair tersoff, perpetual, skip from (4)
attributes: full, newton on
pair build: skip
stencil: none
bin: none
(2) pair ilp/graphene/hbn, perpetual
attributes: full, newton on, ghost
pair build: full/bin/ghost
stencil: full/ghost/bin/3d
bin: standard
(3) pair coul/shield, perpetual, skip from (5)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
(4) neighbor class addition, perpetual, copy from (2)
attributes: full, newton on
pair build: copy
stencil: none
bin: none
(5) neighbor class addition, perpetual, half/full from (4)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 28.9 | 28.9 | 28.9 Mbytes
Step TotEng PotEng KinEng v_Tersoff v_ILP v_Ecoul v_Erep v_Evdw Temp
0 -5114.6628 -5127.8586 13.195828 -5091.4121 -36.083114 -0.36343598 38.918674 -75.001787 75.119474
100 -5114.6621 -5127.6958 13.033777 -5091.2408 -36.09276 -0.36228286 38.769906 -74.862666 74.196973
200 -5114.6631 -5127.5945 12.93145 -5091.1508 -36.086669 -0.35708801 38.20076 -74.287429 73.614462
300 -5114.6694 -5128.3286 13.65924 -5091.8646 -36.110786 -0.35328159 37.758284 -73.86907 77.757528
400 -5114.6614 -5127.6424 12.980975 -5091.2348 -36.049634 -0.35794328 38.247252 -74.296886 73.896389
500 -5114.66 -5127.4098 12.749794 -5090.9285 -36.119571 -0.36174976 38.745548 -74.865119 72.580351
600 -5114.6673 -5128.0913 13.424021 -5091.6339 -36.09384 -0.36356991 38.927401 -75.021241 76.418503
700 -5114.661 -5127.7467 13.085707 -5091.2811 -36.106639 -0.35892399 38.332616 -74.439255 74.492596
800 -5114.6623 -5128.013 13.350778 -5091.5694 -36.089718 -0.35392503 37.851602 -73.94132 76.001554
900 -5114.6675 -5128.1497 13.482146 -5091.6704 -36.124679 -0.35462869 37.885183 -74.009861 76.749392
1000 -5114.6683 -5128.3365 13.668146 -5091.937 -36.037596 -0.36184347 38.709718 -74.747314 77.808228
Loop time of 65.9005 on 4 procs for 1000 steps with 1360 atoms
Performance: 1.311 ns/day, 18.306 hours/ns, 15.174 timesteps/s
98.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 | 63.244 | 64.208 | 65.281 | 10.1 | 97.43
Bond | 0.00013971 | 0.00017679 | 0.00022101 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.58237 | 1.6612 | 2.6292 | 63.1 | 2.52
Output | 0.0003171 | 0.00062358 | 0.0015192 | 0.0 | 0.00
Modify | 0.010251 | 0.010509 | 0.01075 | 0.2 | 0.02
Other | | 0.02025 | | | 0.03
Nlocal: 340 ave 346 max 336 min
Histogram: 1 0 1 0 1 0 0 0 0 1
Nghost: 4537.5 ave 4540 max 4534 min
Histogram: 1 0 0 0 0 0 2 0 0 1
Neighs: 62407 ave 62413 max 62402 min
Histogram: 1 0 0 1 1 0 0 0 0 1
FullNghs: 63347.5 ave 65585 max 61866 min
Histogram: 1 1 0 1 0 0 0 0 0 1
Total # of neighbors = 253926
Ave neighs/atom = 186.71
Ave special neighs/atom = 0
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:01:06

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
../../../../potentials/CH.KC

View File

@ -0,0 +1 @@
../../../../potentials/CH_taper.KC

View File

@ -5,21 +5,22 @@ atom_style full
processors * * 1 # domain decomposition over x and y
# System and atom definition
# we use 2 atom types so that inter- and intra-layer
# we use different molecule ids for each layer of hBN
# so that inter- and intra-layer
# interactions can be specified separately
# read lammps data file
read_data Bi_gr_AB_stack_2L_noH_300K.data
read_data Bi_gr_AB_stack_2L_noH.data
mass 1 12.0107 # carbon mass (g/mole) | membrane
mass 2 12.0107 # carbon mass (g/mole) | adsorbate
# Separate atom groups
group membrane type 1
group adsorbate type 2
group layer1 molecule 1
group layer2 molecule 2
######################## Potential defition ########################
pair_style hybrid/overlay rebo kolmogorov/crespi/full 16.0
pair_style hybrid/overlay rebo kolmogorov/crespi/full 16.0 1
####################################################################
pair_coeff * * rebo CH.rebo NULL C # chemical
pair_coeff * * kolmogorov/crespi/full CC.KC-full C C # long range
pair_coeff * * rebo CH.rebo C C # chemical
pair_coeff * * kolmogorov/crespi/full CH_taper.KC C C # long range
####################################################################
# Neighbor update settings
neighbor 2.0 bin
@ -27,34 +28,25 @@ neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
# calculate the COM
variable adsxcom equal xcm(adsorbate,x)
variable adsycom equal xcm(adsorbate,y)
variable adszcom equal xcm(adsorbate,z)
variable adsvxcom equal vcm(adsorbate,x)
variable adsvycom equal vcm(adsorbate,y)
variable adsvzcom equal vcm(adsorbate,z)
#### Simulation settings ####
timestep 0.001
fix subf membrane setforce 0.0 0.0 0.0
fix thermostat all nve
timestep 0.001
velocity all create 300.0 12345
compute 0 all pair rebo
compute 1 all pair kolmogorov/crespi/full
variable REBO equal c_0
variable KC equal c_1
compute 0 all pair rebo
compute 1 all pair kolmogorov/crespi/full
variable REBO equal c_0 # REBO energy
variable KC equal c_1 # total interlayer energy
variable Evdw equal c_1[1] # attractive energy
variable Erep equal c_1[2] # repulsive energy
############################
# Output
thermo 100
thermo_style custom step etotal pe ke v_REBO v_KC temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom
thermo_modify line one format float %.10f
thermo_modify flush yes norm no lost warn #ignore
#dump 1 all custom 1000 traj.lammpstrj id mol type xu yu zu
#dump_modify 1 format line "%7d %3d %3d %15.10g %15.10g %15.10g" flush yes
thermo_style custom step cpu etotal pe ke v_REBO v_KC v_Erep v_Evdw temp
thermo_modify line one format float %.16f
thermo_modify flush yes norm no lost warn
###### Run molecular dynamics ######
run 1000
fix thermostat all nve
run 1000

View File

@ -0,0 +1,129 @@
LAMMPS (5 Jun 2019)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:88)
using 1 OpenMP thread(s) per MPI task
# Initialization
units metal
boundary p p p
atom_style full
processors * * 1 # domain decomposition over x and y
# System and atom definition
# we use different molecule ids for each layer of hBN
# so that inter- and intra-layer
# interactions can be specified separately
read_data Bi_gr_AB_stack_2L_noH.data
orthogonal box = (0 0 0) to (42.6 41.8117 100)
1 by 1 by 1 MPI processor grid
reading atoms ...
1360 atoms
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
special bonds CPU = 0.000143357 secs
read_data CPU = 0.00128686 secs
mass 1 12.0107 # carbon mass (g/mole) | membrane
mass 2 12.0107 # carbon mass (g/mole) | adsorbate
# Separate atom groups
group layer1 molecule 1
680 atoms in group layer1
group layer2 molecule 2
680 atoms in group layer2
######################## Potential defition ########################
pair_style hybrid/overlay rebo kolmogorov/crespi/full 16.0 1
####################################################################
pair_coeff * * rebo CH.rebo C C # chemical
Reading potential file CH.rebo with DATE: 2018-7-3
pair_coeff * * kolmogorov/crespi/full CH_taper.KC C C # long range
####################################################################
# Neighbor update settings
neighbor 2.0 bin
neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
#### Simulation settings ####
timestep 0.001
velocity all create 300.0 12345
compute 0 all pair rebo
compute 1 all pair kolmogorov/crespi/full
variable REBO equal c_0 # REBO energy
variable KC equal c_1 # total interlayer energy
variable Evdw equal c_1[1] # attractive energy
variable Erep equal c_1[2] # repulsive energy
############################
# Output
thermo 100
thermo_style custom step cpu etotal pe ke v_REBO v_KC v_Erep v_Evdw temp
thermo_modify line one format float %.16f
thermo_modify flush yes norm no lost warn
###### Run molecular dynamics ######
fix thermostat all nve
run 1000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 5 5 12
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair rebo, perpetual
attributes: full, newton on, ghost
pair build: full/bin/ghost
stencil: full/ghost/bin/3d
bin: standard
(2) pair kolmogorov/crespi/full, perpetual, copy from (1)
attributes: full, newton on, ghost
pair build: copy
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 17.21 | 17.21 | 17.21 Mbytes
Step CPU TotEng PotEng KinEng v_REBO v_KC v_Erep v_Evdw Temp
0 0.0000000000000000 -10037.7640583248121402 -10090.4634194413119985 52.6993611164999436 -10057.1894932863488066 -33.2739261549639664 35.9559834316876348 -69.2299095866357561 299.9999999999996589
100 5.3877589240437374 -10037.5122858156355505 -10065.4637593850693520 27.9514735694345475 -10032.2132655062632693 -33.2504938788055995 25.2100699045900747 -58.4605637833913789 159.1184768311149185
200 10.7755050340201706 -10037.4414086674350983 -10061.6271012692632212 24.1856926018286202 -10028.9093252939674130 -32.7177759752951403 18.5366534598604176 -51.2544294351563394 137.6811336385792970
300 16.1665089030284435 -10037.4824653300311184 -10064.2845326005663082 26.8020672705344225 -10030.9195389405322203 -33.3649936600345924 26.3639208740001152 -59.7289145340284122 152.5752876469470891
400 21.5454839280573651 -10037.5105626329259394 -10064.8769084956420556 27.3663458627154164 -10031.8478821022799821 -33.0290263933626349 36.6142885774199272 -69.6433149707719963 155.7875386888538571
500 26.9370588400634006 -10037.5010433785082569 -10064.8363209936451312 27.3352776151367571 -10031.4417172103931080 -33.3946037832518243 26.2980262321670750 -59.6926300154142595 155.6106774503846850
600 32.4204196080099791 -10037.4817772372425679 -10064.1925798287738871 26.7108025915316247 -10031.4376178099264507 -32.7549620188478201 18.5745873777024606 -51.3295493965519327 152.0557480714992380
700 37.8001567909959704 -10037.4834430268438155 -10064.1291975032218033 26.6457544763788299 -10030.8722888097800023 -33.2569086934421492 25.2322818106646771 -58.4891905041015008 151.6854507067418467
800 43.1622281169984490 -10037.5047888097760733 -10064.8671187128948077 27.3623299031188978 -10031.9815058608437539 -32.8856128520517217 36.5236695083771536 -69.4092823604148350 155.7646771616279011
900 48.5261204120470211 -10037.5068323940176924 -10065.3998155271074211 27.8929831330889542 -10032.1734374829957233 -33.2263780441125931 27.7314849391008309 -60.9578629832065317 158.7855101588076820
1000 53.8888844919856638 -10037.4811494880468672 -10064.0099109142265661 26.5287614261789670 -10031.3325267421259923 -32.6773841721003464 18.9005970229871600 -51.5779811950879434 151.0194480396057202
Loop time of 53.8889 on 1 procs for 1000 steps with 1360 atoms
Performance: 1.603 ns/day, 14.969 hours/ns, 18.557 timesteps/s
100.0% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 53.836 | 53.836 | 53.836 | 0.0 | 99.90
Bond | 0.00043479 | 0.00043479 | 0.00043479 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.032452 | 0.032452 | 0.032452 | 0.0 | 0.06
Output | 0.00058326 | 0.00058326 | 0.00058326 | 0.0 | 0.00
Modify | 0.0094135 | 0.0094135 | 0.0094135 | 0.0 | 0.02
Other | | 0.009815 | | | 0.02
Nlocal: 1360 ave 1360 max 1360 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 7964 ave 7964 max 7964 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 1.037e+06 ave 1.037e+06 max 1.037e+06 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 1037000
Ave neighs/atom = 762.5
Ave special neighs/atom = 0
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:54

View File

@ -0,0 +1,129 @@
LAMMPS (5 Jun 2019)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:88)
using 1 OpenMP thread(s) per MPI task
# Initialization
units metal
boundary p p p
atom_style full
processors * * 1 # domain decomposition over x and y
# System and atom definition
# we use different molecule ids for each layer of hBN
# so that inter- and intra-layer
# interactions can be specified separately
read_data Bi_gr_AB_stack_2L_noH.data
orthogonal box = (0 0 0) to (42.6 41.8117 100)
2 by 2 by 1 MPI processor grid
reading atoms ...
1360 atoms
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
special bonds CPU = 0.000245051 secs
read_data CPU = 0.00257704 secs
mass 1 12.0107 # carbon mass (g/mole) | membrane
mass 2 12.0107 # carbon mass (g/mole) | adsorbate
# Separate atom groups
group layer1 molecule 1
680 atoms in group layer1
group layer2 molecule 2
680 atoms in group layer2
######################## Potential defition ########################
pair_style hybrid/overlay rebo kolmogorov/crespi/full 16.0 1
####################################################################
pair_coeff * * rebo CH.rebo C C # chemical
Reading potential file CH.rebo with DATE: 2018-7-3
pair_coeff * * kolmogorov/crespi/full CH_taper.KC C C # long range
####################################################################
# Neighbor update settings
neighbor 2.0 bin
neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
#### Simulation settings ####
timestep 0.001
velocity all create 300.0 12345
compute 0 all pair rebo
compute 1 all pair kolmogorov/crespi/full
variable REBO equal c_0 # REBO energy
variable KC equal c_1 # total interlayer energy
variable Evdw equal c_1[1] # attractive energy
variable Erep equal c_1[2] # repulsive energy
############################
# Output
thermo 100
thermo_style custom step cpu etotal pe ke v_REBO v_KC v_Erep v_Evdw temp
thermo_modify line one format float %.16f
thermo_modify flush yes norm no lost warn
###### Run molecular dynamics ######
fix thermostat all nve
run 1000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 5 5 12
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair rebo, perpetual
attributes: full, newton on, ghost
pair build: full/bin/ghost
stencil: full/ghost/bin/3d
bin: standard
(2) pair kolmogorov/crespi/full, perpetual, copy from (1)
attributes: full, newton on, ghost
pair build: copy
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 9.878 | 9.878 | 9.878 Mbytes
Step CPU TotEng PotEng KinEng v_REBO v_KC v_Erep v_Evdw Temp
0 0.0000000000000000 -10037.7640583250176860 -10090.4634194415175443 52.6993611164999933 -10057.1894932866325689 -33.2739261548851388 35.9559834317043467 -69.2299095866038954 299.9999999999999432
100 1.5180600649910048 -10037.5122858156355505 -10065.4637593850711710 27.9514735694348637 -10032.2132655062741833 -33.2504938787968172 25.2100699046001573 -58.4605637833912795 159.1184768311167090
200 3.0089348420733586 -10037.4414086674296414 -10061.6271012692577642 24.1856926018279914 -10028.9093252939601371 -32.7177759752976272 18.5366534598677504 -51.2544294351567515 137.6811336385757158
300 4.5315427089808509 -10037.4824653300020145 -10064.2845326005372044 26.8020672705348311 -10030.9195389405158494 -33.3649936600211205 26.3639208740115549 -59.7289145340278722 152.5752876469494197
400 6.0353655620710924 -10037.5105626329095685 -10064.8769084956238657 27.3663458627148124 -10031.8478821022818011 -33.0290263933414394 36.6142885774347562 -69.6433149707726074 155.7875386888504181
500 7.5396006110822782 -10037.5010433784900670 -10064.8363209936269413 27.3352776151361780 -10031.4417172103858320 -33.3946037832416351 26.2980262321774489 -59.6926300154146787 155.6106774503813881
600 9.2617433650884777 -10037.4817772372534819 -10064.1925798287848011 26.7108025915320830 -10031.4376178099319077 -32.7549620188514226 18.5745873777100208 -51.3295493965524017 152.0557480715018528
700 10.7484918619738892 -10037.4834430268347205 -10064.1291975032127084 26.6457544763787268 -10030.8722888097836403 -33.2569086934306739 25.2322818106757047 -58.4891905041008613 151.6854507067412499
800 12.2509897360578179 -10037.5047888097869873 -10064.8671187129039026 27.3623299031166667 -10031.9815058608728577 -32.8856128520297801 36.5236695083899718 -69.4092823604150908 155.7646771616151966
900 13.7584852169966325 -10037.5068323939758557 -10065.3998155270637653 27.8929831330881477 -10032.1734374829648004 -33.2263780440982259 27.7314849391120788 -60.9578629832060841 158.7855101588031062
1000 15.2755981830414385 -10037.4811494880432292 -10064.0099109142211091 26.5287614261777058 -10031.3325267421205353 -32.6773841721017888 18.9005970229946634 -51.5779811950868776 151.0194480395985295
Loop time of 15.2757 on 4 procs for 1000 steps with 1360 atoms
Performance: 5.656 ns/day, 4.243 hours/ns, 65.464 timesteps/s
99.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 | 13.985 | 14.446 | 14.823 | 7.9 | 94.57
Bond | 0.00040979 | 0.00042456 | 0.00046059 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.43692 | 0.81428 | 1.2749 | 33.2 | 5.33
Output | 0.00028016 | 0.00037143 | 0.00063561 | 0.0 | 0.00
Modify | 0.0045586 | 0.0046468 | 0.0047903 | 0.1 | 0.03
Other | | 0.01041 | | | 0.07
Nlocal: 340 ave 340 max 340 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Nghost: 4628 ave 4628 max 4628 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
FullNghs: 259250 ave 259250 max 259250 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 1037000
Ave neighs/atom = 762.5
Ave special neighs/atom = 0
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:15

View File

@ -0,0 +1,107 @@
LAMMPS (7 Aug 2019)
# 3d Lennard-Jones melt
#
# This example requires that the example models provided with
# the kim-api package are installed. see the ./lib/kim/README or
# ./lib/kim/Install.py files for details on how to install these
# example models.
#
variable x index 1
variable y index 1
variable z index 1
variable xx equal 20*$x
variable xx equal 20*1
variable yy equal 20*$y
variable yy equal 20*1
variable zz equal 20*$z
variable zz equal 20*1
kim_init LennardJones_Ar real
#=== BEGIN kim-init ==========================================
units real
#=== END kim-init ============================================
lattice fcc 4.4300
Lattice spacing in x,y,z = 4.43 4.43 4.43
region box block 0 ${xx} 0 ${yy} 0 ${zz}
region box block 0 20 0 ${yy} 0 ${zz}
region box block 0 20 0 20 0 ${zz}
region box block 0 20 0 20 0 20
create_box 1 box
Created orthogonal box = (0 0 0) to (88.6 88.6 88.6)
1 by 1 by 1 MPI processor grid
create_atoms 1 box
Created 32000 atoms
create_atoms CPU = 0.004321 secs
kim_interactions Ar
#=== BEGIN kim_interactions ==================================
pair_style kim LennardJones_Ar
WARNING: KIM Model does not provide `partialParticleEnergy'; energy per atom will be zero (../pair_kim.cpp:974)
WARNING: KIM Model does not provide `partialParticleVirial'; virial per atom will be zero (../pair_kim.cpp:979)
pair_coeff * * Ar
#=== END kim_interactions ====================================
mass 1 39.95
velocity all create 200.0 232345 loop geom
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
fix 1 all nve
#fix 1 all npt temp 1.0 1.0 1.0 iso 1.0 1.0 3.0
run 100
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 8.45
ghost atom cutoff = 8.45
binsize = 4.225, bins = 21 21 21
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair kim, perpetual
attributes: full, newton off, cut 8.45
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Setting up Verlet run ...
Unit style : real
Current step : 0
Time step : 1
Per MPI rank memory allocation (min/avg/max) = 28.12 | 28.12 | 28.12 Mbytes
Step Temp E_pair E_mol TotEng Press
0 200 145069.63 0 164146.22 128015.94
100 95.179703 154939.42 0 164017.94 131602.75
Loop time of 3.48256 on 1 procs for 100 steps with 32000 atoms
Performance: 2.481 ns/day, 9.674 hours/ns, 28.715 timesteps/s
98.3% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 3.0502 | 3.0502 | 3.0502 | 0.0 | 87.59
Neigh | 0.3646 | 0.3646 | 0.3646 | 0.0 | 10.47
Comm | 0.01783 | 0.01783 | 0.01783 | 0.0 | 0.51
Output | 6.8e-05 | 6.8e-05 | 6.8e-05 | 0.0 | 0.00
Modify | 0.034349 | 0.034349 | 0.034349 | 0.0 | 0.99
Other | | 0.01547 | | | 0.44
Nlocal: 32000 ave 32000 max 32000 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 19911 ave 19911 max 19911 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 4.25375e+06 ave 4.25375e+06 max 4.25375e+06 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 4253750
Ave neighs/atom = 132.93
Neighbor list builds = 3
Dangerous builds = 0
Total wall time: 0:00:03

View File

@ -0,0 +1,113 @@
LAMMPS (7 Aug 2019)
# 3d Lennard-Jones melt
#
# This example requires that the example models provided with
# the kim-api package are installed. see the ./lib/kim/README or
# ./lib/kim/Install.py files for details on how to install these
# example models.
#
variable x index 1
variable y index 1
variable z index 1
variable xx equal 20*$x
variable xx equal 20*1
variable yy equal 20*$y
variable yy equal 20*1
variable zz equal 20*$z
variable zz equal 20*1
kim_init LennardJones_Ar real
#=== BEGIN kim-init ==========================================
units real
#=== END kim-init ============================================
lattice fcc 4.4300
Lattice spacing in x,y,z = 4.43 4.43 4.43
region box block 0 ${xx} 0 ${yy} 0 ${zz}
region box block 0 20 0 ${yy} 0 ${zz}
region box block 0 20 0 20 0 ${zz}
region box block 0 20 0 20 0 20
create_box 1 box
Created orthogonal box = (0 0 0) to (88.6 88.6 88.6)
1 by 2 by 2 MPI processor grid
create_atoms 1 box
Created 32000 atoms
create_atoms CPU = 0.000989 secs
kim_interactions Ar
#=== BEGIN kim_interactions ==================================
pair_style kim LennardJones_Ar
WARNING: KIM Model does not provide `partialParticleEnergy'; energy per atom will be zero (../pair_kim.cpp:974)
WARNING: KIM Model does not provide `partialParticleVirial'; virial per atom will be zero (../pair_kim.cpp:979)
pair_coeff * * Ar
WARNING: KIM Model does not provide `partialParticleEnergy'; energy per atom will be zero (../pair_kim.cpp:974)
WARNING: KIM Model does not provide `partialParticleVirial'; virial per atom will be zero (../pair_kim.cpp:979)
#=== END kim_interactions ====================================
mass 1 39.95
velocity all create 200.0 232345 loop geom
WARNING: KIM Model does not provide `partialParticleEnergy'; energy per atom will be zero (../pair_kim.cpp:974)
WARNING: KIM Model does not provide `partialParticleVirial'; virial per atom will be zero (../pair_kim.cpp:979)
WARNING: KIM Model does not provide `partialParticleEnergy'; energy per atom will be zero (../pair_kim.cpp:974)
WARNING: KIM Model does not provide `partialParticleVirial'; virial per atom will be zero (../pair_kim.cpp:979)
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
fix 1 all nve
#fix 1 all npt temp 1.0 1.0 1.0 iso 1.0 1.0 3.0
run 100
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 8.45
ghost atom cutoff = 8.45
binsize = 4.225, bins = 21 21 21
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair kim, perpetual
attributes: full, newton off, cut 8.45
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Setting up Verlet run ...
Unit style : real
Current step : 0
Time step : 1
Per MPI rank memory allocation (min/avg/max) = 9.791 | 9.791 | 9.791 Mbytes
Step Temp E_pair E_mol TotEng Press
0 200 145069.63 0 164146.22 128015.94
100 95.179703 154939.42 0 164017.94 131602.75
Loop time of 0.924494 on 4 procs for 100 steps with 32000 atoms
Performance: 9.346 ns/day, 2.568 hours/ns, 108.167 timesteps/s
99.6% 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.76434 | 0.76847 | 0.77207 | 0.3 | 83.12
Neigh | 0.09089 | 0.094446 | 0.099911 | 1.1 | 10.22
Comm | 0.038599 | 0.044759 | 0.051381 | 2.1 | 4.84
Output | 3.5e-05 | 4e-05 | 4.9e-05 | 0.0 | 0.00
Modify | 0.009396 | 0.009685 | 0.009941 | 0.2 | 1.05
Other | | 0.00709 | | | 0.77
Nlocal: 8000 ave 8018 max 7967 min
Histogram: 1 0 0 0 0 0 1 0 0 2
Nghost: 9131 ave 9164 max 9113 min
Histogram: 2 0 0 1 0 0 0 0 0 1
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
FullNghs: 1.06344e+06 ave 1.06594e+06 max 1.05881e+06 min
Histogram: 1 0 0 0 0 0 1 0 0 2
Total # of neighbors = 4253750
Ave neighs/atom = 132.93
Neighbor list builds = 3
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -0,0 +1,124 @@
LAMMPS (7 Aug 2019)
# 3d Lennard-Jones melt
#
# This example requires that the KIM Portable Model (PM)
# SW_StillingerWeber_1985_Si__MO_405512056662_005
# is installed. This can be done with the command
# kim-api-collections-management install user SW_StillingerWeber_1985_Si__MO_405512056662_005
# If this command does not work, you may need to setup your PATH to find the utility.
# If you installed the kim-api using the LAMMPS CMake build, you can do the following
# (where the current working directory is assumed to be the LAMMPS build directory)
# source ./kim_build-prefix/bin/kim-api-activate
# If you installed the kim-api using the LAMMPS Make build, you can do the following
# (where the current working directory is assumed to be the LAMMPS src directory)
# source ../lib/kim/installed-kim-api-X.Y.Z/bin/kim-api-activate
# (where you should relplace X.Y.Z with the appropriate kim-api version number).
#
# Or, see https://openkim.org/doc/obtaining-models for alternative options.
#
variable x index 1
variable y index 1
variable z index 1
variable xx equal 20*$x
variable xx equal 20*1
variable yy equal 20*$y
variable yy equal 20*1
variable zz equal 20*$z
variable zz equal 20*1
kim_init SW_StillingerWeber_1985_Si__MO_405512056662_005 real
#=== BEGIN kim-init ==========================================
units real
#=== END kim-init ============================================
kim_query a0 get_lattice_constant_cubic crystal=["fcc"] species=["Si"] units=["angstrom"]
#=== BEGIN kim-query =========================================
variable a0 string 4.146581932902336
#=== END kim-query ===========================================
lattice fcc ${a0}
lattice fcc 4.146581932902336
Lattice spacing in x,y,z = 4.14658 4.14658 4.14658
region box block 0 ${xx} 0 ${yy} 0 ${zz}
region box block 0 20 0 ${yy} 0 ${zz}
region box block 0 20 0 20 0 ${zz}
region box block 0 20 0 20 0 20
create_box 1 box
Created orthogonal box = (0 0 0) to (82.9316 82.9316 82.9316)
1 by 1 by 1 MPI processor grid
create_atoms 1 box
Created 32000 atoms
create_atoms CPU = 0.005415 secs
kim_interactions Si
#=== BEGIN kim_interactions ==================================
pair_style kim SW_StillingerWeber_1985_Si__MO_405512056662_005
pair_coeff * * Si
#=== END kim_interactions ====================================
mass 1 39.95
velocity all create 200.0 232345 loop geom
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
fix 1 all nve
#fix 1 all npt temp 1.0 1.0 1.0 iso 1.0 1.0 3.0
run 100
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 4.07118
ghost atom cutoff = 4.07118
binsize = 2.03559, bins = 41 41 41
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair kim, perpetual
attributes: full, newton off, cut 4.07118
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Setting up Verlet run ...
Unit style : real
Current step : 0
Time step : 1
Per MPI rank memory allocation (min/avg/max) = 10.36 | 10.36 | 10.36 Mbytes
Step Temp E_pair E_mol TotEng Press
0 200 -126084.25 0 -107007.66 1528.8768
100 94.450495 -116016.03 0 -107007.07 2282.2685
Loop time of 74.6055 on 1 procs for 100 steps with 32000 atoms
Performance: 0.116 ns/day, 207.238 hours/ns, 1.340 timesteps/s
98.6% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 74.446 | 74.446 | 74.446 | 0.0 | 99.79
Neigh | 0.096611 | 0.096611 | 0.096611 | 0.0 | 0.13
Comm | 0.014594 | 0.014594 | 0.014594 | 0.0 | 0.02
Output | 7.9e-05 | 7.9e-05 | 7.9e-05 | 0.0 | 0.00
Modify | 0.03454 | 0.03454 | 0.03454 | 0.0 | 0.05
Other | | 0.01396 | | | 0.02
Nlocal: 32000 ave 32000 max 32000 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 9667 ave 9667 max 9667 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 450192 ave 450192 max 450192 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 450192
Ave neighs/atom = 14.0685
Neighbor list builds = 3
Dangerous builds = 0
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:01:16

View File

@ -0,0 +1,124 @@
LAMMPS (7 Aug 2019)
# 3d Lennard-Jones melt
#
# This example requires that the KIM Portable Model (PM)
# SW_StillingerWeber_1985_Si__MO_405512056662_005
# is installed. This can be done with the command
# kim-api-collections-management install user SW_StillingerWeber_1985_Si__MO_405512056662_005
# If this command does not work, you may need to setup your PATH to find the utility.
# If you installed the kim-api using the LAMMPS CMake build, you can do the following
# (where the current working directory is assumed to be the LAMMPS build directory)
# source ./kim_build-prefix/bin/kim-api-activate
# If you installed the kim-api using the LAMMPS Make build, you can do the following
# (where the current working directory is assumed to be the LAMMPS src directory)
# source ../lib/kim/installed-kim-api-X.Y.Z/bin/kim-api-activate
# (where you should relplace X.Y.Z with the appropriate kim-api version number).
#
# Or, see https://openkim.org/doc/obtaining-models for alternative options.
#
variable x index 1
variable y index 1
variable z index 1
variable xx equal 20*$x
variable xx equal 20*1
variable yy equal 20*$y
variable yy equal 20*1
variable zz equal 20*$z
variable zz equal 20*1
kim_init SW_StillingerWeber_1985_Si__MO_405512056662_005 real
#=== BEGIN kim-init ==========================================
units real
#=== END kim-init ============================================
kim_query a0 get_lattice_constant_cubic crystal=["fcc"] species=["Si"] units=["angstrom"]
#=== BEGIN kim-query =========================================
variable a0 string 4.146581932902336
#=== END kim-query ===========================================
lattice fcc ${a0}
lattice fcc 4.146581932902336
Lattice spacing in x,y,z = 4.14658 4.14658 4.14658
region box block 0 ${xx} 0 ${yy} 0 ${zz}
region box block 0 20 0 ${yy} 0 ${zz}
region box block 0 20 0 20 0 ${zz}
region box block 0 20 0 20 0 20
create_box 1 box
Created orthogonal box = (0 0 0) to (82.9316 82.9316 82.9316)
1 by 2 by 2 MPI processor grid
create_atoms 1 box
Created 32000 atoms
create_atoms CPU = 0.000946 secs
kim_interactions Si
#=== BEGIN kim_interactions ==================================
pair_style kim SW_StillingerWeber_1985_Si__MO_405512056662_005
pair_coeff * * Si
#=== END kim_interactions ====================================
mass 1 39.95
velocity all create 200.0 232345 loop geom
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
fix 1 all nve
#fix 1 all npt temp 1.0 1.0 1.0 iso 1.0 1.0 3.0
run 100
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 4.07118
ghost atom cutoff = 4.07118
binsize = 2.03559, bins = 41 41 41
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair kim, perpetual
attributes: full, newton off, cut 4.07118
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Setting up Verlet run ...
Unit style : real
Current step : 0
Time step : 1
Per MPI rank memory allocation (min/avg/max) = 3.489 | 3.489 | 3.489 Mbytes
Step Temp E_pair E_mol TotEng Press
0 200 -126084.25 0 -107007.66 1528.8768
100 94.450495 -116016.03 0 -107007.07 2282.2685
Loop time of 19.0792 on 4 procs for 100 steps with 32000 atoms
Performance: 0.453 ns/day, 52.998 hours/ns, 5.241 timesteps/s
99.4% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 18.78 | 18.855 | 18.937 | 1.5 | 98.83
Neigh | 0.026047 | 0.026274 | 0.0266 | 0.1 | 0.14
Comm | 0.09039 | 0.17196 | 0.24675 | 15.9 | 0.90
Output | 3.9e-05 | 4.975e-05 | 6.1e-05 | 0.0 | 0.00
Modify | 0.015667 | 0.015819 | 0.016008 | 0.1 | 0.08
Other | | 0.01008 | | | 0.05
Nlocal: 8000 ave 8029 max 7968 min
Histogram: 1 1 0 0 0 0 0 0 0 2
Nghost: 4259 ave 4303 max 4202 min
Histogram: 1 0 0 0 0 0 2 0 0 1
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
FullNghs: 112548 ave 113091 max 111995 min
Histogram: 1 0 0 1 0 0 0 1 0 1
Total # of neighbors = 450192
Ave neighs/atom = 14.0685
Neighbor list builds = 3
Dangerous builds = 0
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:20

View File

@ -0,0 +1,118 @@
LAMMPS (7 Aug 2019)
# 3d Lennard-Jones melt
#
# This example requires that the KIM Portable Model (PM)
# SW_StillingerWeber_1985_Si__MO_405512056662_005
# is installed. This can be done with the command
# kim-api-collections-management install user SW_StillingerWeber_1985_Si__MO_405512056662_005
# If this command does not work, you may need to setup your PATH to find the utility.
# If you installed the kim-api using the LAMMPS CMake build, you can do the following
# (where the current working directory is assumed to be the LAMMPS build directory)
# source ./kim_build-prefix/bin/kim-api-activate
# If you installed the kim-api using the LAMMPS Make build, you can do the following
# (where the current working directory is assumed to be the LAMMPS src directory)
# source ../lib/kim/installed-kim-api-X.Y.Z/bin/kim-api-activate
# (where you should relplace X.Y.Z with the appropriate kim-api version number).
#
# Or, see https://openkim.org/doc/obtaining-models for alternative options.
#
variable x index 1
variable y index 1
variable z index 1
variable xx equal 20*$x
variable xx equal 20*1
variable yy equal 20*$y
variable yy equal 20*1
variable zz equal 20*$z
variable zz equal 20*1
kim_init SW_StillingerWeber_1985_Si__MO_405512056662_005 real
#=== BEGIN kim-init ==========================================
units real
#=== END kim-init ============================================
lattice fcc 4.4300
Lattice spacing in x,y,z = 4.43 4.43 4.43
region box block 0 ${xx} 0 ${yy} 0 ${zz}
region box block 0 20 0 ${yy} 0 ${zz}
region box block 0 20 0 20 0 ${zz}
region box block 0 20 0 20 0 20
create_box 1 box
Created orthogonal box = (0 0 0) to (88.6 88.6 88.6)
1 by 1 by 1 MPI processor grid
create_atoms 1 box
Created 32000 atoms
create_atoms CPU = 0.003591 secs
kim_interactions Si
#=== BEGIN kim_interactions ==================================
pair_style kim SW_StillingerWeber_1985_Si__MO_405512056662_005
pair_coeff * * Si
#=== END kim_interactions ====================================
mass 1 39.95
velocity all create 200.0 232345 loop geom
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
fix 1 all nve
#fix 1 all npt temp 1.0 1.0 1.0 iso 1.0 1.0 3.0
run 100
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 4.07118
ghost atom cutoff = 4.07118
binsize = 2.03559, bins = 44 44 44
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair kim, perpetual
attributes: full, newton off, cut 4.07118
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Setting up Verlet run ...
Unit style : real
Current step : 0
Time step : 1
Per MPI rank memory allocation (min/avg/max) = 10.44 | 10.44 | 10.44 Mbytes
Step Temp E_pair E_mol TotEng Press
0 200 -85249.847 0 -66173.259 -33302.387
100 253.43357 -90346.68 0 -66173.441 -14888.698
Loop time of 74.248 on 1 procs for 100 steps with 32000 atoms
Performance: 0.116 ns/day, 206.244 hours/ns, 1.347 timesteps/s
98.8% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 74.118 | 74.118 | 74.118 | 0.0 | 99.83
Neigh | 0.069623 | 0.069623 | 0.069623 | 0.0 | 0.09
Comm | 0.0137 | 0.0137 | 0.0137 | 0.0 | 0.02
Output | 7.6e-05 | 7.6e-05 | 7.6e-05 | 0.0 | 0.00
Modify | 0.031883 | 0.031883 | 0.031883 | 0.0 | 0.04
Other | | 0.01433 | | | 0.02
Nlocal: 32000 ave 32000 max 32000 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 7760 ave 7760 max 7760 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 402352 ave 402352 max 402352 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 402352
Ave neighs/atom = 12.5735
Neighbor list builds = 4
Dangerous builds = 0
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:01:14

View File

@ -0,0 +1,118 @@
LAMMPS (7 Aug 2019)
# 3d Lennard-Jones melt
#
# This example requires that the KIM Portable Model (PM)
# SW_StillingerWeber_1985_Si__MO_405512056662_005
# is installed. This can be done with the command
# kim-api-collections-management install user SW_StillingerWeber_1985_Si__MO_405512056662_005
# If this command does not work, you may need to setup your PATH to find the utility.
# If you installed the kim-api using the LAMMPS CMake build, you can do the following
# (where the current working directory is assumed to be the LAMMPS build directory)
# source ./kim_build-prefix/bin/kim-api-activate
# If you installed the kim-api using the LAMMPS Make build, you can do the following
# (where the current working directory is assumed to be the LAMMPS src directory)
# source ../lib/kim/installed-kim-api-X.Y.Z/bin/kim-api-activate
# (where you should relplace X.Y.Z with the appropriate kim-api version number).
#
# Or, see https://openkim.org/doc/obtaining-models for alternative options.
#
variable x index 1
variable y index 1
variable z index 1
variable xx equal 20*$x
variable xx equal 20*1
variable yy equal 20*$y
variable yy equal 20*1
variable zz equal 20*$z
variable zz equal 20*1
kim_init SW_StillingerWeber_1985_Si__MO_405512056662_005 real
#=== BEGIN kim-init ==========================================
units real
#=== END kim-init ============================================
lattice fcc 4.4300
Lattice spacing in x,y,z = 4.43 4.43 4.43
region box block 0 ${xx} 0 ${yy} 0 ${zz}
region box block 0 20 0 ${yy} 0 ${zz}
region box block 0 20 0 20 0 ${zz}
region box block 0 20 0 20 0 20
create_box 1 box
Created orthogonal box = (0 0 0) to (88.6 88.6 88.6)
1 by 2 by 2 MPI processor grid
create_atoms 1 box
Created 32000 atoms
create_atoms CPU = 0.000997 secs
kim_interactions Si
#=== BEGIN kim_interactions ==================================
pair_style kim SW_StillingerWeber_1985_Si__MO_405512056662_005
pair_coeff * * Si
#=== END kim_interactions ====================================
mass 1 39.95
velocity all create 200.0 232345 loop geom
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
fix 1 all nve
#fix 1 all npt temp 1.0 1.0 1.0 iso 1.0 1.0 3.0
run 100
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 4.07118
ghost atom cutoff = 4.07118
binsize = 2.03559, bins = 44 44 44
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair kim, perpetual
attributes: full, newton off, cut 4.07118
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Setting up Verlet run ...
Unit style : real
Current step : 0
Time step : 1
Per MPI rank memory allocation (min/avg/max) = 3.517 | 3.517 | 3.517 Mbytes
Step Temp E_pair E_mol TotEng Press
0 200 -85249.847 0 -66173.259 -33302.387
100 253.43357 -90346.68 0 -66173.441 -14888.698
Loop time of 19.0287 on 4 procs for 100 steps with 32000 atoms
Performance: 0.454 ns/day, 52.857 hours/ns, 5.255 timesteps/s
99.1% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 18.81 | 18.838 | 18.883 | 0.6 | 99.00
Neigh | 0.018598 | 0.01914 | 0.020732 | 0.7 | 0.10
Comm | 0.10341 | 0.1475 | 0.17393 | 7.1 | 0.78
Output | 6e-05 | 6.225e-05 | 6.7e-05 | 0.0 | 0.00
Modify | 0.014839 | 0.014925 | 0.015047 | 0.1 | 0.08
Other | | 0.008997 | | | 0.05
Nlocal: 8000 ave 8014 max 7988 min
Histogram: 1 1 0 0 0 0 1 0 0 1
Nghost: 3374.75 ave 3389 max 3361 min
Histogram: 1 0 1 0 0 0 0 1 0 1
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
FullNghs: 100588 ave 100856 max 100392 min
Histogram: 1 0 1 0 1 0 0 0 0 1
Total # of neighbors = 402352
Ave neighs/atom = 12.5735
Neighbor list builds = 4
Dangerous builds = 0
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:19

View File

@ -0,0 +1,71 @@
LAMMPS (7 Aug 2019)
# 3d Lennard-Jones melt
#
# This example requires that the KIM Simulator Model (PM)
# Sim_LAMMPS_ReaxFF_StrachanVanDuinChakraborty_2003_CHNO__SM_107643900657_000
# is installed. This can be done with the command
# kim-api-collections-management install user Sim_LAMMPS_ReaxFF_StrachanVanDuinChakraborty_2003_CHNO__SM_107643900657_000
# If this command does not work, you may need to setup your PATH to find the utility.
# If you installed the kim-api using the LAMMPS CMake build, you can do the following
# (where the current working directory is assumed to be the LAMMPS build directory)
# source ./kim_build-prefix/bin/kim-api-activate
# If you installed the kim-api using the LAMMPS Make build, you can do the following
# (where the current working directory is assumed to be the LAMMPS src directory)
# source ../lib/kim/installed-kim-api-X.Y.Z/bin/kim-api-activate
# (where you should relplace X.Y.Z with the appropriate kim-api version number).
#
# See https://openkim.org/doc/obtaining-models for alternative options.
#
variable x index 1
variable y index 1
variable z index 1
variable xx equal 20*$x
variable xx equal 20*1
variable yy equal 20*$y
variable yy equal 20*1
variable zz equal 20*$z
variable zz equal 20*1
kim_init Sim_LAMMPS_ReaxFF_StrachanVanDuinChakraborty_2003_CHNO__SM_107643900657_000 real
#=== BEGIN kim-init ==========================================
# Using KIM Simulator Model : Sim_LAMMPS_ReaxFF_StrachanVanDuinChakraborty_2003_CHNO__SM_107643900657_000
# For Simulator : LAMMPS 28 Feb 2019
# Running on : LAMMPS 7 Aug 2019
#
units real
atom_style charge
neigh_modify one 4000
#=== END kim-init ============================================
lattice fcc 4.4300
Lattice spacing in x,y,z = 4.43 4.43 4.43
region box block 0 ${xx} 0 ${yy} 0 ${zz}
region box block 0 20 0 ${yy} 0 ${zz}
region box block 0 20 0 20 0 ${zz}
region box block 0 20 0 20 0 20
create_box 1 box
Created orthogonal box = (0 0 0) to (88.6 88.6 88.6)
1 by 1 by 1 MPI processor grid
create_atoms 1 box
Created 32000 atoms
create_atoms CPU = 0.003447 secs
kim_interactions O
#=== BEGIN kim_interactions ==================================
pair_style reax/c /var/tmp/kim-simulator-model-parameter-file-directory-6Acs1QDbXgBx/lmp_control safezone 2.0 mincap 100
ERROR: Unrecognized pair style 'reax/c' is part of the USER-REAXC package which is not enabled in this LAMMPS binary. (../force.cpp:262)
Last command: pair_style reax/c /var/tmp/kim-simulator-model-parameter-file-directory-6Acs1QDbXgBx/lmp_control safezone 2.0 mincap 100
--------------------------------------------------------------------------
Primary job terminated normally, but 1 process returned
a non-zero exit code. Per user-direction, the job has been aborted.
--------------------------------------------------------------------------
--------------------------------------------------------------------------
mpirun detected that one or more processes exited with non-zero status, thus causing
the job to be terminated. The first process to do so was:
Process name: [[33054,1],0]
Exit code: 1
--------------------------------------------------------------------------

View File

@ -0,0 +1,60 @@
LAMMPS (7 Aug 2019)
# 3d Lennard-Jones melt
#
# This example requires that the KIM Simulator Model (PM)
# Sim_LAMMPS_ReaxFF_StrachanVanDuinChakraborty_2003_CHNO__SM_107643900657_000
# is installed. This can be done with the command
# kim-api-collections-management install user Sim_LAMMPS_ReaxFF_StrachanVanDuinChakraborty_2003_CHNO__SM_107643900657_000
# If this command does not work, you may need to setup your PATH to find the utility.
# If you installed the kim-api using the LAMMPS CMake build, you can do the following
# (where the current working directory is assumed to be the LAMMPS build directory)
# source ./kim_build-prefix/bin/kim-api-activate
# If you installed the kim-api using the LAMMPS Make build, you can do the following
# (where the current working directory is assumed to be the LAMMPS src directory)
# source ../lib/kim/installed-kim-api-X.Y.Z/bin/kim-api-activate
# (where you should relplace X.Y.Z with the appropriate kim-api version number).
#
# See https://openkim.org/doc/obtaining-models for alternative options.
#
variable x index 1
variable y index 1
variable z index 1
variable xx equal 20*$x
variable xx equal 20*1
variable yy equal 20*$y
variable yy equal 20*1
variable zz equal 20*$z
variable zz equal 20*1
kim_init Sim_LAMMPS_ReaxFF_StrachanVanDuinChakraborty_2003_CHNO__SM_107643900657_000 real
#=== BEGIN kim-init ==========================================
# Using KIM Simulator Model : Sim_LAMMPS_ReaxFF_StrachanVanDuinChakraborty_2003_CHNO__SM_107643900657_000
# For Simulator : LAMMPS 28 Feb 2019
# Running on : LAMMPS 7 Aug 2019
#
units real
atom_style charge
neigh_modify one 4000
#=== END kim-init ============================================
lattice fcc 4.4300
Lattice spacing in x,y,z = 4.43 4.43 4.43
region box block 0 ${xx} 0 ${yy} 0 ${zz}
region box block 0 20 0 ${yy} 0 ${zz}
region box block 0 20 0 20 0 ${zz}
region box block 0 20 0 20 0 20
create_box 1 box
Created orthogonal box = (0 0 0) to (88.6 88.6 88.6)
1 by 2 by 2 MPI processor grid
create_atoms 1 box
Created 32000 atoms
create_atoms CPU = 0.001307 secs
kim_interactions O
#=== BEGIN kim_interactions ==================================
pair_style reax/c /var/tmp/kim-simulator-model-parameter-file-directory-6tmKtZEXzhgv/lmp_control safezone 2.0 mincap 100
ERROR: Unrecognized pair style 'reax/c' is part of the USER-REAXC package which is not enabled in this LAMMPS binary. (../force.cpp:262)
Last command: pair_style reax/c /var/tmp/kim-simulator-model-parameter-file-directory-6tmKtZEXzhgv/lmp_control safezone 2.0 mincap 100

View File

@ -0,0 +1,92 @@
LAMMPS (7 Aug 2019)
# 3d Lennard-Jones melt
variable x index 1
variable y index 1
variable z index 1
variable xx equal 20*$x
variable xx equal 20*1
variable yy equal 20*$y
variable yy equal 20*1
variable zz equal 20*$z
variable zz equal 20*1
units real
lattice fcc 4.4300
Lattice spacing in x,y,z = 4.43 4.43 4.43
region box block 0 ${xx} 0 ${yy} 0 ${zz}
region box block 0 20 0 ${yy} 0 ${zz}
region box block 0 20 0 20 0 ${zz}
region box block 0 20 0 20 0 20
create_box 1 box
Created orthogonal box = (0 0 0) to (88.6 88.6 88.6)
1 by 1 by 1 MPI processor grid
create_atoms 1 box
Created 32000 atoms
create_atoms CPU = 0.003037 secs
pair_style lj/cut 8.1500
pair_coeff 1 1 0.0104 3.4000
#pair_style kim LennardJones_Ar
#pair_coeff * * Ar
mass 1 39.95
velocity all create 200.0 232345 loop geom
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
fix 1 all nve
#fix 1 all npt temp 1.0 1.0 1.0 iso 1.0 1.0 3.0
run 100
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 8.45
ghost atom cutoff = 8.45
binsize = 4.225, bins = 21 21 21
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d/newton
bin: standard
Setting up Verlet run ...
Unit style : real
Current step : 0
Time step : 1
Per MPI rank memory allocation (min/avg/max) = 19.23 | 19.23 | 19.23 Mbytes
Step Temp E_pair E_mol TotEng Press
0 200 6290.8194 0 25367.408 6750.7421
100 98.747096 15900.676 0 25319.465 10184.453
Loop time of 2.43768 on 1 procs for 100 steps with 32000 atoms
Performance: 3.544 ns/day, 6.771 hours/ns, 41.023 timesteps/s
97.8% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 2.1895 | 2.1895 | 2.1895 | 0.0 | 89.82
Neigh | 0.17546 | 0.17546 | 0.17546 | 0.0 | 7.20
Comm | 0.021001 | 0.021001 | 0.021001 | 0.0 | 0.86
Output | 7.9e-05 | 7.9e-05 | 7.9e-05 | 0.0 | 0.00
Modify | 0.034253 | 0.034253 | 0.034253 | 0.0 | 1.41
Other | | 0.01735 | | | 0.71
Nlocal: 32000 ave 32000 max 32000 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 19911 ave 19911 max 19911 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 1.96027e+06 ave 1.96027e+06 max 1.96027e+06 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 1960266
Ave neighs/atom = 61.2583
Neighbor list builds = 3
Dangerous builds = 0
Total wall time: 0:00:02

View File

@ -0,0 +1,92 @@
LAMMPS (7 Aug 2019)
# 3d Lennard-Jones melt
variable x index 1
variable y index 1
variable z index 1
variable xx equal 20*$x
variable xx equal 20*1
variable yy equal 20*$y
variable yy equal 20*1
variable zz equal 20*$z
variable zz equal 20*1
units real
lattice fcc 4.4300
Lattice spacing in x,y,z = 4.43 4.43 4.43
region box block 0 ${xx} 0 ${yy} 0 ${zz}
region box block 0 20 0 ${yy} 0 ${zz}
region box block 0 20 0 20 0 ${zz}
region box block 0 20 0 20 0 20
create_box 1 box
Created orthogonal box = (0 0 0) to (88.6 88.6 88.6)
1 by 2 by 2 MPI processor grid
create_atoms 1 box
Created 32000 atoms
create_atoms CPU = 0.001194 secs
pair_style lj/cut 8.1500
pair_coeff 1 1 0.0104 3.4000
#pair_style kim LennardJones_Ar
#pair_coeff * * Ar
mass 1 39.95
velocity all create 200.0 232345 loop geom
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
fix 1 all nve
#fix 1 all npt temp 1.0 1.0 1.0 iso 1.0 1.0 3.0
run 100
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 8.45
ghost atom cutoff = 8.45
binsize = 4.225, bins = 21 21 21
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d/newton
bin: standard
Setting up Verlet run ...
Unit style : real
Current step : 0
Time step : 1
Per MPI rank memory allocation (min/avg/max) = 7.633 | 7.633 | 7.633 Mbytes
Step Temp E_pair E_mol TotEng Press
0 200 6290.8194 0 25367.408 6750.7421
100 98.747096 15900.676 0 25319.465 10184.453
Loop time of 0.726239 on 4 procs for 100 steps with 32000 atoms
Performance: 11.897 ns/day, 2.017 hours/ns, 137.696 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.57617 | 0.5835 | 0.59084 | 0.9 | 80.34
Neigh | 0.046682 | 0.047783 | 0.048641 | 0.3 | 6.58
Comm | 0.065469 | 0.071509 | 0.07899 | 2.3 | 9.85
Output | 3.9e-05 | 4.6e-05 | 6.1e-05 | 0.0 | 0.01
Modify | 0.013205 | 0.01363 | 0.014044 | 0.3 | 1.88
Other | | 0.009775 | | | 1.35
Nlocal: 8000 ave 8012 max 7989 min
Histogram: 1 0 0 0 2 0 0 0 0 1
Nghost: 9131 ave 9142 max 9119 min
Histogram: 1 0 0 0 0 2 0 0 0 1
Neighs: 490066 ave 491443 max 489273 min
Histogram: 2 0 0 0 1 0 0 0 0 1
Total # of neighbors = 1960266
Ave neighs/atom = 61.2583
Neighbor list builds = 3
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -34,6 +34,7 @@ COLVARS_SRCS = \
colvarcomp_coordnums.cpp \
colvarcomp.cpp \
colvarcomp_distances.cpp \
colvarcomp_gpath.cpp \
colvarcomp_protein.cpp \
colvarcomp_rotations.cpp \
colvar.cpp \

View File

@ -791,6 +791,11 @@ int colvar::init_components(std::string const &conf)
"inertia", "inertia");
error_code |= init_components_type<inertia_z>(conf, "moment of inertia around an axis", "inertiaZ");
error_code |= init_components_type<eigenvector>(conf, "eigenvector", "eigenvector");
error_code |= init_components_type<gspath>(conf, "geometrical path collective variables (s)", "gspath");
error_code |= init_components_type<gzpath>(conf, "geometrical path collective variables (z)", "gzpath");
error_code |= init_components_type<linearCombination>(conf, "linear combination of other collective variables", "subColvar");
error_code |= init_components_type<gspathCV>(conf, "geometrical path collective variables (s) for other CVs", "gspathCV");
error_code |= init_components_type<gzpathCV>(conf, "geometrical path collective variables (z) for other CVs", "gzpathCV");
if (!cvcs.size() || (error_code != COLVARS_OK)) {
cvm::error("Error: no valid components were provided "
@ -1495,6 +1500,8 @@ int colvar::calc_colvar_properties()
// calculate the velocity by finite differences
if (cvm::step_relative() == 0) {
x_old = x;
v_fdiff.reset(); // Do not pretend we know anything about the actual velocity
// eg. upon restarting. That would require saving v_fdiff or x_old to the state file
} else {
v_fdiff = fdiff_velocity(x_old, x);
v_reported = v_fdiff;
@ -1516,8 +1523,9 @@ int colvar::calc_colvar_properties()
x_ext = prev_x_ext;
v_ext = prev_v_ext;
}
// report the restraint center as "value"
// These position and velocities come from integration at the _previous timestep_ in update_forces_energy()
// But we report values at the beginning of the timestep (value at t=0 on the first timestep)
x_reported = x_ext;
v_reported = v_ext;
// the "total force" with the extended Lagrangian is
@ -1651,8 +1659,6 @@ cvm::real colvar::update_forces_energy()
// is equal to the actual coordinate
x_ext = x;
}
// Report extended value
x_reported = x_ext;
}
// Now adding the force on the actual colvar (for those biases that
@ -1975,9 +1981,8 @@ std::istream & colvar::read_restart(std::istream &is)
}
if (is_enabled(f_cv_extended_Lagrangian)) {
if ( !(get_keyval(conf, "extended_x", x_ext,
colvarvalue(x.type()), colvarparse::parse_silent)) &&
colvarvalue(x.type()), colvarparse::parse_silent)) ||
!(get_keyval(conf, "extended_v", v_ext,
colvarvalue(x.type()), colvarparse::parse_silent)) ) {
cvm::log("Error: restart file does not contain "
@ -2079,11 +2084,11 @@ std::ostream & colvar::write_restart(std::ostream &os) {
os << " extended_x "
<< std::setprecision(cvm::cv_prec)
<< std::setw(cvm::cv_width)
<< x_ext << "\n"
<< x_reported << "\n"
<< " extended_v "
<< std::setprecision(cvm::cv_prec)
<< std::setw(cvm::cv_width)
<< v_ext << "\n";
<< v_reported << "\n";
}
os << "}\n\n";
@ -2150,7 +2155,6 @@ std::ostream & colvar::write_traj_label(std::ostream & os)
std::ostream & colvar::write_traj(std::ostream &os)
{
os << " ";
if (is_enabled(f_cv_output_value)) {
if (is_enabled(f_cv_extended_Lagrangian)) {

View File

@ -569,6 +569,14 @@ public:
class alpha_dihedrals;
class alpha_angles;
class dihedPC;
class componentDisabled;
class CartesianBasedPath;
class gspath;
class gzpath;
class linearCombination;
class CVBasedPath;
class gspathCV;
class gzpathCV;
// non-scalar components
class distance_vec;

View File

@ -0,0 +1,270 @@
#ifndef GEOMETRICPATHCV_H
#define GEOMETRICPATHCV_H
// This file is part of the Collective Variables module (Colvars).
// The original version of Colvars and its updates are located at:
// https://github.com/colvars/colvars
// Please update all Colvars source files before making any changes.
// If you wish to distribute your changes, please submit them to the
// Colvars repository at GitHub.
#include <vector>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <string>
#include <map>
namespace GeometricPathCV {
enum path_sz {S, Z};
template <typename element_type, typename scalar_type, path_sz path_type>
class GeometricPathBase {
private:
struct doCompareFrameDistance {
doCompareFrameDistance(const GeometricPathBase& obj): m_obj(obj) {}
const GeometricPathBase& m_obj;
bool operator()(const size_t& i1, const size_t& i2) {
return m_obj.frame_distances[i1] < m_obj.frame_distances[i2];
}
};
protected:
scalar_type v1v1;
scalar_type v2v2;
scalar_type v3v3;
scalar_type v4v4;
scalar_type v1v3;
scalar_type v1v4;
scalar_type f;
scalar_type dx;
scalar_type s;
scalar_type z;
scalar_type zz;
std::vector<element_type> v1;
std::vector<element_type> v2;
std::vector<element_type> v3;
std::vector<element_type> v4;
std::vector<element_type> dfdv1;
std::vector<element_type> dfdv2;
std::vector<element_type> dzdv1;
std::vector<element_type> dzdv2;
std::vector<scalar_type> frame_distances;
std::vector<size_t> frame_index;
bool use_second_closest_frame;
bool use_third_closest_frame;
bool use_z_square;
long min_frame_index_1;
long min_frame_index_2;
long min_frame_index_3;
long sign;
double M;
double m;
public:
GeometricPathBase(size_t vector_size, const element_type& element = element_type(), size_t total_frames = 1, bool p_use_second_closest_frame = true, bool p_use_third_closest_frame = false, bool p_use_z_square = false);
GeometricPathBase(size_t vector_size, const std::vector<element_type>& elements, size_t total_frames = 1, bool p_use_second_closest_frame = true, bool p_use_third_closest_frame = false, bool p_use_z_square = false);
GeometricPathBase() {}
virtual ~GeometricPathBase() {}
virtual void initialize(size_t vector_size, const element_type& element = element_type(), size_t total_frames = 1, bool p_use_second_closest_frame = true, bool p_use_third_closest_frame = false, bool p_use_z_square = false);
virtual void initialize(size_t vector_size, const std::vector<element_type>& elements, size_t total_frames = 1, bool p_use_second_closest_frame = true, bool p_use_third_closest_frame = false, bool p_use_z_square = false);
virtual void prepareVectors();
virtual void updateReferenceDistances();
virtual void compute();
virtual void determineClosestFrames();
virtual void computeValue();
virtual void computeDerivatives();
};
template <typename element_type, typename scalar_type, path_sz path_type>
GeometricPathBase<element_type, scalar_type, path_type>::GeometricPathBase(size_t vector_size, const element_type& element, size_t total_frames, bool p_use_second_closest_frame, bool p_use_third_closest_frame, bool p_use_z_square) {
initialize(vector_size, element, total_frames, p_use_second_closest_frame, p_use_third_closest_frame, p_use_z_square);
}
template <typename element_type, typename scalar_type, path_sz path_type>
GeometricPathBase<element_type, scalar_type, path_type>::GeometricPathBase(size_t vector_size, const std::vector<element_type>& elements, size_t total_frames, bool p_use_second_closest_frame, bool p_use_third_closest_frame, bool p_use_z_square) {
initialize(vector_size, elements, total_frames, p_use_second_closest_frame, p_use_third_closest_frame, p_use_z_square);
}
template <typename element_type, typename scalar_type, path_sz path_type>
void GeometricPathBase<element_type, scalar_type, path_type>::initialize(size_t vector_size, const element_type& element, size_t total_frames, bool p_use_second_closest_frame, bool p_use_third_closest_frame, bool p_use_z_square) {
v1v1 = scalar_type();
v2v2 = scalar_type();
v3v3 = scalar_type();
v4v4 = scalar_type();
v1v3 = scalar_type();
v1v4 = scalar_type();
f = scalar_type();
dx = scalar_type();
z = scalar_type();
zz = scalar_type();
sign = 0;
v1.resize(vector_size, element);
v2.resize(vector_size, element);
v3.resize(vector_size, element);
v4.resize(vector_size, element);
dfdv1.resize(vector_size, element);
dfdv2.resize(vector_size, element);
dzdv1.resize(vector_size, element);
dzdv2.resize(vector_size, element);
frame_distances.resize(total_frames);
frame_index.resize(total_frames);
for (size_t i_frame = 0; i_frame < frame_index.size(); ++i_frame) {
frame_index[i_frame] = i_frame;
}
use_second_closest_frame = p_use_second_closest_frame;
use_third_closest_frame = p_use_third_closest_frame;
use_z_square = p_use_z_square;
M = static_cast<scalar_type>(total_frames - 1);
m = static_cast<scalar_type>(1.0);
}
template <typename element_type, typename scalar_type, path_sz path_type>
void GeometricPathBase<element_type, scalar_type, path_type>::initialize(size_t vector_size, const std::vector<element_type>& elements, size_t total_frames, bool p_use_second_closest_frame, bool p_use_third_closest_frame, bool p_use_z_square) {
v1v1 = scalar_type();
v2v2 = scalar_type();
v3v3 = scalar_type();
v4v4 = scalar_type();
v1v3 = scalar_type();
v1v4 = scalar_type();
f = scalar_type();
dx = scalar_type();
z = scalar_type();
zz = scalar_type();
sign = 0;
v1 = elements;
v2 = elements;
v3 = elements;
v4 = elements;
dfdv1 = elements;
dfdv2 = elements;
dzdv1 = elements;
dzdv2 = elements;
frame_distances.resize(total_frames);
frame_index.resize(total_frames);
for (size_t i_frame = 0; i_frame < frame_index.size(); ++i_frame) {
frame_index[i_frame] = i_frame;
}
use_second_closest_frame = p_use_second_closest_frame;
use_third_closest_frame = p_use_third_closest_frame;
use_z_square = p_use_z_square;
M = static_cast<scalar_type>(total_frames - 1);
m = static_cast<scalar_type>(1.0);
}
template <typename element_type, typename scalar_type, path_sz path_type>
void GeometricPathBase<element_type, scalar_type, path_type>::prepareVectors() {
std::cout << "Warning: you should not call the prepareVectors() in base class!\n";
std::cout << std::flush;
}
template <typename element_type, typename scalar_type, path_sz path_type>
void GeometricPathBase<element_type, scalar_type, path_type>::updateReferenceDistances() {
std::cout << "Warning: you should not call the updateReferenceDistances() in base class!\n";
std::cout << std::flush;
}
template <typename element_type, typename scalar_type, path_sz path_type>
void GeometricPathBase<element_type, scalar_type, path_type>::compute() {
computeValue();
computeDerivatives();
}
template <typename element_type, typename scalar_type, path_sz path_type>
void GeometricPathBase<element_type, scalar_type, path_type>::determineClosestFrames() {
// Find the closest and the second closest frames
std::sort(frame_index.begin(), frame_index.end(), doCompareFrameDistance(*this));
// Determine the sign
sign = static_cast<long>(frame_index[0]) - static_cast<long>(frame_index[1]);
if (sign > 1) {
// sigma(z) is on the left side of the closest frame
sign = 1;
} else if (sign < -1) {
// sigma(z) is on the right side of the closest frame
sign = -1;
}
if (std::abs(static_cast<long>(frame_index[0]) - static_cast<long>(frame_index[1])) > 1) {
std::cout << "Warning: Geometrical pathCV relies on the assumption that the second closest frame is the neighbouring frame\n";
std::cout << " Please check your configuration or increase restraint on z(σ)\n";
for (size_t i_frame = 0; i_frame < frame_index.size(); ++i_frame) {
std::cout << "Frame index: " << frame_index[i_frame] << " ; optimal RMSD = " << frame_distances[frame_index[i_frame]] << "\n";
}
}
min_frame_index_1 = frame_index[0]; // s_m
min_frame_index_2 = use_second_closest_frame ? frame_index[1] : min_frame_index_1 - sign; // s_(m-1)
min_frame_index_3 = use_third_closest_frame ? frame_index[2] : min_frame_index_1 + sign; // s_(m+1)
m = static_cast<double>(frame_index[0]);
}
template <typename element_type, typename scalar_type, path_sz path_type>
void GeometricPathBase<element_type, scalar_type, path_type>::computeValue() {
updateReferenceDistances();
determineClosestFrames();
prepareVectors();
v1v1 = scalar_type();
v2v2 = scalar_type();
v3v3 = scalar_type();
v1v3 = scalar_type();
if (path_type == Z) {
v1v4 = scalar_type();
v4v4 = scalar_type();
}
for (size_t i_elem = 0; i_elem < v1.size(); ++i_elem) {
v1v1 += v1[i_elem] * v1[i_elem];
v2v2 += v2[i_elem] * v2[i_elem];
v3v3 += v3[i_elem] * v3[i_elem];
v1v3 += v1[i_elem] * v3[i_elem];
if (path_type == Z) {
v1v4 += v1[i_elem] * v4[i_elem];
v4v4 += v4[i_elem] * v4[i_elem];
}
}
f = (std::sqrt(v1v3 * v1v3 - v3v3 * (v1v1 - v2v2)) - v1v3) / v3v3;
if (path_type == Z) {
dx = 0.5 * (f - 1);
zz = v1v1 + 2 * dx * v1v4 + dx * dx * v4v4;
if (use_z_square) {
z = zz;
} else {
z = std::sqrt(std::fabs(zz));
}
}
if (path_type == S) {
s = m/M + static_cast<double>(sign) * ((f - 1) / (2 * M));
}
}
template <typename element_type, typename scalar_type, path_sz path_type>
void GeometricPathBase<element_type, scalar_type, path_type>::computeDerivatives() {
const scalar_type factor1 = 1.0 / (2.0 * v3v3 * std::sqrt(v1v3 * v1v3 - v3v3 * (v1v1 - v2v2)));
const scalar_type factor2 = 1.0 / v3v3;
for (size_t i_elem = 0; i_elem < v1.size(); ++i_elem) {
// Compute the derivative of f with vector v1
dfdv1[i_elem] = factor1 * (2.0 * v1v3 * v3[i_elem] - 2.0 * v3v3 * v1[i_elem]) - factor2 * v3[i_elem];
// Compute the derivative of f with respect to vector v2
dfdv2[i_elem] = factor1 * (2.0 * v3v3 * v2[i_elem]);
// dZ(v1(r), v2(r), v3) / dr = ∂Z/∂v1 * dv1/dr + ∂Z/∂v2 * dv2/dr
// dv1/dr = [fitting matrix 1][-1, ..., -1]
// dv2/dr = [fitting matrix 2][1, ..., 1]
// ∂Z/∂v1 = 1/(2*z) * (2v1 + (f-1)v4 + (v1⋅v4)∂f/∂v1 + v4^2 * 1/4 * 2(f-1) * ∂f/∂v1)
// ∂Z/∂v2 = 1/(2*z) * ((v1⋅v4)∂f/∂v2 + v4^2 * 1/4 * 2(f-1) * ∂f/∂v2)
if (path_type == Z) {
if (use_z_square) {
dzdv1[i_elem] = 2.0 * v1[i_elem] + (f-1) * v4[i_elem] + v1v4 * dfdv1[i_elem] + v4v4 * 0.25 * 2.0 * (f-1) * dfdv1[i_elem];
dzdv2[i_elem] = v1v4 * dfdv2[i_elem] + v4v4 * 0.25 * 2.0 * (f-1) * dfdv2[i_elem];
} else {
if (z > static_cast<scalar_type>(0)) {
dzdv1[i_elem] = (1.0 / (2.0 * z)) * (2.0 * v1[i_elem] + (f-1) * v4[i_elem] + v1v4 * dfdv1[i_elem] + v4v4 * 0.25 * 2.0 * (f-1) * dfdv1[i_elem]);
dzdv2[i_elem] = (1.0 / (2.0 * z)) * (v1v4 * dfdv2[i_elem] + v4v4 * 0.25 * 2.0 * (f-1) * dfdv2[i_elem]);
} else {
// workaround at z = 0
dzdv1[i_elem] = 0;
dzdv2[i_elem] = 0;
}
}
}
}
}
}
#endif // GEOMETRICPATHCV_H

View File

@ -178,6 +178,31 @@ int cvm::atom_group::remove_atom(cvm::atom_iter ai)
}
int cvm::atom_group::set_dummy()
{
if (atoms_ids.size() > 0) {
return cvm::error("Error: setting group with keyword \""+key+
"\" and name \""+name+"\" as dummy, but it already "
"contains atoms.\n", INPUT_ERROR);
}
b_dummy = true;
return COLVARS_OK;
}
int cvm::atom_group::set_dummy_pos(cvm::atom_pos const &pos)
{
if (b_dummy) {
dummy_atom_pos = pos;
} else {
return cvm::error("Error: setting dummy position for group with keyword \""+
key+"\" and name \""+name+
"\", but it is not dummy.\n", INPUT_ERROR);
}
return COLVARS_OK;
}
int cvm::atom_group::init()
{
if (!key.size()) key = "unnamed";
@ -469,20 +494,15 @@ int cvm::atom_group::parse(std::string const &group_conf)
// checks of doubly-counted atoms have been handled by add_atom() already
if (get_keyval(group_conf, "dummyAtom", dummy_atom_pos, cvm::atom_pos())) {
b_dummy = true;
// note: atoms_ids.size() is used here in lieu of atoms.size(),
// which can be empty for scalable groups
if (atoms_ids.size()) {
cvm::error("Error: cannot set up group \""+
key+"\" as a dummy atom "
"and provide it with atom definitions.\n", INPUT_ERROR);
}
parse_error |= set_dummy();
parse_error |= set_dummy_pos(dummy_atom_pos);
} else {
b_dummy = false;
if (!(atoms_ids.size())) {
cvm::error("Error: no atoms defined for atom group \""+
key+"\".\n", INPUT_ERROR);
parse_error |= cvm::error("Error: no atoms defined for atom group \""+
key+"\".\n", INPUT_ERROR);
}
// whether these atoms will ever receive forces or not

View File

@ -207,6 +207,12 @@ public:
/// \brief Remove an atom object from this group
int remove_atom(cvm::atom_iter ai);
/// Set this group as a dummy group (no actual atoms)
int set_dummy();
/// If this group is dummy, set the corresponding position
int set_dummy_pos(cvm::atom_pos const &pos);
/// \brief Print the updated the total mass and charge of a group.
/// This is needed in case the hosting MD code has an option to
/// change atom masses after their initialization.

View File

@ -37,7 +37,6 @@ colvarbias_meta::colvarbias_meta(char const *key)
{
new_hills_begin = hills.end();
hills_traj_os = NULL;
replica_hills_os = NULL;
ebmeta_equil_steps = 0L;
}
@ -203,23 +202,37 @@ int colvarbias_meta::init_ebmeta_params(std::string const &conf)
target_dist = new colvar_grid_scalar();
target_dist->init_from_colvars(colvars);
std::string target_dist_file;
get_keyval(conf, "targetdistfile", target_dist_file);
get_keyval(conf, "targetDistFile", target_dist_file);
std::ifstream targetdiststream(target_dist_file.c_str());
target_dist->read_multicol(targetdiststream);
cvm::real min_val = target_dist->minimum_value();
cvm::real max_val = target_dist->maximum_value();
if(min_val<0){
cvm::error("Error: Target distribution of ebMeta "
cvm::error("Error: Target distribution of EBMetaD "
"has negative values!.\n", INPUT_ERROR);
}
cvm::real min_pos_val = target_dist->minimum_pos_value();
if(min_pos_val<=0){
cvm::error("Error: Target distribution of ebMeta has negative "
"or zero minimum positive value!.\n", INPUT_ERROR);
}
if(min_val==0){
cvm::log("WARNING: Target distribution has zero values.\n");
cvm::log("Zeros will be converted to the minimum positive value.\n");
target_dist->remove_zeros(min_pos_val);
cvm::real target_dist_min_val;
get_keyval(conf, "targetDistMinVal", target_dist_min_val, 1/1000000.0);
if(target_dist_min_val>0 && target_dist_min_val<1){
target_dist_min_val=max_val*target_dist_min_val;
target_dist->remove_small_values(target_dist_min_val);
} else {
if (target_dist_min_val==0) {
cvm::log("NOTE: targetDistMinVal is set to zero, the minimum value of the target \n");
cvm::log(" distribution will be set as the minimum positive value.\n");
cvm::real min_pos_val = target_dist->minimum_pos_value();
if(min_pos_val<=0){
cvm::error("Error: Target distribution of EBMetaD has negative "
"or zero minimum positive value!.\n", INPUT_ERROR);
}
if(min_val==0){
cvm::log("WARNING: Target distribution has zero values.\n");
cvm::log("Zeros will be converted to the minimum positive value.\n");
target_dist->remove_small_values(min_pos_val);
}
} else {
cvm::error("Error: targetDistMinVal must be a value between 0 and 1!.\n", INPUT_ERROR);
}
}
// normalize target distribution and multiply by effective volume = exp(differential entropy)
target_dist->multiply_constant(1.0/target_dist->integral());
@ -235,14 +248,14 @@ int colvarbias_meta::init_ebmeta_params(std::string const &conf)
colvarbias_meta::~colvarbias_meta()
{
colvarbias_meta::clear_state_data();
colvarproxy *proxy = cvm::proxy;
if (replica_hills_os) {
cvm::proxy->close_output_stream(replica_hills_file);
replica_hills_os = NULL;
if (proxy->get_output_stream(replica_hills_file)) {
proxy->close_output_stream(replica_hills_file);
}
if (hills_traj_os) {
cvm::proxy->close_output_stream(hills_traj_file_name());
proxy->close_output_stream(hills_traj_file_name());
hills_traj_os = NULL;
}
@ -523,6 +536,8 @@ int colvarbias_meta::update_bias()
case multiple_replicas:
create_hill(hill(hill_weight*hills_scale, colvars, hill_width, replica_id));
std::ostream *replica_hills_os =
cvm::proxy->get_output_stream(replica_hills_file);
if (replica_hills_os) {
*replica_hills_os << hills.back();
} else {
@ -921,13 +936,16 @@ void colvarbias_meta::recount_hills_off_grid(colvarbias_meta::hill_iter h_first
int colvarbias_meta::replica_share()
{
colvarproxy *proxy = cvm::proxy;
// sync with the other replicas (if needed)
if (comm == multiple_replicas) {
// reread the replicas registry
update_replicas_registry();
// empty the output buffer
std::ostream *replica_hills_os =
proxy->get_output_stream(replica_hills_file);
if (replica_hills_os) {
cvm::proxy->flush_output_stream(replica_hills_os);
proxy->flush_output_stream(replica_hills_os);
}
read_replica_files();
}
@ -1089,11 +1107,7 @@ void colvarbias_meta::read_replica_files()
(replicas[ir])->replica_state_file+"\".\n");
std::ifstream is((replicas[ir])->replica_state_file.c_str());
if (! (replicas[ir])->read_state(is)) {
cvm::log("Reading from file \""+(replicas[ir])->replica_state_file+
"\" failed or incomplete: will try again in "+
cvm::to_str(replica_update_freq)+" steps.\n");
} else {
if ((replicas[ir])->read_state(is)) {
// state file has been read successfully
(replicas[ir])->replica_state_file_in_sync = true;
(replicas[ir])->update_status = 0;
@ -1550,15 +1564,11 @@ int colvarbias_meta::setup_output()
// for the others to read
// open the "hills" buffer file
if (!replica_hills_os) {
cvm::proxy->backup_file(replica_hills_file);
replica_hills_os = cvm::proxy->output_stream(replica_hills_file);
if (!replica_hills_os) return cvm::get_error();
replica_hills_os->setf(std::ios::scientific, std::ios::floatfield);
}
reopen_replica_buffer_file();
// write the state file (so that there is always one available)
write_replica_state_file();
// schedule to read the state files of the other replicas
for (size_t ir = 0; ir < replicas.size(); ir++) {
(replicas[ir])->replica_state_file_in_sync = false;
@ -1661,15 +1671,16 @@ std::ostream & colvarbias_meta::write_state_data(std::ostream& os)
int colvarbias_meta::write_state_to_replicas()
{
int error_code = COLVARS_OK;
if (comm != single_replica) {
write_replica_state_file();
// schedule to reread the state files of the other replicas (they
// have also rewritten them)
error_code |= write_replica_state_file();
error_code |= reopen_replica_buffer_file();
// schedule to reread the state files of the other replicas
for (size_t ir = 0; ir < replicas.size(); ir++) {
(replicas[ir])->replica_state_file_in_sync = false;
}
}
return COLVARS_OK;
return error_code;
}
@ -1693,6 +1704,20 @@ void colvarbias_meta::write_pmf()
// output the PMF from this instance or replica
pmf->reset();
pmf->add_grid(*hills_energy);
if (ebmeta) {
int nt_points=pmf->number_of_points();
for (int i = 0; i < nt_points; i++) {
cvm:: real pmf_val=0.0;
cvm:: real target_val=target_dist->value(i);
if (target_val>0) {
pmf_val=pmf->value(i);
pmf_val=pmf_val+cvm::temperature() * cvm::boltzmann() * std::log(target_val);
}
pmf->set_value(i,pmf_val);
}
}
cvm::real const max = pmf->maximum_value();
pmf->add_constant(-1.0 * max);
pmf->multiply_constant(-1.0);
@ -1716,10 +1741,24 @@ void colvarbias_meta::write_pmf()
if (comm != single_replica) {
// output the combined PMF from all replicas
pmf->reset();
pmf->add_grid(*hills_energy);
// current replica already included in the pools of replicas
for (size_t ir = 0; ir < replicas.size(); ir++) {
pmf->add_grid(*(replicas[ir]->hills_energy));
}
if (ebmeta) {
int nt_points=pmf->number_of_points();
for (int i = 0; i < nt_points; i++) {
cvm:: real pmf_val=0.0;
cvm:: real target_val=target_dist->value(i);
if (target_val>0) {
pmf_val=pmf->value(i);
pmf_val=pmf_val+cvm::temperature() * cvm::boltzmann() * std::log(target_val);
}
pmf->set_value(i,pmf_val);
}
}
cvm::real const max = pmf->maximum_value();
pmf->add_constant(-1.0 * max);
pmf->multiply_constant(-1.0);
@ -1744,74 +1783,47 @@ void colvarbias_meta::write_pmf()
int colvarbias_meta::write_replica_state_file()
{
colvarproxy *proxy = cvm::proxy;
if (cvm::debug()) {
cvm::log("Writing replica state file for bias \""+name+"\"\n");
}
// write down also the restart for the other replicas
cvm::backup_file(replica_state_file.c_str());
std::ostream *rep_state_os = cvm::proxy->output_stream(replica_state_file);
if (rep_state_os == NULL) {
cvm::error("Error: in opening file \""+
replica_state_file+"\" for writing.\n", FILE_ERROR);
return FILE_ERROR;
int error_code = COLVARS_OK;
// Write to temporary state file
std::string const tmp_state_file(replica_state_file+".tmp");
error_code |= proxy->remove_file(tmp_state_file);
std::ostream *rep_state_os = cvm::proxy->output_stream(tmp_state_file);
if (rep_state_os) {
if (!write_state(*rep_state_os)) {
error_code |= cvm::error("Error: in writing to temporary file \""+
tmp_state_file+"\".\n", FILE_ERROR);
}
}
error_code |= proxy->close_output_stream(tmp_state_file);
rep_state_os->setf(std::ios::scientific, std::ios::floatfield);
error_code |= proxy->rename_file(tmp_state_file, replica_state_file);
if (!write_state(*rep_state_os)) {
cvm::error("Error: in writing to file \""+
replica_state_file+"\".\n", FILE_ERROR);
cvm::proxy->close_output_stream(replica_state_file);
return FILE_ERROR;
return error_code;
}
int colvarbias_meta::reopen_replica_buffer_file()
{
int error_code = COLVARS_OK;
colvarproxy *proxy = cvm::proxy;
if (proxy->get_output_stream(replica_hills_file) != NULL) {
error_code |= proxy->close_output_stream(replica_hills_file);
}
cvm::proxy->close_output_stream(replica_state_file);
// rep_state_os.setf(std::ios::scientific, std::ios::floatfield);
// rep_state_os << "\n"
// << "metadynamics {\n"
// << " configuration {\n"
// << " name " << this->name << "\n"
// << " step " << cvm::step_absolute() << "\n";
// if (this->comm != single_replica) {
// rep_state_os << " replicaID " << this->replica_id << "\n";
// }
// rep_state_os << " }\n\n";
// rep_state_os << " hills_energy\n";
// rep_state_os << std::setprecision(cvm::cv_prec)
// << std::setw(cvm::cv_width);
// hills_energy->write_restart(rep_state_os);
// rep_state_os << " hills_energy_gradients\n";
// rep_state_os << std::setprecision(cvm::cv_prec)
// << std::setw(cvm::cv_width);
// hills_energy_gradients->write_restart(rep_state_os);
// if ( (!use_grids) || keep_hills ) {
// // write all hills currently in memory
// for (std::list<hill>::const_iterator h = this->hills.begin();
// h != this->hills.end();
// h++) {
// rep_state_os << *h;
// }
// } else {
// // write just those that are near the grid boundaries
// for (std::list<hill>::const_iterator h = this->hills_off_grid.begin();
// h != this->hills_off_grid.end();
// h++) {
// rep_state_os << *h;
// }
// }
// rep_state_os << "}\n\n";
// rep_state_os.close();
// reopen the hills file
cvm::proxy->close_output_stream(replica_hills_file);
cvm::proxy->backup_file(replica_hills_file);
replica_hills_os = cvm::proxy->output_stream(replica_hills_file);
if (!replica_hills_os) return cvm::get_error();
replica_hills_os->setf(std::ios::scientific, std::ios::floatfield);
return COLVARS_OK;
error_code |= proxy->remove_file(replica_hills_file);
std::ostream *replica_hills_os = proxy->output_stream(replica_hills_file);
if (replica_hills_os) {
replica_hills_os->setf(std::ios::scientific, std::ios::floatfield);
} else {
error_code |= FILE_ERROR;
}
return error_code;
}
@ -1883,5 +1895,3 @@ std::ostream & operator << (std::ostream &os, colvarbias_meta::hill const &h)
return os;
}

Some files were not shown because too many files have changed in this diff Show More