Merge branch 'develop' into pace-mliap
# Conflicts: # src/ML-IAP/compute_mliap.cpp
This commit is contained in:
5
.github/CODEOWNERS
vendored
5
.github/CODEOWNERS
vendored
@ -37,7 +37,7 @@ src/MESONT/* @iafoss
|
|||||||
src/ML-HDNNP/* @singraber
|
src/ML-HDNNP/* @singraber
|
||||||
src/ML-IAP/* @athomps
|
src/ML-IAP/* @athomps
|
||||||
src/ML-PACE/* @yury-lysogorskiy
|
src/ML-PACE/* @yury-lysogorskiy
|
||||||
src/ML-POD/* @exapde @rohskopf
|
src/ML-POD/* @exapde
|
||||||
src/MOFFF/* @hheenen
|
src/MOFFF/* @hheenen
|
||||||
src/MOLFILE/* @akohlmey
|
src/MOLFILE/* @akohlmey
|
||||||
src/NETCDF/* @pastewka
|
src/NETCDF/* @pastewka
|
||||||
@ -65,9 +65,12 @@ src/MANYBODY/pair_nb3b_screened.* @flodesani
|
|||||||
src/REPLICA/*_grem.* @dstelter92
|
src/REPLICA/*_grem.* @dstelter92
|
||||||
src/EXTRA-COMPUTE/compute_stress_mop*.* @RomainVermorel
|
src/EXTRA-COMPUTE/compute_stress_mop*.* @RomainVermorel
|
||||||
src/EXTRA-COMPUTE/compute_born_matrix.* @Bibobu @athomps
|
src/EXTRA-COMPUTE/compute_born_matrix.* @Bibobu @athomps
|
||||||
|
src/EXTRA-FIX/fix_deform_pressure.* @jtclemm
|
||||||
src/MISC/*_tracker.* @jtclemm
|
src/MISC/*_tracker.* @jtclemm
|
||||||
src/MC/fix_gcmc.* @athomps
|
src/MC/fix_gcmc.* @athomps
|
||||||
src/MC/fix_sgcmc.* @athomps
|
src/MC/fix_sgcmc.* @athomps
|
||||||
|
src/REAXFF/compute_reaxff_atom.* @rbberger
|
||||||
|
src/KOKKOS/compute_reaxff_atom_kokkos.* @rbberger
|
||||||
src/REPLICA/fix_pimd_langevin.* @Yi-FanLi
|
src/REPLICA/fix_pimd_langevin.* @Yi-FanLi
|
||||||
|
|
||||||
# core LAMMPS classes
|
# core LAMMPS classes
|
||||||
|
|||||||
2
.github/workflows/coverity.yml
vendored
2
.github/workflows/coverity.yml
vendored
@ -25,7 +25,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Cache Coverity
|
- name: Cache Coverity
|
||||||
id: cache-coverity
|
id: cache-coverity
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
path: ./download/
|
path: ./download/
|
||||||
key: ${{ runner.os }}-download-${{ hashFiles('**/coverity_tool.*') }}
|
key: ${{ runner.os }}-download-${{ hashFiles('**/coverity_tool.*') }}
|
||||||
|
|||||||
2
.github/workflows/unittest-macos.yml
vendored
2
.github/workflows/unittest-macos.yml
vendored
@ -32,7 +32,7 @@ jobs:
|
|||||||
run: mkdir build
|
run: mkdir build
|
||||||
|
|
||||||
- name: Set up ccache
|
- name: Set up ccache
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
path: ${{ env.CCACHE_DIR }}
|
path: ${{ env.CCACHE_DIR }}
|
||||||
key: macos-ccache-${{ github.sha }}
|
key: macos-ccache-${{ github.sha }}
|
||||||
|
|||||||
@ -120,6 +120,19 @@ if((CMAKE_CXX_COMPILER_ID STREQUAL "NVHPC") OR (CMAKE_CXX_COMPILER_ID STREQUAL "
|
|||||||
set(CMAKE_TUNE_DEFAULT "-Minform=severe")
|
set(CMAKE_TUNE_DEFAULT "-Minform=severe")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# this hack is required to compile fmt lib with CrayClang version 15.0.2
|
||||||
|
# CrayClang is only directly recognized by version 3.28 and later
|
||||||
|
if(CMAKE_VERSION VERSION_LESS 3.28)
|
||||||
|
get_filename_component(_exe "${CMAKE_CXX_COMPILER}" NAME)
|
||||||
|
if((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") AND (_exe STREQUAL "crayCC"))
|
||||||
|
set(CMAKE_TUNE_DEFAULT "-DFMT_STATIC_THOUSANDS_SEPARATOR")
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
if(CMAKE_CXX_COMPILER_ID STREQUAL "CrayClang")
|
||||||
|
set(CMAKE_TUNE_DEFAULT "-DFMT_STATIC_THOUSANDS_SEPARATOR")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
# silence nvcc warnings
|
# silence nvcc warnings
|
||||||
if((PKG_KOKKOS) AND (Kokkos_ENABLE_CUDA) AND NOT (CMAKE_CXX_COMPILER_ID STREQUAL "Clang"))
|
if((PKG_KOKKOS) AND (Kokkos_ENABLE_CUDA) AND NOT (CMAKE_CXX_COMPILER_ID STREQUAL "Clang"))
|
||||||
set(CMAKE_TUNE_DEFAULT "${CMAKE_TUNE_DEFAULT} -Xcudafe --diag_suppress=unrecognized_pragma")
|
set(CMAKE_TUNE_DEFAULT "${CMAKE_TUNE_DEFAULT} -Xcudafe --diag_suppress=unrecognized_pragma")
|
||||||
@ -209,6 +222,10 @@ endif()
|
|||||||
add_executable(lmp ${MAIN_SOURCES})
|
add_executable(lmp ${MAIN_SOURCES})
|
||||||
target_link_libraries(lmp PRIVATE lammps)
|
target_link_libraries(lmp PRIVATE lammps)
|
||||||
set_target_properties(lmp PROPERTIES OUTPUT_NAME ${LAMMPS_BINARY})
|
set_target_properties(lmp PROPERTIES OUTPUT_NAME ${LAMMPS_BINARY})
|
||||||
|
# re-export all symbols for plugins
|
||||||
|
if(PKG_PLUGIN AND (NOT ((CMAKE_SYSTEM_NAME STREQUAL "Windows"))))
|
||||||
|
set_target_properties(lmp PROPERTIES ENABLE_EXPORTS TRUE)
|
||||||
|
endif()
|
||||||
install(TARGETS lmp EXPORT LAMMPS_Targets DESTINATION ${CMAKE_INSTALL_BINDIR})
|
install(TARGETS lmp EXPORT LAMMPS_Targets DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||||
|
|
||||||
option(CMAKE_VERBOSE_MAKEFILE "Generate verbose Makefiles" OFF)
|
option(CMAKE_VERBOSE_MAKEFILE "Generate verbose Makefiles" OFF)
|
||||||
@ -415,6 +432,7 @@ if(BUILD_OMP)
|
|||||||
(CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM") OR (CMAKE_CXX_COMPILER_ID STREQUAL "XLClang") OR
|
(CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM") OR (CMAKE_CXX_COMPILER_ID STREQUAL "XLClang") OR
|
||||||
((CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 10.0)) OR
|
((CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 10.0)) OR
|
||||||
((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 10.0)) OR
|
((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 10.0)) OR
|
||||||
|
((CMAKE_CXX_COMPILER_ID STREQUAL "CrayClang") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 10.0)) OR
|
||||||
((CMAKE_CXX_COMPILER_ID STREQUAL "Intel") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.0)))
|
((CMAKE_CXX_COMPILER_ID STREQUAL "Intel") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.0)))
|
||||||
# GCC 9.x and later plus Clang 10.x and later implement strict OpenMP 4.0 semantics for consts.
|
# GCC 9.x and later plus Clang 10.x and later implement strict OpenMP 4.0 semantics for consts.
|
||||||
# Intel 18.0 was tested to support both, so we switch to OpenMP 4+ from 19.x onward to be safe.
|
# Intel 18.0 was tested to support both, so we switch to OpenMP 4+ from 19.x onward to be safe.
|
||||||
@ -425,6 +443,21 @@ if(BUILD_OMP)
|
|||||||
target_compile_definitions(lammps PRIVATE -DLAMMPS_OMP_COMPAT=${LAMMPS_OMP_COMPAT_LEVEL})
|
target_compile_definitions(lammps PRIVATE -DLAMMPS_OMP_COMPAT=${LAMMPS_OMP_COMPAT_LEVEL})
|
||||||
target_link_libraries(lammps PRIVATE OpenMP::OpenMP_CXX)
|
target_link_libraries(lammps PRIVATE OpenMP::OpenMP_CXX)
|
||||||
target_link_libraries(lmp PRIVATE OpenMP::OpenMP_CXX)
|
target_link_libraries(lmp PRIVATE OpenMP::OpenMP_CXX)
|
||||||
|
|
||||||
|
# this hack is required to correctly link with OpenMP support when using CrayClang version 15.0.2
|
||||||
|
# CrayClang is only directly recognized by version 3.28 and later
|
||||||
|
if(CMAKE_VERSION VERSION_LESS 3.28)
|
||||||
|
get_filename_component(_exe "${CMAKE_CXX_COMPILER}" NAME)
|
||||||
|
if((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") AND (_exe STREQUAL "crayCC"))
|
||||||
|
set(CMAKE_SHARED_LINKER_FLAGS_${BTYPE} "${CMAKE_SHARED_LINKER_FLAGS_${BTYPE} -fopenmp")
|
||||||
|
set(CMAKE_STATIC_LINKER_FLAGS_${BTYPE} "${CMAKE_STATIC_LINKER_FLAGS_${BTYPE} -fopenmp")
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
if(CMAKE_CXX_COMPILER_ID STREQUAL "CrayClang")
|
||||||
|
set(CMAKE_SHARED_LINKER_FLAGS_${BTYPE} "${CMAKE_SHARED_LINKER_FLAGS_${BTYPE} -fopenmp")
|
||||||
|
set(CMAKE_STATIC_LINKER_FLAGS_${BTYPE} "${CMAKE_STATIC_LINKER_FLAGS_${BTYPE} -fopenmp")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# lower C++ standard for fmtlib sources when using Intel classic compiler
|
# lower C++ standard for fmtlib sources when using Intel classic compiler
|
||||||
@ -539,12 +572,12 @@ endforeach()
|
|||||||
########################################################################
|
########################################################################
|
||||||
# Basic system tests (standard libraries, headers, functions, types) #
|
# Basic system tests (standard libraries, headers, functions, types) #
|
||||||
########################################################################
|
########################################################################
|
||||||
foreach(HEADER cmath)
|
if (NOT ((CMAKE_CXX_COMPILER_ID STREQUAL "Intel") OR (CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM")))
|
||||||
check_include_file_cxx(${HEADER} FOUND_${HEADER})
|
check_include_file_cxx(cmath FOUND_CMATH)
|
||||||
if(NOT FOUND_${HEADER})
|
if(NOT FOUND_CMATH)
|
||||||
message(FATAL_ERROR "Could not find needed header - ${HEADER}")
|
message(FATAL_ERROR "Could not find the required 'cmath' header")
|
||||||
endif(NOT FOUND_${HEADER})
|
endif(NOT FOUND_CMATH)
|
||||||
endforeach(HEADER)
|
endif()
|
||||||
|
|
||||||
# make the standard math library overrideable and autodetected (for systems that don't have it)
|
# make the standard math library overrideable and autodetected (for systems that don't have it)
|
||||||
find_library(STANDARD_MATH_LIB m DOC "Standard Math library")
|
find_library(STANDARD_MATH_LIB m DOC "Standard Math library")
|
||||||
@ -971,14 +1004,15 @@ if(PKG_KOKKOS)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
if(PKG_KSPACE)
|
if(PKG_KSPACE)
|
||||||
if (LMP_HEFFTE)
|
if (FFT_USE_HEFFTE)
|
||||||
message(STATUS "<<< FFT settings >>>
|
message(STATUS "<<< FFT settings >>>
|
||||||
-- Primary FFT lib: heFFTe")
|
-- Primary FFT lib: heFFTe")
|
||||||
if (HEFFTE_BACKEND)
|
if (FFT_HEFFTE_BACKEND)
|
||||||
message(STATUS "heFFTe backend: ${HEFFTE_BACKEND}")
|
message(STATUS "heFFTe backend: ${FFT_HEFFTE_BACKEND}")
|
||||||
else()
|
else()
|
||||||
message(STATUS "heFFTe backend: stock (builtin FFT implementation, tested for corrected but not optimized for production)")
|
message(STATUS "heFFTe backend: stock (builtin FFT implementation, tested for corrected but not optimized for production)")
|
||||||
endif()
|
endif()
|
||||||
|
message(STATUS "Using distributed FFT algorithms from heFTTe")
|
||||||
if(FFT_SINGLE)
|
if(FFT_SINGLE)
|
||||||
message(STATUS "Using single precision FFTs")
|
message(STATUS "Using single precision FFTs")
|
||||||
else()
|
else()
|
||||||
@ -997,28 +1031,10 @@ if(PKG_KSPACE)
|
|||||||
else()
|
else()
|
||||||
message(STATUS "Using non-threaded FFTs")
|
message(STATUS "Using non-threaded FFTs")
|
||||||
endif()
|
endif()
|
||||||
if (FFT_HEFFTE)
|
message(STATUS "Using builtin distributed FFT algorithms")
|
||||||
message(STATUS "Using distributed algorithms from heFTTe")
|
endif()
|
||||||
else()
|
if(PKG_KOKKOS)
|
||||||
message(STATUS "Using builtin distributed algorithms")
|
message(STATUS "Kokkos FFT: ${FFT_KOKKOS}")
|
||||||
endif()
|
|
||||||
if(PKG_KOKKOS)
|
|
||||||
if(Kokkos_ENABLE_CUDA)
|
|
||||||
if(FFT STREQUAL "KISS")
|
|
||||||
message(STATUS "Kokkos FFT: KISS")
|
|
||||||
else()
|
|
||||||
message(STATUS "Kokkos FFT: cuFFT")
|
|
||||||
endif()
|
|
||||||
elseif(Kokkos_ENABLE_HIP)
|
|
||||||
if(FFT STREQUAL "KISS")
|
|
||||||
message(STATUS "Kokkos FFT: KISS")
|
|
||||||
else()
|
|
||||||
message(STATUS "Kokkos FFT: hipFFT")
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
message(STATUS "Kokkos FFT: ${FFT}")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
if(BUILD_DOC)
|
if(BUILD_DOC)
|
||||||
|
|||||||
@ -1,11 +1,3 @@
|
|||||||
if(NOT DEFINED HIP_PATH)
|
|
||||||
if(NOT DEFINED ENV{HIP_PATH})
|
|
||||||
message(FATAL_ERROR "HIP support requires HIP_PATH to be defined.\n"
|
|
||||||
"Either pass the HIP_PATH as a CMake option via -DHIP_PATH=... or set the HIP_PATH environment variable.")
|
|
||||||
else()
|
|
||||||
set(HIP_PATH $ENV{HIP_PATH} CACHE PATH "Path to HIP installation")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
if(NOT DEFINED ROCM_PATH)
|
if(NOT DEFINED ROCM_PATH)
|
||||||
if(NOT DEFINED ENV{ROCM_PATH})
|
if(NOT DEFINED ENV{ROCM_PATH})
|
||||||
set(ROCM_PATH "/opt/rocm" CACHE PATH "Path to ROCm installation")
|
set(ROCM_PATH "/opt/rocm" CACHE PATH "Path to ROCm installation")
|
||||||
@ -13,4 +5,4 @@ if(NOT DEFINED ROCM_PATH)
|
|||||||
set(ROCM_PATH $ENV{ROCM_PATH} CACHE PATH "Path to ROCm installation")
|
set(ROCM_PATH $ENV{ROCM_PATH} CACHE PATH "Path to ROCm installation")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
list(APPEND CMAKE_PREFIX_PATH ${HIP_PATH} ${ROCM_PATH})
|
list(APPEND CMAKE_PREFIX_PATH ${ROCM_PATH})
|
||||||
|
|||||||
@ -43,5 +43,5 @@ function(ExternalCMakeProject target url hash basedir cmakedir cmakefile)
|
|||||||
"${CMAKE_BINARY_DIR}/_deps/${target}-src/${cmakedir}/CMakeLists.txt")
|
"${CMAKE_BINARY_DIR}/_deps/${target}-src/${cmakedir}/CMakeLists.txt")
|
||||||
endif()
|
endif()
|
||||||
add_subdirectory("${CMAKE_BINARY_DIR}/_deps/${target}-src/${cmakedir}"
|
add_subdirectory("${CMAKE_BINARY_DIR}/_deps/${target}-src/${cmakedir}"
|
||||||
"${CMAKE_BINARY_DIR}/_deps/${target}-build")
|
"${CMAKE_BINARY_DIR}/_deps/${target}-build" EXCLUDE_FROM_ALL)
|
||||||
endfunction(ExternalCMakeProject)
|
endfunction(ExternalCMakeProject)
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
message(STATUS "Downloading and building OpenCL loader library")
|
message(STATUS "Downloading and building OpenCL loader library")
|
||||||
set(OPENCL_LOADER_URL "${LAMMPS_THIRDPARTY_URL}/opencl-loader-2022.01.04.tar.gz" CACHE STRING "URL for OpenCL loader tarball")
|
set(OPENCL_LOADER_URL "${LAMMPS_THIRDPARTY_URL}/opencl-loader-2024.02.09.tar.gz" CACHE STRING "URL for OpenCL loader tarball")
|
||||||
set(OPENCL_LOADER_MD5 "8d3a801e87a2c6653bf0e27707063914" CACHE STRING "MD5 checksum of OpenCL loader tarball")
|
set(OPENCL_LOADER_MD5 "f3573cf9daa3558ba46fd5866517f38f" CACHE STRING "MD5 checksum of OpenCL loader tarball")
|
||||||
mark_as_advanced(OPENCL_LOADER_URL)
|
mark_as_advanced(OPENCL_LOADER_URL)
|
||||||
mark_as_advanced(OPENCL_LOADER_MD5)
|
mark_as_advanced(OPENCL_LOADER_MD5)
|
||||||
|
|
||||||
@ -8,4 +8,3 @@ set(INSTALL_LIBOPENCL OFF CACHE BOOL "" FORCE)
|
|||||||
include(ExternalCMakeProject)
|
include(ExternalCMakeProject)
|
||||||
ExternalCMakeProject(opencl_loader ${OPENCL_LOADER_URL} ${OPENCL_LOADER_MD5} opencl-loader . "")
|
ExternalCMakeProject(opencl_loader ${OPENCL_LOADER_URL} ${OPENCL_LOADER_MD5} opencl-loader . "")
|
||||||
|
|
||||||
add_library(OpenCL::OpenCL ALIAS OpenCL)
|
|
||||||
|
|||||||
@ -1,3 +1,10 @@
|
|||||||
|
|
||||||
|
# Silence CMake warnings about FindCUDA being obsolete.
|
||||||
|
# We may need to eventually rewrite this section to use enable_language(CUDA)
|
||||||
|
if(POLICY CMP0146)
|
||||||
|
cmake_policy(SET CMP0146 OLD)
|
||||||
|
endif()
|
||||||
|
|
||||||
set(GPU_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/GPU)
|
set(GPU_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/GPU)
|
||||||
set(GPU_SOURCES ${GPU_SOURCES_DIR}/gpu_extra.h
|
set(GPU_SOURCES ${GPU_SOURCES_DIR}/gpu_extra.h
|
||||||
${GPU_SOURCES_DIR}/fix_gpu.h
|
${GPU_SOURCES_DIR}/fix_gpu.h
|
||||||
|
|||||||
@ -111,6 +111,9 @@ if(PKG_KSPACE)
|
|||||||
list(APPEND INTEL_SOURCES ${INTEL_SOURCES_DIR}/verlet_lrt_intel.cpp)
|
list(APPEND INTEL_SOURCES ${INTEL_SOURCES_DIR}/verlet_lrt_intel.cpp)
|
||||||
RegisterIntegrateStyle(${INTEL_SOURCES_DIR}/verlet_lrt_intel.h)
|
RegisterIntegrateStyle(${INTEL_SOURCES_DIR}/verlet_lrt_intel.h)
|
||||||
endif()
|
endif()
|
||||||
|
if(PKG_ML-SNAP)
|
||||||
|
list(APPEND INTEL_SOURCES ${INTEL_SOURCES_DIR}/sna_intel.cpp)
|
||||||
|
endif()
|
||||||
|
|
||||||
target_sources(lammps PRIVATE ${INTEL_SOURCES})
|
target_sources(lammps PRIVATE ${INTEL_SOURCES})
|
||||||
target_include_directories(lammps PRIVATE ${INTEL_SOURCES_DIR})
|
target_include_directories(lammps PRIVATE ${INTEL_SOURCES_DIR})
|
||||||
|
|||||||
@ -45,8 +45,8 @@ if(DOWNLOAD_KOKKOS)
|
|||||||
list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_CXX_EXTENSIONS=${CMAKE_CXX_EXTENSIONS}")
|
list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_CXX_EXTENSIONS=${CMAKE_CXX_EXTENSIONS}")
|
||||||
list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}")
|
list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}")
|
||||||
include(ExternalProject)
|
include(ExternalProject)
|
||||||
set(KOKKOS_URL "https://github.com/kokkos/kokkos/archive/4.2.00.tar.gz" CACHE STRING "URL for KOKKOS tarball")
|
set(KOKKOS_URL "https://github.com/kokkos/kokkos/archive/4.2.01.tar.gz" CACHE STRING "URL for KOKKOS tarball")
|
||||||
set(KOKKOS_MD5 "731647b61a4233f568d583702e9cd6d1" CACHE STRING "MD5 checksum of KOKKOS tarball")
|
set(KOKKOS_MD5 "16b9b09ae947d434dfb58fc5c87c2b76" CACHE STRING "MD5 checksum of KOKKOS tarball")
|
||||||
mark_as_advanced(KOKKOS_URL)
|
mark_as_advanced(KOKKOS_URL)
|
||||||
mark_as_advanced(KOKKOS_MD5)
|
mark_as_advanced(KOKKOS_MD5)
|
||||||
GetFallbackURL(KOKKOS_URL KOKKOS_FALLBACK)
|
GetFallbackURL(KOKKOS_URL KOKKOS_FALLBACK)
|
||||||
@ -71,7 +71,7 @@ if(DOWNLOAD_KOKKOS)
|
|||||||
add_dependencies(LAMMPS::KOKKOSCORE kokkos_build)
|
add_dependencies(LAMMPS::KOKKOSCORE kokkos_build)
|
||||||
add_dependencies(LAMMPS::KOKKOSCONTAINERS kokkos_build)
|
add_dependencies(LAMMPS::KOKKOSCONTAINERS kokkos_build)
|
||||||
elseif(EXTERNAL_KOKKOS)
|
elseif(EXTERNAL_KOKKOS)
|
||||||
find_package(Kokkos 4.2.00 REQUIRED CONFIG)
|
find_package(Kokkos 4.2.01 REQUIRED CONFIG)
|
||||||
target_link_libraries(lammps PRIVATE Kokkos::kokkos)
|
target_link_libraries(lammps PRIVATE Kokkos::kokkos)
|
||||||
else()
|
else()
|
||||||
set(LAMMPS_LIB_KOKKOS_SRC_DIR ${LAMMPS_LIB_SOURCE_DIR}/kokkos)
|
set(LAMMPS_LIB_KOKKOS_SRC_DIR ${LAMMPS_LIB_SOURCE_DIR}/kokkos)
|
||||||
@ -126,16 +126,36 @@ if(PKG_KSPACE)
|
|||||||
list(APPEND KOKKOS_PKG_SOURCES ${KOKKOS_PKG_SOURCES_DIR}/fft3d_kokkos.cpp
|
list(APPEND KOKKOS_PKG_SOURCES ${KOKKOS_PKG_SOURCES_DIR}/fft3d_kokkos.cpp
|
||||||
${KOKKOS_PKG_SOURCES_DIR}/grid3d_kokkos.cpp
|
${KOKKOS_PKG_SOURCES_DIR}/grid3d_kokkos.cpp
|
||||||
${KOKKOS_PKG_SOURCES_DIR}/remap_kokkos.cpp)
|
${KOKKOS_PKG_SOURCES_DIR}/remap_kokkos.cpp)
|
||||||
|
set(FFT_KOKKOS "KISS" CACHE STRING "FFT library for Kokkos-enabled KSPACE package")
|
||||||
|
set(FFT_KOKKOS_VALUES KISS FFTW3 MKL HIPFFT CUFFT)
|
||||||
|
set_property(CACHE FFT_KOKKOS PROPERTY STRINGS ${FFT_KOKKOS_VALUES})
|
||||||
|
validate_option(FFT_KOKKOS FFT_KOKKOS_VALUES)
|
||||||
|
string(TOUPPER ${FFT_KOKKOS} FFT_KOKKOS)
|
||||||
|
|
||||||
if(Kokkos_ENABLE_CUDA)
|
if(Kokkos_ENABLE_CUDA)
|
||||||
if(NOT (FFT STREQUAL "KISS"))
|
if(NOT ((FFT_KOKKOS STREQUAL "KISS") OR (FFT_KOKKOS STREQUAL "CUFFT")))
|
||||||
target_compile_definitions(lammps PRIVATE -DFFT_CUFFT)
|
message(FATAL_ERROR "The CUDA backend of Kokkos requires either KISS FFT or CUFFT.")
|
||||||
target_link_libraries(lammps PRIVATE cufft)
|
elseif(FFT_KOKKOS STREQUAL "KISS")
|
||||||
|
message(WARNING "Using KISS FFT with the CUDA backend of Kokkos may be sub-optimal.")
|
||||||
|
target_compile_definitions(lammps PRIVATE -DFFT_KOKKOS_KISS)
|
||||||
|
elseif(FFT_KOKKOS STREQUAL "CUFFT")
|
||||||
|
find_library(CUFFT_LIBRARY cufft)
|
||||||
|
if (CUFFT_LIBRARY STREQUAL "CUFFT_LIBRARY-NOTFOUND")
|
||||||
|
message(FATAL_ERROR "Required cuFFT library not found. Check your environment or set CUFFT_LIBRARY to its location")
|
||||||
|
endif()
|
||||||
|
target_compile_definitions(lammps PRIVATE -DFFT_KOKKOS_CUFFT)
|
||||||
|
target_link_libraries(lammps PRIVATE ${CUFFT_LIBRARY})
|
||||||
endif()
|
endif()
|
||||||
elseif(Kokkos_ENABLE_HIP)
|
elseif(Kokkos_ENABLE_HIP)
|
||||||
if(NOT (FFT STREQUAL "KISS"))
|
if(NOT ((FFT_KOKKOS STREQUAL "KISS") OR (FFT_KOKKOS STREQUAL "HIPFFT")))
|
||||||
|
message(FATAL_ERROR "The HIP backend of Kokkos requires either KISS FFT or HIPFFT.")
|
||||||
|
elseif(FFT_KOKKOS STREQUAL "KISS")
|
||||||
|
message(WARNING "Using KISS FFT with the HIP backend of Kokkos may be sub-optimal.")
|
||||||
|
target_compile_definitions(lammps PRIVATE -DFFT_KOKKOS_KISS)
|
||||||
|
elseif(FFT_KOKKOS STREQUAL "HIPFFT")
|
||||||
include(DetectHIPInstallation)
|
include(DetectHIPInstallation)
|
||||||
find_package(hipfft REQUIRED)
|
find_package(hipfft REQUIRED)
|
||||||
target_compile_definitions(lammps PRIVATE -DFFT_HIPFFT)
|
target_compile_definitions(lammps PRIVATE -DFFT_KOKKOS_HIPFFT)
|
||||||
target_link_libraries(lammps PRIVATE hip::hipfft)
|
target_link_libraries(lammps PRIVATE hip::hipfft)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@ -48,10 +48,15 @@ endif()
|
|||||||
|
|
||||||
option(FFT_USE_HEFFTE "Use heFFTe as the distributed FFT engine, overrides the FFT option." OFF)
|
option(FFT_USE_HEFFTE "Use heFFTe as the distributed FFT engine, overrides the FFT option." OFF)
|
||||||
if(FFT_USE_HEFFTE)
|
if(FFT_USE_HEFFTE)
|
||||||
# if FFT_HEFFTE is enabled, switch the builtin FFT engine with Heffte
|
# if FFT_HEFFTE is enabled, use the heFFTe parallel engine instead of the builtin fftMPI engine
|
||||||
set(FFT_HEFFTE_BACKEND_VALUES FFTW MKL)
|
|
||||||
set(FFT_HEFFTE_BACKEND "" CACHE STRING "Select heFFTe backend, e.g., FFTW or MKL")
|
# map standard FFT choices to available heFFTe backends: FFTW3 -> FFTW, KISS -> BUILTIN
|
||||||
|
set(FFT_HEFFTE_BACKEND_VALUES FFTW MKL BUILTIN)
|
||||||
|
string(REPLACE FFTW3 FFTW FFT_HEFFTE_BACKEND_DEFAULT ${FFT})
|
||||||
|
string(REPLACE KISS BUILTIN FFT_HEFFTE_BACKEND_DEFAULT ${FFT_HEFFTE_BACKEND_DEFAULT})
|
||||||
|
set(FFT_HEFFTE_BACKEND "${FFT_HEFFTE_BACKEND_DEFAULT}" CACHE STRING "Select heFFTe backend, e.g., FFTW or MKL")
|
||||||
set_property(CACHE FFT_HEFFTE_BACKEND PROPERTY STRINGS ${FFT_HEFFTE_BACKEND_VALUES})
|
set_property(CACHE FFT_HEFFTE_BACKEND PROPERTY STRINGS ${FFT_HEFFTE_BACKEND_VALUES})
|
||||||
|
validate_option(FFT_HEFFTE_BACKEND FFT_HEFFTE_BACKEND_VALUES)
|
||||||
|
|
||||||
if(FFT_HEFFTE_BACKEND STREQUAL "FFTW") # respect the backend choice, FFTW or MKL
|
if(FFT_HEFFTE_BACKEND STREQUAL "FFTW") # respect the backend choice, FFTW or MKL
|
||||||
set(HEFFTE_COMPONENTS "FFTW")
|
set(HEFFTE_COMPONENTS "FFTW")
|
||||||
@ -60,24 +65,38 @@ if(FFT_USE_HEFFTE)
|
|||||||
set(HEFFTE_COMPONENTS "MKL")
|
set(HEFFTE_COMPONENTS "MKL")
|
||||||
set(Heffte_ENABLE_MKL "ON" CACHE BOOL "Enables MKL backend for heFFTe")
|
set(Heffte_ENABLE_MKL "ON" CACHE BOOL "Enables MKL backend for heFFTe")
|
||||||
else()
|
else()
|
||||||
|
set(HEFFTE_COMPONENTS "BUILTIN")
|
||||||
message(WARNING "FFT_HEFFTE_BACKEND not selected, defaulting to the builtin 'stock' backend, which is intended for testing and is not optimized for production runs")
|
message(WARNING "FFT_HEFFTE_BACKEND not selected, defaulting to the builtin 'stock' backend, which is intended for testing and is not optimized for production runs")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_package(Heffte 2.4.0 QUIET COMPONENTS ${HEFFTE_COMPONENTS})
|
find_package(Heffte 2.4.0 QUIET COMPONENTS ${HEFFTE_COMPONENTS})
|
||||||
if (NOT Heffte_FOUND) # download and build
|
if (NOT Heffte_FOUND) # download and build
|
||||||
|
if(BUILD_SHARED_LIBS)
|
||||||
|
set(BUILD_SHARED_LIBS_WAS_ON YES)
|
||||||
|
set(BUILD_SHARED_LIBS OFF)
|
||||||
|
endif()
|
||||||
|
if(CMAKE_REQUEST_PIC)
|
||||||
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||||
|
endif()
|
||||||
|
set(Heffte_ENABLE_${FFT_HEFFTE_BACKEND} ON)
|
||||||
include(FetchContent)
|
include(FetchContent)
|
||||||
FetchContent_Declare(HEFFTE_PROJECT # using v2.4.0
|
FetchContent_Declare(HEFFTE_PROJECT # using v2.4.0
|
||||||
URL "https://github.com/icl-utk-edu/heffte/archive/refs/tags/v2.4.0.tar.gz"
|
URL "https://github.com/icl-utk-edu/heffte/archive/refs/tags/v2.4.0.tar.gz"
|
||||||
URL_HASH SHA256=02310fb4f9688df02f7181667e61c3adb7e38baf79611d80919d47452ff7881d
|
URL_HASH SHA256=02310fb4f9688df02f7181667e61c3adb7e38baf79611d80919d47452ff7881d
|
||||||
)
|
)
|
||||||
FetchContent_Populate(HEFFTE_PROJECT)
|
FetchContent_Populate(HEFFTE_PROJECT)
|
||||||
add_subdirectory(${heffte_project_SOURCE_DIR} ${heffte_project_BINARY_DIR})
|
|
||||||
set_target_properties(lmp PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
|
|
||||||
set_target_properties(lammps PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
|
|
||||||
add_library(Heffte::Heffte INTERFACE IMPORTED GLOBAL)
|
|
||||||
target_link_libraries(Heffte::Heffte INTERFACE Heffte)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
|
# fixup git hash to show "(unknown)" to avoid compilation failures.
|
||||||
|
file(READ ${heffte_project_SOURCE_DIR}/include/heffte_config.cmake.h HEFFTE_CFG_FILE_TEXT)
|
||||||
|
string(REPLACE "@Heffte_GIT_HASH@" "(unknown)" HEFFTE_CFG_FILE_TEXT "${HEFFTE_CFG_FILE_TEXT}")
|
||||||
|
file(WRITE ${heffte_project_SOURCE_DIR}/include/heffte_config.cmake.h "${HEFFTE_CFG_FILE_TEXT}")
|
||||||
|
|
||||||
|
add_subdirectory(${heffte_project_SOURCE_DIR} ${heffte_project_BINARY_DIR} EXCLUDE_FROM_ALL)
|
||||||
|
add_library(Heffte::Heffte ALIAS Heffte)
|
||||||
|
if(BUILD_SHARED_LIBS_WAS_ON)
|
||||||
|
set(BUILD_SHARED_LIBS ON)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
target_compile_definitions(lammps PRIVATE -DFFT_HEFFTE "-DFFT_HEFFTE_${FFT_HEFFTE_BACKEND}")
|
target_compile_definitions(lammps PRIVATE -DFFT_HEFFTE "-DFFT_HEFFTE_${FFT_HEFFTE_BACKEND}")
|
||||||
target_link_libraries(lammps PRIVATE Heffte::Heffte)
|
target_link_libraries(lammps PRIVATE Heffte::Heffte)
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@ -8,8 +8,8 @@ option(DOWNLOAD_MDI "Download and compile the MDI library instead of using an al
|
|||||||
|
|
||||||
if(DOWNLOAD_MDI)
|
if(DOWNLOAD_MDI)
|
||||||
message(STATUS "MDI download requested - we will build our own")
|
message(STATUS "MDI download requested - we will build our own")
|
||||||
set(MDI_URL "https://github.com/MolSSI-MDI/MDI_Library/archive/v1.4.16.tar.gz" CACHE STRING "URL for MDI tarball")
|
set(MDI_URL "https://github.com/MolSSI-MDI/MDI_Library/archive/v1.4.26.tar.gz" CACHE STRING "URL for MDI tarball")
|
||||||
set(MDI_MD5 "407db44e2d79447ab5c1233af1965f65" CACHE STRING "MD5 checksum for MDI tarball")
|
set(MDI_MD5 "3124bb85259471e2a53a891f04bf697a" CACHE STRING "MD5 checksum for MDI tarball")
|
||||||
mark_as_advanced(MDI_URL)
|
mark_as_advanced(MDI_URL)
|
||||||
mark_as_advanced(MDI_MD5)
|
mark_as_advanced(MDI_MD5)
|
||||||
GetFallbackURL(MDI_URL MDI_FALLBACK)
|
GetFallbackURL(MDI_URL MDI_FALLBACK)
|
||||||
|
|||||||
@ -18,7 +18,9 @@ if(DOWNLOAD_QUIP)
|
|||||||
set(temp "${temp}F77FLAGS += -fpp -fixed -fPIC\n")
|
set(temp "${temp}F77FLAGS += -fpp -fixed -fPIC\n")
|
||||||
set(temp "${temp}F95_PRE_FILENAME_FLAG = -Tf\n")
|
set(temp "${temp}F95_PRE_FILENAME_FLAG = -Tf\n")
|
||||||
elseif(CMAKE_Fortran_COMPILER_ID STREQUAL GNU)
|
elseif(CMAKE_Fortran_COMPILER_ID STREQUAL GNU)
|
||||||
set(temp "${temp}FPP=${CMAKE_Fortran_COMPILER} -E -x f95-cpp-input\nOPTIM=${CMAKE_Fortran_FLAGS_${BTYPE}}\n")
|
# quip library uses GNU fortran extensions. If any more restrictive standards are set, reset them
|
||||||
|
string(REGEX REPLACE -std=f[0-9]+ -std=gnu _fopt "${CMAKE_Fortran_FLAGS_${BTYPE}}")
|
||||||
|
set(temp "${temp}FPP=${CMAKE_Fortran_COMPILER} -E -x f95-cpp-input\nOPTIM=${_fopt} -fmax-stack-var-size=6553600\n")
|
||||||
set(temp "${temp}DEFINES += -DGETARG_F2003 -DGETENV_F2003 -DGFORTRAN -DFORTRAN_UNDERSCORE\n")
|
set(temp "${temp}DEFINES += -DGETARG_F2003 -DGETENV_F2003 -DGFORTRAN -DFORTRAN_UNDERSCORE\n")
|
||||||
set(temp "${temp}F95FLAGS += -x f95-cpp-input -ffree-line-length-none -ffree-form -fno-second-underscore -fPIC\n")
|
set(temp "${temp}F95FLAGS += -x f95-cpp-input -ffree-line-length-none -ffree-form -fno-second-underscore -fPIC\n")
|
||||||
set(temp "${temp}F77FLAGS += -x f77-cpp-input -fno-second-underscore -fPIC\n")
|
set(temp "${temp}F77FLAGS += -x f77-cpp-input -fno-second-underscore -fPIC\n")
|
||||||
@ -56,7 +58,7 @@ if(DOWNLOAD_QUIP)
|
|||||||
GIT_SUBMODULES "src/fox;src/GAP"
|
GIT_SUBMODULES "src/fox;src/GAP"
|
||||||
PATCH_COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/quip.config <SOURCE_DIR>/arch/Makefile.lammps
|
PATCH_COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/quip.config <SOURCE_DIR>/arch/Makefile.lammps
|
||||||
CONFIGURE_COMMAND env QUIP_ARCH=lammps make config
|
CONFIGURE_COMMAND env QUIP_ARCH=lammps make config
|
||||||
BUILD_COMMAND env QUIP_ARCH=lammps make libquip
|
BUILD_COMMAND env QUIP_ARCH=lammps make -j1 libquip
|
||||||
INSTALL_COMMAND ""
|
INSTALL_COMMAND ""
|
||||||
BUILD_IN_SOURCE YES
|
BUILD_IN_SOURCE YES
|
||||||
BUILD_BYPRODUCTS <SOURCE_DIR>/build/lammps/${CMAKE_STATIC_LIBRARY_PREFIX}quip${CMAKE_STATIC_LIBRARY_SUFFIX}
|
BUILD_BYPRODUCTS <SOURCE_DIR>/build/lammps/${CMAKE_STATIC_LIBRARY_PREFIX}quip${CMAKE_STATIC_LIBRARY_SUFFIX}
|
||||||
|
|||||||
@ -21,9 +21,9 @@ else()
|
|||||||
set(PLUMED_CONFIG_OMP "--disable-openmp")
|
set(PLUMED_CONFIG_OMP "--disable-openmp")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(PLUMED_URL "https://github.com/plumed/plumed2/releases/download/v2.8.2/plumed-src-2.8.2.tgz"
|
set(PLUMED_URL "https://github.com/plumed/plumed2/releases/download/v2.8.3/plumed-src-2.8.3.tgz"
|
||||||
CACHE STRING "URL for PLUMED tarball")
|
CACHE STRING "URL for PLUMED tarball")
|
||||||
set(PLUMED_MD5 "599092b6a0aa6fff992612537ad98994" CACHE STRING "MD5 checksum of PLUMED tarball")
|
set(PLUMED_MD5 "76d23cd394eba9e6530316ed1184e219" CACHE STRING "MD5 checksum of PLUMED tarball")
|
||||||
|
|
||||||
mark_as_advanced(PLUMED_URL)
|
mark_as_advanced(PLUMED_URL)
|
||||||
mark_as_advanced(PLUMED_MD5)
|
mark_as_advanced(PLUMED_MD5)
|
||||||
|
|||||||
@ -9,5 +9,8 @@ set(BUILD_OMP ON CACHE BOOL "" FORCE)
|
|||||||
get_filename_component(NVCC_WRAPPER_CMD ${CMAKE_CURRENT_SOURCE_DIR}/../lib/kokkos/bin/nvcc_wrapper ABSOLUTE)
|
get_filename_component(NVCC_WRAPPER_CMD ${CMAKE_CURRENT_SOURCE_DIR}/../lib/kokkos/bin/nvcc_wrapper ABSOLUTE)
|
||||||
set(CMAKE_CXX_COMPILER ${NVCC_WRAPPER_CMD} CACHE FILEPATH "" FORCE)
|
set(CMAKE_CXX_COMPILER ${NVCC_WRAPPER_CMD} CACHE FILEPATH "" FORCE)
|
||||||
|
|
||||||
|
# If KSPACE is also enabled, use CUFFT for FFTs
|
||||||
|
set(FFT_KOKKOS "CUFFT" CACHE STRING "" FORCE)
|
||||||
|
|
||||||
# hide deprecation warnings temporarily for stable release
|
# hide deprecation warnings temporarily for stable release
|
||||||
set(Kokkos_ENABLE_DEPRECATION_WARNINGS OFF CACHE BOOL "" FORCE)
|
set(Kokkos_ENABLE_DEPRECATION_WARNINGS OFF CACHE BOOL "" FORCE)
|
||||||
|
|||||||
@ -12,6 +12,9 @@ set(BUILD_OMP ON CACHE BOOL "" FORCE)
|
|||||||
set(CMAKE_CXX_COMPILER hipcc CACHE STRING "" FORCE)
|
set(CMAKE_CXX_COMPILER hipcc CACHE STRING "" FORCE)
|
||||||
set(CMAKE_TUNE_FLAGS "-munsafe-fp-atomics" CACHE STRING "" FORCE)
|
set(CMAKE_TUNE_FLAGS "-munsafe-fp-atomics" CACHE STRING "" FORCE)
|
||||||
|
|
||||||
|
# If KSPACE is also enabled, use CUFFT for FFTs
|
||||||
|
set(FFT_KOKKOS "HIPFFT" CACHE STRING "" FORCE)
|
||||||
|
|
||||||
# hide deprecation warnings temporarily for stable release
|
# hide deprecation warnings temporarily for stable release
|
||||||
set(Kokkos_ENABLE_DEPRECATION_WARNINGS OFF CACHE BOOL "" FORCE)
|
set(Kokkos_ENABLE_DEPRECATION_WARNINGS OFF CACHE BOOL "" FORCE)
|
||||||
|
|
||||||
|
|||||||
@ -100,6 +100,7 @@ html: xmlgen $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK) $(MATHJAX)
|
|||||||
env LC_ALL=C grep -n ' :[a-z]\+`' $(RSTDIR)/*.rst ;\
|
env LC_ALL=C grep -n ' :[a-z]\+`' $(RSTDIR)/*.rst ;\
|
||||||
env LC_ALL=C grep -n ' `[^`]\+<[a-z][^`]\+`[^_]' $(RSTDIR)/*.rst ;\
|
env LC_ALL=C grep -n ' `[^`]\+<[a-z][^`]\+`[^_]' $(RSTDIR)/*.rst ;\
|
||||||
env LC_ALL=C grep -n ':\(ref\|doc\):[^`]' $(RSTDIR)/*.rst ;\
|
env LC_ALL=C grep -n ':\(ref\|doc\):[^`]' $(RSTDIR)/*.rst ;\
|
||||||
|
env LC_ALL=C grep -n '\(ref\|doc\)`[^`]' $(RSTDIR)/*.rst ;\
|
||||||
$(PYTHON) $(BUILDDIR)/utils/check-styles.py -s ../src -d src ;\
|
$(PYTHON) $(BUILDDIR)/utils/check-styles.py -s ../src -d src ;\
|
||||||
echo "############################################" ;\
|
echo "############################################" ;\
|
||||||
deactivate ;\
|
deactivate ;\
|
||||||
@ -182,6 +183,7 @@ pdf: xmlgen $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK)
|
|||||||
env LC_ALL=C grep -n ' :[a-z]\+`' $(RSTDIR)/*.rst ;\
|
env LC_ALL=C grep -n ' :[a-z]\+`' $(RSTDIR)/*.rst ;\
|
||||||
env LC_ALL=C grep -n ' `[^`]\+<[a-z][^`]\+`[^_]' $(RSTDIR)/*.rst ;\
|
env LC_ALL=C grep -n ' `[^`]\+<[a-z][^`]\+`[^_]' $(RSTDIR)/*.rst ;\
|
||||||
env LC_ALL=C grep -n ':\(ref\|doc\):[^`]' $(RSTDIR)/*.rst ;\
|
env LC_ALL=C grep -n ':\(ref\|doc\):[^`]' $(RSTDIR)/*.rst ;\
|
||||||
|
env LC_ALL=C grep -n '\(ref\|doc\)`[^`]' $(RSTDIR)/*.rst ;\
|
||||||
$(PYTHON) utils/check-styles.py -s ../src -d src ;\
|
$(PYTHON) utils/check-styles.py -s ../src -d src ;\
|
||||||
echo "############################################" ;\
|
echo "############################################" ;\
|
||||||
deactivate ;\
|
deactivate ;\
|
||||||
@ -231,6 +233,7 @@ role_check :
|
|||||||
@( env LC_ALL=C grep -n ' :[a-z]\+`' $(RSTDIR)/*.rst && exit 1 || : )
|
@( env LC_ALL=C grep -n ' :[a-z]\+`' $(RSTDIR)/*.rst && exit 1 || : )
|
||||||
@( env LC_ALL=C grep -n ' `[^`]\+<[a-z][^`]\+`[^_]' $(RSTDIR)/*.rst && exit 1 || : )
|
@( env LC_ALL=C grep -n ' `[^`]\+<[a-z][^`]\+`[^_]' $(RSTDIR)/*.rst && exit 1 || : )
|
||||||
@( env LC_ALL=C grep -n ':\(ref\|doc\):[^`]' $(RSTDIR)/*.rst && exit 1 || : )
|
@( env LC_ALL=C grep -n ':\(ref\|doc\):[^`]' $(RSTDIR)/*.rst && exit 1 || : )
|
||||||
|
@( env LC_ALL=C grep -n '\(ref\|doc\)`[^`]' $(RSTDIR)/*.rst && exit 1 || : )
|
||||||
|
|
||||||
link_check : $(VENV) html
|
link_check : $(VENV) html
|
||||||
@(\
|
@(\
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
.TH LAMMPS "1" "21 November 2023" "2023-11-21"
|
.TH LAMMPS "1" "7 February 2024" "2024-02-07"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
.B LAMMPS
|
.B LAMMPS
|
||||||
\- Molecular Dynamics Simulator. Version 21 November 2023
|
\- Molecular Dynamics Simulator. Version 7 February 2024
|
||||||
|
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B lmp
|
.B lmp
|
||||||
|
|||||||
@ -877,6 +877,9 @@ Bibliography
|
|||||||
**(PLUMED)**
|
**(PLUMED)**
|
||||||
G.A. Tribello, M. Bonomi, D. Branduardi, C. Camilloni and G. Bussi, Comp. Phys. Comm 185, 604 (2014)
|
G.A. Tribello, M. Bonomi, D. Branduardi, C. Camilloni and G. Bussi, Comp. Phys. Comm 185, 604 (2014)
|
||||||
|
|
||||||
|
**(Pavlov)**
|
||||||
|
D Pavlov, V Galigerov, D Kolotinskii, V Nikolskiy, V Stegailov, International Journal of High Performance Computing Applications, 38, 34-49 (2024).
|
||||||
|
|
||||||
**(Paquay)**
|
**(Paquay)**
|
||||||
Paquay and Kusters, Biophys. J., 110, 6, (2016). preprint available at `arXiv:1411.3019 <https://arxiv.org/abs/1411.3019/>`_.
|
Paquay and Kusters, Biophys. J., 110, 6, (2016). preprint available at `arXiv:1411.3019 <https://arxiv.org/abs/1411.3019/>`_.
|
||||||
|
|
||||||
|
|||||||
@ -122,32 +122,39 @@ Code Coverage and Unit Testing (CMake only)
|
|||||||
-------------------------------------------
|
-------------------------------------------
|
||||||
|
|
||||||
The LAMMPS code is subject to multiple levels of automated testing
|
The LAMMPS code is subject to multiple levels of automated testing
|
||||||
during development: integration testing (i.e. whether the code compiles
|
during development:
|
||||||
on various platforms and with a variety of settings), unit testing
|
|
||||||
(i.e. whether certain individual parts of the code produce the expected
|
- Integration testing (i.e. whether the code compiles
|
||||||
results for given inputs), run testing (whether selected complete input
|
on various platforms and with a variety of compilers and settings),
|
||||||
decks run without crashing for multiple configurations), and regression
|
- Unit testing (i.e. whether certain functions or classes of the code
|
||||||
testing (i.e. whether selected input examples reproduce the same
|
produce the expected results for given inputs),
|
||||||
results over a given number of steps and operations within a given
|
- Run testing (i.e. whether selected input decks can run to completion
|
||||||
error margin). The status of this automated testing can be viewed on
|
without crashing for multiple configurations),
|
||||||
`https://ci.lammps.org <https://ci.lammps.org>`_.
|
- Regression testing (i.e. whether selected input examples reproduce the
|
||||||
|
same results over a given number of steps and operations within a
|
||||||
|
given error margin).
|
||||||
|
|
||||||
|
The status of this automated testing can be viewed on `https://ci.lammps.org
|
||||||
|
<https://ci.lammps.org>`_.
|
||||||
|
|
||||||
The scripts and inputs for integration, run, and regression testing
|
The scripts and inputs for integration, run, and regression testing
|
||||||
are maintained in a
|
are maintained in a
|
||||||
`separate repository <https://github.com/lammps/lammps-testing>`_
|
`separate repository <https://github.com/lammps/lammps-testing>`_
|
||||||
of the LAMMPS project on GitHub.
|
of the LAMMPS project on GitHub. A few tests are also run as GitHub
|
||||||
|
Actions and their configuration files are in the ``.github/workflows/``
|
||||||
|
folder of the LAMMPS git tree.
|
||||||
|
|
||||||
The unit testing facility is integrated into the CMake build process
|
The unit testing facility is integrated into the CMake build process of
|
||||||
of the LAMMPS source code distribution itself. It can be enabled by
|
the LAMMPS source code distribution itself. It can be enabled by
|
||||||
setting ``-D ENABLE_TESTING=on`` during the CMake configuration step.
|
setting ``-D ENABLE_TESTING=on`` during the CMake configuration step.
|
||||||
It requires the `YAML <https://pyyaml.org/>`_ library and development
|
It requires the `YAML <https://pyyaml.org/>`_ library and matching
|
||||||
headers (if those are not found locally a recent version will be
|
development headers to compile (if those are not found locally a recent
|
||||||
downloaded and compiled along with LAMMPS and the test program) to
|
version of that library will be downloaded and compiled along with
|
||||||
compile and will download and compile a specific recent version of the
|
LAMMPS and the test programs) and will download and compile a specific
|
||||||
`Googletest <https://github.com/google/googletest/>`_ C++ test framework
|
version of the `GoogleTest <https://github.com/google/googletest/>`_ C++
|
||||||
for implementing the tests.
|
test framework that is used to implement the tests.
|
||||||
|
|
||||||
.. admonition:: Software version requirements for testing
|
.. admonition:: Software version and LAMMPS configuration requirements
|
||||||
:class: note
|
:class: note
|
||||||
|
|
||||||
The compiler and library version requirements for the testing
|
The compiler and library version requirements for the testing
|
||||||
@ -155,7 +162,7 @@ for implementing the tests.
|
|||||||
example the default GNU C++ and Fortran compilers of RHEL/CentOS 7.x
|
example the default GNU C++ and Fortran compilers of RHEL/CentOS 7.x
|
||||||
(version 4.8.x) are not sufficient. The CMake configuration will try
|
(version 4.8.x) are not sufficient. The CMake configuration will try
|
||||||
to detect incompatible versions and either skip incompatible tests or
|
to detect incompatible versions and either skip incompatible tests or
|
||||||
stop with an error. Also the number of tests will depend on
|
stop with an error. Also the number of available tests will depend on
|
||||||
installed LAMMPS packages, development environment, operating system,
|
installed LAMMPS packages, development environment, operating system,
|
||||||
and configuration settings.
|
and configuration settings.
|
||||||
|
|
||||||
@ -234,12 +241,31 @@ will be skipped if prerequisite features are not available in LAMMPS.
|
|||||||
time. Preference is given to parts of the code base that are easy to
|
time. Preference is given to parts of the code base that are easy to
|
||||||
test or commonly used.
|
test or commonly used.
|
||||||
|
|
||||||
Tests for styles of the same kind of style (e.g. pair styles or bond
|
Tests as shown by the ``ctest`` program are command lines defined in the
|
||||||
styles) are performed with the same test executable using different
|
``CMakeLists.txt`` files in the ``unittest`` directory tree. A few
|
||||||
input files in YAML format. So to add a test for another style of the
|
tests simply execute LAMMPS with specific command line flags and check
|
||||||
same kind it may be sufficient to add a suitable YAML file.
|
the output to the screen for expected content. A large number of unit
|
||||||
:doc:`Detailed instructions for adding tests <Developer_unittest>` are
|
tests are special tests programs using the `GoogleTest framework
|
||||||
provided in the Programmer Guide part of the manual.
|
<https://github.com/google/googletest/>`_ and linked to the LAMMPS
|
||||||
|
library that test individual functions or create a LAMMPS class
|
||||||
|
instance, execute one or more commands and check data inside the LAMMPS
|
||||||
|
class hierarchy. There are also tests for the C-library, Fortran, and
|
||||||
|
Python module interfaces to LAMMPS. The Python tests use the Python
|
||||||
|
"unittest" module in a similar fashion than the others use `GoogleTest`.
|
||||||
|
These special test programs are structured to perform multiple
|
||||||
|
individual tests internally and each of those contains several checks
|
||||||
|
(aka assertions) for internal data being changed as expected.
|
||||||
|
|
||||||
|
Tests for force computing or modifying styles (e.g. styles for non-bonded
|
||||||
|
and bonded interactions and selected fixes) are run by using a more generic
|
||||||
|
test program that reads its input from files in YAML format. The YAML file
|
||||||
|
provides the information on how to customized the test program to test
|
||||||
|
a specific style and - if needed - with specific settings.
|
||||||
|
To add a test for another, similar style (e.g. a new pair style) it is
|
||||||
|
usually sufficient to add a suitable YAML file. :doc:`Detailed
|
||||||
|
instructions for adding tests <Developer_unittest>` are provided in the
|
||||||
|
Programmer Guide part of the manual. A description of what happens
|
||||||
|
during the tests is given below.
|
||||||
|
|
||||||
Unit tests for force styles
|
Unit tests for force styles
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|||||||
@ -44,7 +44,7 @@ require use of an FFT library to compute 1d FFTs. The KISS FFT
|
|||||||
library is included with LAMMPS, but other libraries can be faster.
|
library is included with LAMMPS, but other libraries can be faster.
|
||||||
LAMMPS can use them if they are available on your system.
|
LAMMPS can use them if they are available on your system.
|
||||||
|
|
||||||
.. versionadded:: TBD
|
.. versionadded:: 7Feb2024
|
||||||
|
|
||||||
Alternatively, LAMMPS can use the `heFFTe
|
Alternatively, LAMMPS can use the `heFFTe
|
||||||
<https://icl-utk-edu.github.io/heffte/>`_ library for the MPI
|
<https://icl-utk-edu.github.io/heffte/>`_ library for the MPI
|
||||||
@ -59,15 +59,19 @@ libraries and better pipelining for packing and communication.
|
|||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
-D FFT=value # FFTW3 or MKL or KISS, default is FFTW3 if found, else KISS
|
-D FFT=value # FFTW3 or MKL or KISS, default is FFTW3 if found, else KISS
|
||||||
|
-D FFT_KOKKOS=value # FFTW3 or MKL or KISS or CUFFT or HIPFFT, default is KISS
|
||||||
-D FFT_SINGLE=value # yes or no (default), no = double precision
|
-D FFT_SINGLE=value # yes or no (default), no = double precision
|
||||||
-D FFT_PACK=value # array (default) or pointer or memcpy
|
-D FFT_PACK=value # array (default) or pointer or memcpy
|
||||||
-D FFT_USE_HEFFTE=value # yes or no (default), yes links to heFFTe
|
-D FFT_USE_HEFFTE=value # yes or no (default), yes links to heFFTe
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
The values for the FFT variable must be in upper-case. This is
|
When the Kokkos variant of a package is compiled and selected at run time,
|
||||||
an exception to the rule that all CMake variables can be specified
|
the FFT library selected by the FFT_KOKKOS variable applies. Otherwise,
|
||||||
with lower-case values.
|
the FFT library selected by the FFT variable applies.
|
||||||
|
The same FFT settings apply to both. FFT_KOKKOS must be compatible with the
|
||||||
|
Kokkos back end - for example, when using the CUDA back end of Kokkos,
|
||||||
|
you must use either CUFFT or KISS.
|
||||||
|
|
||||||
Usually these settings are all that is needed. If FFTW3 is
|
Usually these settings are all that is needed. If FFTW3 is
|
||||||
selected, then CMake will try to detect, if threaded FFTW
|
selected, then CMake will try to detect, if threaded FFTW
|
||||||
@ -106,6 +110,8 @@ libraries and better pipelining for packing and communication.
|
|||||||
|
|
||||||
FFT_INC = -DFFT_FFTW3 # -DFFT_FFTW3, -DFFT_FFTW (same as -DFFT_FFTW3), -DFFT_MKL, or -DFFT_KISS
|
FFT_INC = -DFFT_FFTW3 # -DFFT_FFTW3, -DFFT_FFTW (same as -DFFT_FFTW3), -DFFT_MKL, or -DFFT_KISS
|
||||||
# default is KISS if not specified
|
# default is KISS if not specified
|
||||||
|
FFT_INC = -DFFT_KOKKOS_CUFFT # -DFFT_KOKKOS_{FFTW,FFTW3,MKL,CUFFT,HIPFFT,KISS}
|
||||||
|
# default is KISS if not specified
|
||||||
FFT_INC = -DFFT_SINGLE # do not specify for double precision
|
FFT_INC = -DFFT_SINGLE # do not specify for double precision
|
||||||
FFT_INC = -DFFT_FFTW_THREADS # enable using threaded FFTW3 libraries
|
FFT_INC = -DFFT_FFTW_THREADS # enable using threaded FFTW3 libraries
|
||||||
FFT_INC = -DFFT_MKL_THREADS # enable using threaded FFTs with MKL libraries
|
FFT_INC = -DFFT_MKL_THREADS # enable using threaded FFTs with MKL libraries
|
||||||
@ -116,6 +122,8 @@ libraries and better pipelining for packing and communication.
|
|||||||
|
|
||||||
FFT_INC = -I/usr/local/include
|
FFT_INC = -I/usr/local/include
|
||||||
FFT_PATH = -L/usr/local/lib
|
FFT_PATH = -L/usr/local/lib
|
||||||
|
FFT_LIB = -lhipfft # hipFFT either precision
|
||||||
|
FFT_LIB = -lcufft # cuFFT either precision
|
||||||
FFT_LIB = -lfftw3 # FFTW3 double precision
|
FFT_LIB = -lfftw3 # FFTW3 double precision
|
||||||
FFT_LIB = -lfftw3 -lfftw3_omp # FFTW3 double precision with threads (needs -DFFT_FFTW_THREADS)
|
FFT_LIB = -lfftw3 -lfftw3_omp # FFTW3 double precision with threads (needs -DFFT_FFTW_THREADS)
|
||||||
FFT_LIB = -lfftw3 -lfftw3f # FFTW3 single precision
|
FFT_LIB = -lfftw3 -lfftw3f # FFTW3 single precision
|
||||||
@ -178,6 +186,11 @@ The Intel MKL math library is part of the Intel compiler suite. It
|
|||||||
can be used with the Intel or GNU compiler (see the ``FFT_LIB`` setting
|
can be used with the Intel or GNU compiler (see the ``FFT_LIB`` setting
|
||||||
above).
|
above).
|
||||||
|
|
||||||
|
The cuFFT and hipFFT FFT libraries are packaged with NVIDIA's CUDA and
|
||||||
|
AMD's HIP installations, respectively. These FFT libraries require the
|
||||||
|
Kokkos acceleration package to be enabled and the Kokkos back end to be
|
||||||
|
GPU-resident (i.e., HIP or CUDA).
|
||||||
|
|
||||||
Performing 3d FFTs in parallel can be time-consuming due to data access
|
Performing 3d FFTs in parallel can be time-consuming due to data access
|
||||||
and required communication. This cost can be reduced by performing
|
and required communication. This cost can be reduced by performing
|
||||||
single-precision FFTs instead of double precision. Single precision
|
single-precision FFTs instead of double precision. Single precision
|
||||||
@ -189,11 +202,11 @@ generally less than the difference in precision. Using the
|
|||||||
``-DFFT_SINGLE`` setting trades off a little accuracy for reduced memory
|
``-DFFT_SINGLE`` setting trades off a little accuracy for reduced memory
|
||||||
use and parallel communication costs for transposing 3d FFT data.
|
use and parallel communication costs for transposing 3d FFT data.
|
||||||
|
|
||||||
When using ``-DFFT_SINGLE`` with FFTW3, you may need to build the FFTW
|
When using ``-DFFT_SINGLE`` with FFTW3, you may need to ensure that
|
||||||
library a second time with support for single-precision.
|
the FFTW3 installation includes support for single-precision.
|
||||||
|
|
||||||
For FFTW3, do the following, which should produce the additional
|
When compiler FFTW3 from source, you can do the following, which should
|
||||||
library ``libfftw3f.a`` or ``libfftw3f.so``\ .
|
produce the additional libraries ``libfftw3f.a`` and/or ``libfftw3f.so``\ .
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
|
|||||||
@ -124,7 +124,7 @@ OPT.
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* :doc:`charmm (iko) <dihedral_charmm>`
|
* :doc:`charmm (iko) <dihedral_charmm>`
|
||||||
* :doc:`charmmfsw <dihedral_charmm>`
|
* :doc:`charmmfsw (k) <dihedral_charmm>`
|
||||||
* :doc:`class2 (ko) <dihedral_class2>`
|
* :doc:`class2 (ko) <dihedral_class2>`
|
||||||
* :doc:`cosine/shift/exp (o) <dihedral_cosine_shift_exp>`
|
* :doc:`cosine/shift/exp (o) <dihedral_cosine_shift_exp>`
|
||||||
* :doc:`fourier (io) <dihedral_fourier>`
|
* :doc:`fourier (io) <dihedral_fourier>`
|
||||||
|
|||||||
@ -61,6 +61,7 @@ OPT.
|
|||||||
* :doc:`controller <fix_controller>`
|
* :doc:`controller <fix_controller>`
|
||||||
* :doc:`damping/cundall <fix_damping_cundall>`
|
* :doc:`damping/cundall <fix_damping_cundall>`
|
||||||
* :doc:`deform (k) <fix_deform>`
|
* :doc:`deform (k) <fix_deform>`
|
||||||
|
* :doc:`deform/pressure <fix_deform_pressure>`
|
||||||
* :doc:`deposit <fix_deposit>`
|
* :doc:`deposit <fix_deposit>`
|
||||||
* :doc:`dpd/energy (k) <fix_dpd_energy>`
|
* :doc:`dpd/energy (k) <fix_dpd_energy>`
|
||||||
* :doc:`drag <fix_drag>`
|
* :doc:`drag <fix_drag>`
|
||||||
@ -262,6 +263,7 @@ OPT.
|
|||||||
* :doc:`wall/body/polyhedron <fix_wall_body_polyhedron>`
|
* :doc:`wall/body/polyhedron <fix_wall_body_polyhedron>`
|
||||||
* :doc:`wall/colloid <fix_wall>`
|
* :doc:`wall/colloid <fix_wall>`
|
||||||
* :doc:`wall/ees <fix_wall_ees>`
|
* :doc:`wall/ees <fix_wall_ees>`
|
||||||
|
* :doc:`wall/flow (k) <fix_wall_flow>`
|
||||||
* :doc:`wall/gran (k) <fix_wall_gran>`
|
* :doc:`wall/gran (k) <fix_wall_gran>`
|
||||||
* :doc:`wall/gran/region <fix_wall_gran_region>`
|
* :doc:`wall/gran/region <fix_wall_gran_region>`
|
||||||
* :doc:`wall/harmonic <fix_wall>`
|
* :doc:`wall/harmonic <fix_wall>`
|
||||||
|
|||||||
@ -146,7 +146,7 @@ OPT.
|
|||||||
* :doc:`lj/charmm/coul/long/soft (o) <pair_fep_soft>`
|
* :doc:`lj/charmm/coul/long/soft (o) <pair_fep_soft>`
|
||||||
* :doc:`lj/charmm/coul/msm (o) <pair_charmm>`
|
* :doc:`lj/charmm/coul/msm (o) <pair_charmm>`
|
||||||
* :doc:`lj/charmmfsw/coul/charmmfsh <pair_charmm>`
|
* :doc:`lj/charmmfsw/coul/charmmfsh <pair_charmm>`
|
||||||
* :doc:`lj/charmmfsw/coul/long <pair_charmm>`
|
* :doc:`lj/charmmfsw/coul/long (k) <pair_charmm>`
|
||||||
* :doc:`lj/class2 (gko) <pair_class2>`
|
* :doc:`lj/class2 (gko) <pair_class2>`
|
||||||
* :doc:`lj/class2/coul/cut (ko) <pair_class2>`
|
* :doc:`lj/class2/coul/cut (ko) <pair_class2>`
|
||||||
* :doc:`lj/class2/coul/cut/soft <pair_fep_soft>`
|
* :doc:`lj/class2/coul/cut/soft <pair_fep_soft>`
|
||||||
@ -256,6 +256,7 @@ OPT.
|
|||||||
* :doc:`rann <pair_rann>`
|
* :doc:`rann <pair_rann>`
|
||||||
* :doc:`reaxff (ko) <pair_reaxff>`
|
* :doc:`reaxff (ko) <pair_reaxff>`
|
||||||
* :doc:`rebo (io) <pair_airebo>`
|
* :doc:`rebo (io) <pair_airebo>`
|
||||||
|
* :doc:`rebomos (o) <pair_rebomos>`
|
||||||
* :doc:`resquared (go) <pair_resquared>`
|
* :doc:`resquared (go) <pair_resquared>`
|
||||||
* :doc:`saip/metal (t) <pair_saip_metal>`
|
* :doc:`saip/metal (t) <pair_saip_metal>`
|
||||||
* :doc:`sdpd/taitwater/isothermal <pair_sdpd_taitwater_isothermal>`
|
* :doc:`sdpd/taitwater/isothermal <pair_sdpd_taitwater_isothermal>`
|
||||||
|
|||||||
@ -129,7 +129,7 @@ USER-REAXC.
|
|||||||
USER-REAXC package
|
USER-REAXC package
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
.. deprecated:: TBD
|
.. deprecated:: 7Feb2024
|
||||||
|
|
||||||
The USER-REAXC package has been renamed to :ref:`REAXFF <PKG-REAXFF>`.
|
The USER-REAXC package has been renamed to :ref:`REAXFF <PKG-REAXFF>`.
|
||||||
In the process also the pair style and related fixes were renamed to use
|
In the process also the pair style and related fixes were renamed to use
|
||||||
|
|||||||
@ -18,6 +18,7 @@ Available topics in mostly chronological order are:
|
|||||||
- `Setting flags in the constructor`_
|
- `Setting flags in the constructor`_
|
||||||
- `Rename of pack/unpack_comm() to pack/unpack_forward_comm()`_
|
- `Rename of pack/unpack_comm() to pack/unpack_forward_comm()`_
|
||||||
- `Use ev_init() to initialize variables derived from eflag and vflag`_
|
- `Use ev_init() to initialize variables derived from eflag and vflag`_
|
||||||
|
- `Use utils::count_words() functions instead of atom->count_words()`_
|
||||||
- `Use utils::numeric() functions instead of force->numeric()`_
|
- `Use utils::numeric() functions instead of force->numeric()`_
|
||||||
- `Use utils::open_potential() function to open potential files`_
|
- `Use utils::open_potential() function to open potential files`_
|
||||||
- `Use symbolic Atom and AtomVec constants instead of numerical values`_
|
- `Use symbolic Atom and AtomVec constants instead of numerical values`_
|
||||||
@ -130,6 +131,41 @@ Not applying this change will not cause a compilation error, but
|
|||||||
can lead to inconsistent behavior and incorrect tallying of
|
can lead to inconsistent behavior and incorrect tallying of
|
||||||
energy or virial.
|
energy or virial.
|
||||||
|
|
||||||
|
Use utils::count_words() functions instead of atom->count_words()
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. versionchanged:: 2Jun2020
|
||||||
|
|
||||||
|
The "count_words()" functions for parsing text have been moved from the
|
||||||
|
Atom class to the :doc:`utils namespace <Developer_utils>`. The
|
||||||
|
"count_words()" function in "utils" uses the Tokenizer class internally
|
||||||
|
to split a line into words and count them, thus it will not modify the
|
||||||
|
argument string as the function in the Atoms class did and thus had a
|
||||||
|
variant using a copy buffer. Unlike the old version, the new version
|
||||||
|
does not remove comments. For that you can use the
|
||||||
|
:cpp:func:`utils::trim_comment() function
|
||||||
|
<LAMMPS_NS::utils::trim_comment>` as shown in the example below.
|
||||||
|
|
||||||
|
Old:
|
||||||
|
|
||||||
|
.. code-block:: c++
|
||||||
|
|
||||||
|
nwords = atom->count_words(line);
|
||||||
|
int nwords = atom->count_words(buf);
|
||||||
|
|
||||||
|
New:
|
||||||
|
|
||||||
|
.. code-block:: c++
|
||||||
|
|
||||||
|
nwords = utils::count_words(line);
|
||||||
|
int nwords = utils::count_words(utils::trim_comment(buf));
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
|
||||||
|
:cpp:func:`utils::count_words() <LAMMPS_NS::utils::count_words>`,
|
||||||
|
:cpp:func:`utils::trim_comments() <LAMMPS_NS::utils::trim_comments>`
|
||||||
|
|
||||||
|
|
||||||
Use utils::numeric() functions instead of force->numeric()
|
Use utils::numeric() functions instead of force->numeric()
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
@ -137,11 +173,12 @@ Use utils::numeric() functions instead of force->numeric()
|
|||||||
|
|
||||||
The "numeric()" conversion functions (including "inumeric()",
|
The "numeric()" conversion functions (including "inumeric()",
|
||||||
"bnumeric()", and "tnumeric()") have been moved from the Force class to
|
"bnumeric()", and "tnumeric()") have been moved from the Force class to
|
||||||
the utils namespace. Also they take an additional argument that selects
|
the :doc:`utils namespace <Developer_utils>`. Also they take an
|
||||||
whether the ``Error::all()`` or ``Error::one()`` function should be
|
additional argument that selects whether the ``Error::all()`` or
|
||||||
called in case of an error. The former should be used when *all* MPI
|
``Error::one()`` function should be called in case of an error. The
|
||||||
processes call the conversion function and the latter *must* be used
|
former should be used when *all* MPI processes call the conversion
|
||||||
when they are called from only one or a subset of the MPI processes.
|
function and the latter *must* be used when they are called from only
|
||||||
|
one or a subset of the MPI processes.
|
||||||
|
|
||||||
Old:
|
Old:
|
||||||
|
|
||||||
|
|||||||
@ -315,6 +315,10 @@ of the contents of the :f:mod:`LIBLAMMPS` Fortran interface to LAMMPS.
|
|||||||
:ftype extract_variable: function
|
:ftype extract_variable: function
|
||||||
:f set_variable: :f:subr:`set_variable`
|
:f set_variable: :f:subr:`set_variable`
|
||||||
:ftype set_variable: subroutine
|
:ftype set_variable: subroutine
|
||||||
|
:f set_string_variable: :f:subr:`set_set_string_variable`
|
||||||
|
:ftype set_string_variable: subroutine
|
||||||
|
:f set_internal_variable: :f:subr:`set_internal_variable`
|
||||||
|
:ftype set_internal_variable: subroutine
|
||||||
:f gather_atoms: :f:subr:`gather_atoms`
|
:f gather_atoms: :f:subr:`gather_atoms`
|
||||||
:ftype gather_atoms: subroutine
|
:ftype gather_atoms: subroutine
|
||||||
:f gather_atoms_concat: :f:subr:`gather_atoms_concat`
|
:f gather_atoms_concat: :f:subr:`gather_atoms_concat`
|
||||||
@ -1398,7 +1402,28 @@ Procedures Bound to the :f:type:`lammps` Derived Type
|
|||||||
|
|
||||||
Set the value of a string-style variable.
|
Set the value of a string-style variable.
|
||||||
|
|
||||||
.. versionadded:: 3Nov2022
|
.. deprecated:: 7Feb2024
|
||||||
|
|
||||||
|
This function assigns a new value from the string *str* to the string-style
|
||||||
|
variable *name*\ . If *name* does not exist or is not a string-style
|
||||||
|
variable, an error is generated.
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
|
||||||
|
This subroutine is deprecated and :f:subr:`set_string_variable`
|
||||||
|
should be used instead.
|
||||||
|
|
||||||
|
:p character(len=*) name: name of the variable
|
||||||
|
:p character(len=*) str: new value to assign to the variable
|
||||||
|
:to: :cpp:func:`lammps_set_variable`
|
||||||
|
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. f:subroutine:: set_string_variable(name, str)
|
||||||
|
|
||||||
|
Set the value of a string-style variable.
|
||||||
|
|
||||||
|
.. versionadded:: 7Feb2024
|
||||||
|
|
||||||
This function assigns a new value from the string *str* to the string-style
|
This function assigns a new value from the string *str* to the string-style
|
||||||
variable *name*\ . If *name* does not exist or is not a string-style
|
variable *name*\ . If *name* does not exist or is not a string-style
|
||||||
@ -1406,7 +1431,23 @@ Procedures Bound to the :f:type:`lammps` Derived Type
|
|||||||
|
|
||||||
:p character(len=*) name: name of the variable
|
:p character(len=*) name: name of the variable
|
||||||
:p character(len=*) str: new value to assign to the variable
|
:p character(len=*) str: new value to assign to the variable
|
||||||
:to: :cpp:func:`lammps_set_variable`
|
:to: :cpp:func:`lammps_set_string_variable`
|
||||||
|
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. f:subroutine:: set_internal_variable(name, val)
|
||||||
|
|
||||||
|
Set the value of a internal-style variable.
|
||||||
|
|
||||||
|
.. versionadded:: 7Feb2024
|
||||||
|
|
||||||
|
This function assigns a new value from the floating-point number *val* to
|
||||||
|
the internal-style variable *name*\ . If *name* does not exist or is not
|
||||||
|
an internal-style variable, an error is generated.
|
||||||
|
|
||||||
|
:p character(len=*) name: name of the variable
|
||||||
|
:p read(c_double) val: new value to assign to the variable
|
||||||
|
:to: :cpp:func:`lammps_set_internal_variable`
|
||||||
|
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
|||||||
@ -349,6 +349,8 @@ Some common LAMMPS specific variables
|
|||||||
- when set to ``name`` the LAMMPS executable and library will be called ``lmp_name`` and ``liblammps_name.a``
|
- when set to ``name`` the LAMMPS executable and library will be called ``lmp_name`` and ``liblammps_name.a``
|
||||||
* - ``FFT``
|
* - ``FFT``
|
||||||
- select which FFT library to use: ``FFTW3``, ``MKL``, ``KISS`` (default, unless FFTW3 is found)
|
- select which FFT library to use: ``FFTW3``, ``MKL``, ``KISS`` (default, unless FFTW3 is found)
|
||||||
|
* - ``FFT_KOKKOS``
|
||||||
|
- select which FFT library to use in Kokkos-enabled styles: ``FFTW3``, ``MKL``, ``HIPFFT``, ``CUFFT``, ``KISS`` (default)
|
||||||
* - ``FFT_SINGLE``
|
* - ``FFT_SINGLE``
|
||||||
- select whether to use single precision FFTs (default: ``off``)
|
- select whether to use single precision FFTs (default: ``off``)
|
||||||
* - ``WITH_JPEG``
|
* - ``WITH_JPEG``
|
||||||
|
|||||||
@ -45,10 +45,15 @@ atoms, and should be used for granular system instead of the fix style
|
|||||||
|
|
||||||
To model heat conduction, one must add the temperature and heatflow
|
To model heat conduction, one must add the temperature and heatflow
|
||||||
atom variables with:
|
atom variables with:
|
||||||
|
|
||||||
* :doc:`fix property/atom <fix_property_atom>`
|
* :doc:`fix property/atom <fix_property_atom>`
|
||||||
|
|
||||||
a temperature integration fix
|
a temperature integration fix
|
||||||
|
|
||||||
* :doc:`fix heat/flow <fix_heat_flow>`
|
* :doc:`fix heat/flow <fix_heat_flow>`
|
||||||
|
|
||||||
and a heat conduction option defined in both
|
and a heat conduction option defined in both
|
||||||
|
|
||||||
* :doc:`pair_style granular <pair_granular>`
|
* :doc:`pair_style granular <pair_granular>`
|
||||||
* :doc:`fix wall/gran <fix_wall_gran>`
|
* :doc:`fix wall/gran <fix_wall_gran>`
|
||||||
|
|
||||||
|
|||||||
@ -52,8 +52,8 @@ JSON
|
|||||||
"ke": 2.4962152903997174569
|
"ke": 2.4962152903997174569
|
||||||
}
|
}
|
||||||
|
|
||||||
YAML format thermo_style output
|
YAML format thermo_style or dump_style output
|
||||||
===============================
|
=============================================
|
||||||
|
|
||||||
Extracting data from log file
|
Extracting data from log file
|
||||||
-----------------------------
|
-----------------------------
|
||||||
@ -112,6 +112,9 @@ of that run:
|
|||||||
Number of runs: 2
|
Number of runs: 2
|
||||||
TotEng = -4.62140097780047
|
TotEng = -4.62140097780047
|
||||||
|
|
||||||
|
Extracting data from dump file
|
||||||
|
------------------------------
|
||||||
|
|
||||||
.. versionadded:: 4May2022
|
.. versionadded:: 4May2022
|
||||||
|
|
||||||
YAML format output has been added to multiple commands in LAMMPS,
|
YAML format output has been added to multiple commands in LAMMPS,
|
||||||
|
|||||||
@ -9,6 +9,8 @@ fixes, or variables in LAMMPS using the following functions:
|
|||||||
- :cpp:func:`lammps_extract_variable_datatype`
|
- :cpp:func:`lammps_extract_variable_datatype`
|
||||||
- :cpp:func:`lammps_extract_variable`
|
- :cpp:func:`lammps_extract_variable`
|
||||||
- :cpp:func:`lammps_set_variable`
|
- :cpp:func:`lammps_set_variable`
|
||||||
|
- :cpp:func:`lammps_set_string_variable`
|
||||||
|
- :cpp:func:`lammps_set_internal_variable`
|
||||||
- :cpp:func:`lammps_variable_info`
|
- :cpp:func:`lammps_variable_info`
|
||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
@ -38,6 +40,16 @@ fixes, or variables in LAMMPS using the following functions:
|
|||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
|
.. doxygenfunction:: lammps_set_string_variable
|
||||||
|
:project: progguide
|
||||||
|
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
.. doxygenfunction:: lammps_set_internal_variable
|
||||||
|
:project: progguide
|
||||||
|
|
||||||
|
-----------------------
|
||||||
|
|
||||||
.. doxygenfunction:: lammps_variable_info
|
.. doxygenfunction:: lammps_variable_info
|
||||||
:project: progguide
|
:project: progguide
|
||||||
|
|
||||||
|
|||||||
@ -96,6 +96,39 @@ list all non-conforming lines. By adding the `-f` flag to the command
|
|||||||
line, they will modify the flagged files to try to remove the detected
|
line, they will modify the flagged files to try to remove the detected
|
||||||
issues.
|
issues.
|
||||||
|
|
||||||
|
Constants (strongly preferred)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Global or per-file constants should be declared as `static constexpr`
|
||||||
|
variables rather than via the pre-processor with `#define`. The name of
|
||||||
|
constants should be all uppercase. This has multiple advantages:
|
||||||
|
|
||||||
|
- constants are easily identified as such by their all upper case name
|
||||||
|
- rather than a pure text substitution during pre-processing, `constexpr
|
||||||
|
variables` have a type associated with them and are processed later in
|
||||||
|
the parsing process where the syntax checks and type specific
|
||||||
|
processing (e.g. via overloads) can be applied to them.
|
||||||
|
- compilers can emit a warning if the constant is not used and thus can
|
||||||
|
be removed (we regularly check for and remove dead code like this)
|
||||||
|
- there are no unexpected substitutions and thus confusing syntax errors
|
||||||
|
when compiling leading to, for instance, conflicts so that LAMMPS
|
||||||
|
cannot be compiled with certain combinations of packages (this *has*
|
||||||
|
happened multiple times in the past).
|
||||||
|
|
||||||
|
Pre-processor defines should be limited to macros (but consider C++
|
||||||
|
templates) and conditional compilation. If a per-processor define must
|
||||||
|
be used, it should be defined at the top of the .cpp file after the
|
||||||
|
include statements and at all cost it should be avoided to put them into
|
||||||
|
header files.
|
||||||
|
|
||||||
|
Some sets of commonly used constants are provided in the ``MathConst``
|
||||||
|
and ``EwaldConst`` namespaces and implemented in the files
|
||||||
|
``math_const.h`` and ``ewald_const.h``, respectively.
|
||||||
|
|
||||||
|
There are always exceptions, special cases, and legacy code in LAMMPS,
|
||||||
|
so please contact the LAMMPS developers if you are not sure.
|
||||||
|
|
||||||
|
|
||||||
Placement of braces (strongly preferred)
|
Placement of braces (strongly preferred)
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
|||||||
@ -20,11 +20,28 @@ including Sikandar Mashayak (UIUC), Ray Shan (Sandia), and Dan Ibanez
|
|||||||
(Sandia). For more information on developing using Kokkos abstractions
|
(Sandia). For more information on developing using Kokkos abstractions
|
||||||
see the `Kokkos Wiki <https://github.com/kokkos/kokkos/wiki>`_.
|
see the `Kokkos Wiki <https://github.com/kokkos/kokkos/wiki>`_.
|
||||||
|
|
||||||
Kokkos currently provides support for 4 modes of execution (per MPI
|
.. note::
|
||||||
|
|
||||||
|
The Kokkos library is under active development and tracking the
|
||||||
|
availability of accelerator hardware, so is the KOKKOS package in
|
||||||
|
LAMMPS. This means that only a certain range of versions of the
|
||||||
|
Kokkos library are compatible with the KOKKOS package of a certain
|
||||||
|
range of LAMMPS versions. For that reason LAMMPS comes with a
|
||||||
|
bundled version of the Kokkos library that has been validated on
|
||||||
|
multiple platforms and may contain selected back-ported bug fixes
|
||||||
|
from upstream Kokkos versions. While it is possible to build LAMMPS
|
||||||
|
with an external version of Kokkos, it is untested and may result in
|
||||||
|
incorrect execution or crashes.
|
||||||
|
|
||||||
|
Kokkos currently provides full support for 4 modes of execution (per MPI
|
||||||
task). These are Serial (MPI-only for CPUs and Intel Phi), OpenMP
|
task). These are Serial (MPI-only for CPUs and Intel Phi), OpenMP
|
||||||
(threading for many-core CPUs and Intel Phi), CUDA (for NVIDIA
|
(threading for many-core CPUs and Intel Phi), CUDA (for NVIDIA GPUs) and
|
||||||
GPUs) and HIP (for AMD GPUs). You choose the mode at build time to
|
HIP (for AMD GPUs). Additional modes (e.g. OpenMP target, Intel data
|
||||||
produce an executable compatible with a specific hardware.
|
center GPUs) are under development. You choose the mode at build time
|
||||||
|
to produce an executable compatible with a specific hardware.
|
||||||
|
|
||||||
|
The following compatibility notes have been last updated for LAMMPS
|
||||||
|
version 23 November 2023 and Kokkos version 4.2.
|
||||||
|
|
||||||
.. admonition:: C++17 support
|
.. admonition:: C++17 support
|
||||||
:class: note
|
:class: note
|
||||||
@ -54,22 +71,22 @@ produce an executable compatible with a specific hardware.
|
|||||||
:class: note
|
:class: note
|
||||||
|
|
||||||
Kokkos with CUDA currently implicitly assumes that the MPI library is
|
Kokkos with CUDA currently implicitly assumes that the MPI library is
|
||||||
GPU-aware. This is not always the case, especially when using
|
GPU-aware. This is not always the case, especially when using
|
||||||
pre-compiled MPI libraries provided by a Linux distribution. This is
|
pre-compiled MPI libraries provided by a Linux distribution. This is
|
||||||
not a problem when using only a single GPU with a single MPI
|
not a problem when using only a single GPU with a single MPI
|
||||||
rank. When running with multiple MPI ranks, you may see segmentation
|
rank. When running with multiple MPI ranks, you may see segmentation
|
||||||
faults without GPU-aware MPI support. These can be avoided by adding
|
faults without GPU-aware MPI support. These can be avoided by adding
|
||||||
the flags :doc:`-pk kokkos gpu/aware off <Run_options>` to the
|
the flags :doc:`-pk kokkos gpu/aware off <Run_options>` to the
|
||||||
LAMMPS command line or by using the command :doc:`package kokkos
|
LAMMPS command line or by using the command :doc:`package kokkos
|
||||||
gpu/aware off <package>` in the input file.
|
gpu/aware off <package>` in the input file.
|
||||||
|
|
||||||
.. admonition:: AMD GPU support
|
.. admonition:: Intel Data Center GPU support
|
||||||
:class: note
|
:class: note
|
||||||
|
|
||||||
To build with Kokkos the HIPCC compiler from the AMD ROCm software
|
Support for Kokkos with Intel Data Center GPU accelerators (formerly
|
||||||
version 3.5 or later is required. Supporting this Kokkos mode in
|
known under the code name "Ponte Vecchio") in LAMMPS is still a work
|
||||||
LAMMPS is still work in progress. Please contact the LAMMPS developers
|
in progress. Only a subset of the functionality works correctly.
|
||||||
if you run into problems.
|
Please contact the LAMMPS developers if you run into problems.
|
||||||
|
|
||||||
Building LAMMPS with the KOKKOS package
|
Building LAMMPS with the KOKKOS package
|
||||||
"""""""""""""""""""""""""""""""""""""""
|
"""""""""""""""""""""""""""""""""""""""
|
||||||
@ -292,6 +309,10 @@ one or more nodes, each with two GPUs:
|
|||||||
settings. Experimenting with its options can provide a speed-up for
|
settings. Experimenting with its options can provide a speed-up for
|
||||||
specific calculations. For example:
|
specific calculations. For example:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -pk kokkos newton on neigh half binsize 2.8 -in in.lj # Newton on, half neighbor list, set binsize = neighbor ghost cutoff
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
The default binsize for :doc:`atom sorting <atom_modify>` on GPUs
|
The default binsize for :doc:`atom sorting <atom_modify>` on GPUs
|
||||||
@ -302,9 +323,15 @@ one or more nodes, each with two GPUs:
|
|||||||
frequent sorting than default (e.g. sorting every 100 time steps
|
frequent sorting than default (e.g. sorting every 100 time steps
|
||||||
instead of 1000) may improve performance.
|
instead of 1000) may improve performance.
|
||||||
|
|
||||||
.. code-block:: bash
|
.. note::
|
||||||
|
|
||||||
mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -pk kokkos newton on neigh half binsize 2.8 -in in.lj # Newton on, half neighbor list, set binsize = neighbor ghost cutoff
|
When running on GPUs with many MPI ranks (tens of thousands and
|
||||||
|
more), the creation of the atom map (required for molecular systems)
|
||||||
|
on the GPU can slow down significantly or run out of GPU memory and
|
||||||
|
thus slow down the whole calculation or cause a crash. You can use
|
||||||
|
the "-pk kokkos atom/map no" :doc:`command-line switch <Run_options>`
|
||||||
|
of the :doc:`package kokkos atom/map no <package>` command to create
|
||||||
|
the atom map on the CPU instead.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@ -416,15 +443,22 @@ Generally speaking, the following rules of thumb apply:
|
|||||||
performance of a KOKKOS style is a bit slower than the OPENMP
|
performance of a KOKKOS style is a bit slower than the OPENMP
|
||||||
package.
|
package.
|
||||||
* When running large number of atoms per GPU, KOKKOS is typically faster
|
* When running large number of atoms per GPU, KOKKOS is typically faster
|
||||||
than the GPU package when compiled for double precision. The benefit
|
than the GPU package when compiled for double precision. The benefit
|
||||||
of using single or mixed precision with the GPU package depends
|
of using single or mixed precision with the GPU package depends
|
||||||
significantly on the hardware in use and the simulated system and pair
|
significantly on the hardware in use and the simulated system and pair
|
||||||
style.
|
style.
|
||||||
* When running on Intel hardware, KOKKOS is not as fast as
|
* When running on Intel Phi hardware, KOKKOS is not as fast as
|
||||||
the INTEL package, which is optimized for x86 hardware (not just
|
the INTEL package, which is optimized for x86 hardware (not just
|
||||||
from Intel) and compilation with the Intel compilers. The INTEL
|
from Intel) and compilation with the Intel compilers. The INTEL
|
||||||
package also can increase the vector length of vector instructions
|
package also can increase the vector length of vector instructions
|
||||||
by switching to single or mixed precision mode.
|
by switching to single or mixed precision mode.
|
||||||
|
* The KOKKOS package by default assumes that you are using exactly one
|
||||||
|
MPI rank per GPU. When trying to use multiple MPI ranks per GPU it is
|
||||||
|
mandatory to enable `CUDA Multi-Process Service (MPS)
|
||||||
|
<https://docs.nvidia.com/deploy/mps/index.html>`_ to get good
|
||||||
|
performance. In this case it is better to not use all available
|
||||||
|
MPI ranks in order to avoid competing with the MPS daemon for
|
||||||
|
CPU resources.
|
||||||
|
|
||||||
See the `Benchmark page <https://www.lammps.org/bench.html>`_ of the
|
See the `Benchmark page <https://www.lammps.org/bench.html>`_ of the
|
||||||
LAMMPS website for performance of the KOKKOS package on different
|
LAMMPS website for performance of the KOKKOS package on different
|
||||||
|
|||||||
@ -70,7 +70,9 @@ for more info.
|
|||||||
Related commands
|
Related commands
|
||||||
""""""""""""""""
|
""""""""""""""""
|
||||||
|
|
||||||
:doc:`angle_coeff <angle_coeff>`
|
:doc:`angle_coeff <angle_coeff>`, :doc:`pair_style lj/charmm variants <pair_charmm>`,
|
||||||
|
:doc:`dihedral_style charmm <dihedral_charmm>`,
|
||||||
|
:doc:`dihedral_style charmmfsw <dihedral_charmm>`, :doc:`fix cmap <fix_cmap>`
|
||||||
|
|
||||||
Default
|
Default
|
||||||
"""""""
|
"""""""
|
||||||
|
|||||||
@ -11,7 +11,16 @@ Syntax
|
|||||||
|
|
||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
angle_style lepton
|
angle_style style args
|
||||||
|
|
||||||
|
* style = *lepton*
|
||||||
|
* args = optional arguments
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
args = *auto_offset* or *no_offset*
|
||||||
|
*auto_offset* = offset the potential energy so that the value at theta0 is 0.0 (default)
|
||||||
|
*no_offset* = do not offset the potential energy
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
""""""""
|
""""""""
|
||||||
@ -19,6 +28,7 @@ Examples
|
|||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
angle_style lepton
|
angle_style lepton
|
||||||
|
angle_style lepton no_offset
|
||||||
|
|
||||||
angle_coeff 1 120.0 "k*theta^2; k=250.0"
|
angle_coeff 1 120.0 "k*theta^2; k=250.0"
|
||||||
angle_coeff 2 90.0 "k2*theta^2 + k3*theta^3 + k4*theta^4; k2=300.0; k3=-100.0; k4=50.0"
|
angle_coeff 2 90.0 "k2*theta^2 + k3*theta^3 + k4*theta^4; k2=300.0; k3=-100.0; k4=50.0"
|
||||||
@ -41,6 +51,13 @@ angle coefficient. For example `"200.0*theta^2"` represents a
|
|||||||
|
|
||||||
U_{angle,i} = K (\theta_i - \theta_0)^2 = K \theta^2 \qquad \theta = \theta_i - \theta_0
|
U_{angle,i} = K (\theta_i - \theta_0)^2 = K \theta^2 \qquad \theta = \theta_i - \theta_0
|
||||||
|
|
||||||
|
.. versionchanged:: 7Feb2024
|
||||||
|
|
||||||
|
By default the potential energy U is shifted so that the value U is 0.0
|
||||||
|
for $theta = theta_0$. This is equivalent to using the optional keyword
|
||||||
|
*auto_offset*. When using the keyword *no_offset* instead, the
|
||||||
|
potential energy is not shifted.
|
||||||
|
|
||||||
The `Lepton library <https://simtk.org/projects/lepton>`_, that the
|
The `Lepton library <https://simtk.org/projects/lepton>`_, that the
|
||||||
*lepton* angle style interfaces with, evaluates this expression string
|
*lepton* angle style interfaces with, evaluates this expression string
|
||||||
at run time to compute the pairwise energy. It also creates an
|
at run time to compute the pairwise energy. It also creates an
|
||||||
|
|||||||
@ -49,248 +49,221 @@ Examples
|
|||||||
Description
|
Description
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
Define what style of atoms to use in a simulation. This determines
|
The *atom_style* command selects which per-atom attributes are
|
||||||
what attributes are associated with the atoms. This command must be
|
associated with atoms in a LAMMPS simulation and thus stored and
|
||||||
used before a simulation is setup via a :doc:`read_data <read_data>`,
|
communicated with those atoms as well as read from and stored in data
|
||||||
:doc:`read_restart <read_restart>`, or :doc:`create_box <create_box>`
|
and restart files. Different models (e.g. :doc:`pair styles
|
||||||
command.
|
<pair_style>`) require access to specific per-atom attributes and thus
|
||||||
|
require a specific atom style. For example, to compute Coulomb
|
||||||
|
interactions, the atom must have a "charge" (aka "q") attribute.
|
||||||
|
|
||||||
|
A number of distinct atom styles exist that combine attributes. Some
|
||||||
|
atom styles are a superset of other atom styles. Further attributes
|
||||||
|
may be added to atoms either via using a hybrid style which provides a
|
||||||
|
union of the attributes of the sub-styles, or via the :doc:`fix
|
||||||
|
property/atom <fix_property_atom>` command. The *atom_style* command
|
||||||
|
must be used before a simulation is setup via a :doc:`read_data
|
||||||
|
<read_data>`, :doc:`read_restart <read_restart>`, or :doc:`create_box
|
||||||
|
<create_box>` command.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Many of the atom styles discussed here are only enabled if
|
Many of the atom styles discussed here are only enabled if LAMMPS was
|
||||||
LAMMPS was built with a specific package, as listed below in the
|
built with a specific package, as listed below in the Restrictions
|
||||||
Restrictions section.
|
section.
|
||||||
|
|
||||||
Once a style is assigned, it cannot be changed, so use a style general
|
Once a style is selected and the simulation box defined, it cannot be
|
||||||
enough to encompass all attributes. E.g. with style *bond*, angular
|
changed but only augmented with the :doc:`fix property/atom
|
||||||
terms cannot be used or added later to the model. It is OK to use a
|
<fix_property_atom>` command. So one should select an atom style
|
||||||
style more general than needed, though it may be slightly inefficient.
|
general enough to encompass all attributes required. E.g. with atom
|
||||||
|
style *bond*, it is not possible to define angles and use angle styles.
|
||||||
|
|
||||||
The choice of style affects what quantities are stored by each atom,
|
It is OK to use a style more general than needed, though it may be
|
||||||
what quantities are communicated between processors to enable forces
|
slightly inefficient because it will allocate and communicate
|
||||||
to be computed, and what quantities are listed in the data file read
|
additional unused data.
|
||||||
by the :doc:`read_data <read_data>` command.
|
|
||||||
|
|
||||||
These are the additional attributes of each style and the typical
|
Atom style attributes
|
||||||
kinds of physical systems they are used to model. All styles store
|
"""""""""""""""""""""
|
||||||
coordinates, velocities, atom IDs and types. See the
|
|
||||||
|
The atom style *atomic* has the minimum subset of per-atom attributes
|
||||||
|
and is also the default setting. It encompasses the following per-atom
|
||||||
|
attributes (name of the vector or array in the :doc:`Atom class
|
||||||
|
<Classes_atom>` is given in parenthesis): atom-ID (tag), type (type),
|
||||||
|
position (x), velocities (v), forces (f), image flags (image), group
|
||||||
|
membership (mask). Since all atom styles are a superset of atom style
|
||||||
|
*atomic*\ , they all include these attributes.
|
||||||
|
|
||||||
|
This table lists all the available atom styles, which attributes they
|
||||||
|
provide, which :doc:`package <Packages>` is required to use them, and
|
||||||
|
what the typical applications are that use them. See the
|
||||||
:doc:`read_data <read_data>`, :doc:`create_atoms <create_atoms>`, and
|
:doc:`read_data <read_data>`, :doc:`create_atoms <create_atoms>`, and
|
||||||
:doc:`set <set>` commands for info on how to set these various
|
:doc:`set <set>` commands for details on how to set these various
|
||||||
quantities.
|
quantities. More information about many of the styles is provided in
|
||||||
|
the Additional Information section below.
|
||||||
|
|
||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
.. list-table::
|
||||||
| *amoeba* | molecular + charge + 1/5 neighbors | AMOEBA/HIPPO polarized force fields |
|
:header-rows: 1
|
||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
:widths: auto
|
||||||
| *angle* | bonds and angles | bead-spring polymers with stiffness |
|
|
||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
* - Atom style
|
||||||
| *atomic* | only the default values | coarse-grain liquids, solids, metals |
|
- Attributes
|
||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
- Required package
|
||||||
| *body* | mass, inertia moments, quaternion, angular momentum | arbitrary bodies |
|
- Applications
|
||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
* - *amoeba*
|
||||||
| *bond* | bonds | bead-spring polymers |
|
- *full* + "1-5 special neighbor data"
|
||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
- :ref:`AMOEBA <PKG-AMOEBA>`
|
||||||
| *charge* | charge | atomic system with charges |
|
- AMOEBA/HIPPO force fields
|
||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
* - *angle*
|
||||||
| *dielectric* | normx normy normz area/patch ed em epsilon curv | system with surface polarization |
|
- *bond* + "angle data"
|
||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
- :ref:`MOLECULE <PKG-MOLECULE>`
|
||||||
| *dipole* | charge and dipole moment | system with dipolar particles |
|
- bead-spring polymers with stiffness
|
||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
* - *atomic*
|
||||||
| *dpd* | internal temperature and internal energies | DPD particles |
|
- tag, type, x, v, f, image, mask
|
||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
-
|
||||||
| *edpd* | temperature and heat capacity | eDPD particles |
|
- atomic liquids, solids, metals
|
||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
* - *body*
|
||||||
| *electron* | charge and spin and eradius | electronic force field |
|
- *atomic* + radius, rmass, angmom, torque, body
|
||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
- :ref:`BODY <PKG-BODY>`
|
||||||
| *ellipsoid* | shape, quaternion, angular momentum | aspherical particles |
|
- arbitrary bodies, see :doc:`body howto <Howto_body>`
|
||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
* - *bond*
|
||||||
| *full* | molecular + charge | bio-molecules |
|
- *atomic* + molecule, nspecial, special + "bond data"
|
||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
- :ref:`MOLECULE <PKG-MOLECULE>`
|
||||||
| *line* | end points, angular velocity | rigid bodies |
|
- bead-spring polymers
|
||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
* - *bpm/sphere*
|
||||||
| *mdpd* | density | mDPD particles |
|
- *bond* + radius, rmass, omega, torque, quat
|
||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
- :ref:`BPM <PKG-BPM>`
|
||||||
| *molecular* | bonds, angles, dihedrals, impropers | uncharged molecules |
|
- granular bonded particle models, see :doc:`BPM howto <Howto_bpm>`
|
||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
* - *charge*
|
||||||
| *oxdna* | nucleotide polarity | coarse-grained DNA and RNA models |
|
- *atomic* + q
|
||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
-
|
||||||
| *peri* | mass, volume | mesoscopic Peridynamic models |
|
- atomic systems with charges
|
||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
* - *dielectric*
|
||||||
| *smd* | volume, kernel diameter, contact radius, mass | solid and fluid SPH particles |
|
- *full* + mu, area, ed, em, epsilon, curvature, q_scaled
|
||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
- :ref:`DIELECTRIC <PKG-DIELECTRIC>`
|
||||||
| *sph* | rho, esph, cv | SPH particles |
|
- systems with surface polarization
|
||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
* - *dipole*
|
||||||
| *sphere* | diameter, mass, angular velocity | granular models |
|
- *charge* + mu
|
||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
- :ref:`DIPOLE <PKG-DIPOLE>`
|
||||||
| *bpm/sphere* | diameter, mass, angular velocity, quaternion | granular bonded particle models (BPM)|
|
- atomic systems with charges and point dipoles
|
||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
* - *dpd*
|
||||||
| *spin* | magnetic moment | system with magnetic particles |
|
- *atomic* + rho + "reactive DPD data"
|
||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
- :ref:`DPD-REACT <PKG-DPD-REACT>`
|
||||||
| *tdpd* | chemical concentration | tDPD particles |
|
- reactive DPD
|
||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
* - *edpd*
|
||||||
| *template* | template index, template atom | small molecules with fixed topology |
|
- *atomic* + "eDPD data"
|
||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
- :ref:`DPD-MESO <PKG-DPD-MESO>`
|
||||||
| *tri* | corner points, angular momentum | rigid bodies |
|
- Energy conservative DPD (eDPD)
|
||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
* - *electron*
|
||||||
| *wavepacket* | charge, spin, eradius, etag, cs_re, cs_im | AWPMD |
|
- *charge* + espin, eradius, ervel, erforce
|
||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
- :ref:`EFF <PKG-EFF>`
|
||||||
|
- Electron force field systems
|
||||||
|
* - *ellipsoid*
|
||||||
|
- *atomic* + rmass, angmom, torque, ellipsoid
|
||||||
|
-
|
||||||
|
- aspherical particles
|
||||||
|
* - *full*
|
||||||
|
- *molecular* + q
|
||||||
|
- :ref:`MOLECULE <PKG-MOLECULE>`
|
||||||
|
- molecular force fields
|
||||||
|
* - *line*
|
||||||
|
- *atomic* + molecule, radius, rmass, omega, torque, line
|
||||||
|
-
|
||||||
|
- 2-d rigid body particles
|
||||||
|
* - *mdpd*
|
||||||
|
- *atomic* + rho, drho, vest
|
||||||
|
- :ref:`DPD-MESO <PKG-DPD-MESO>`
|
||||||
|
- Many-body DPD (mDPD)
|
||||||
|
* - *molecular*
|
||||||
|
- *angle* + "dihedral and improper data"
|
||||||
|
- :ref:`MOLECULE <PKG-MOLECULE>`
|
||||||
|
- apolar and uncharged molecules
|
||||||
|
* - *oxdna*
|
||||||
|
- *atomic* + id5p
|
||||||
|
- :ref:`CG-DNA <PKG-CG-DNA>`
|
||||||
|
- coarse-grained DNA and RNA models
|
||||||
|
* - *peri*
|
||||||
|
- *atomic* + rmass, vfrac, s0, x0
|
||||||
|
- :ref:`PERI <PKG-PERI>`
|
||||||
|
- mesoscopic Peridynamics models
|
||||||
|
* - *smd*
|
||||||
|
- *atomic* + molecule, radius, rmass + "smd data"
|
||||||
|
- :ref:`MACHDYN <PKG-MACHDYN>`
|
||||||
|
- Smooth Mach Dynamics models
|
||||||
|
* - *sph*
|
||||||
|
- *atomic* + "sph data"
|
||||||
|
- :ref:`SPH <PKG-SPH>`
|
||||||
|
- Smoothed particle hydrodynamics models
|
||||||
|
* - *sphere*
|
||||||
|
- *atomic* + radius, rmass, omega, torque
|
||||||
|
-
|
||||||
|
- finite size spherical particles, e.g. granular models
|
||||||
|
* - *spin*
|
||||||
|
- *atomic* + "magnetic moment data"
|
||||||
|
- :ref:`SPIN <PKG-SPIN>`
|
||||||
|
- magnetic particles
|
||||||
|
* - *tdpd*
|
||||||
|
- *atomic* + cc, cc_flux, vest
|
||||||
|
- :ref:`DPD-MESO <PKG-DPD-MESO>`
|
||||||
|
- Transport DPD (tDPD)
|
||||||
|
* - *template*
|
||||||
|
- *atomic* + molecule, molindex, molatom
|
||||||
|
- :ref:`MOLECULE <PKG-MOLECULE>`
|
||||||
|
- molecular systems where attributes are taken from :doc:`molecule files <molecule>`
|
||||||
|
* - *tri*
|
||||||
|
- *sphere* + molecule, angmom, tri
|
||||||
|
-
|
||||||
|
- 3-d triangulated rigid body LJ particles
|
||||||
|
* - *wavepacket*
|
||||||
|
- *charge* + "wavepacket data"
|
||||||
|
- :ref:`AWPMD <PKG-AWPMD>`
|
||||||
|
- Antisymmetrized wave packet MD
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
It is possible to add some attributes, such as a molecule ID, to
|
It is possible to add some attributes, such as a molecule ID and
|
||||||
atom styles that do not have them via the :doc:`fix property/atom
|
charge, to atom styles that do not have them built in using the
|
||||||
<fix_property_atom>` command. This command also allows new custom
|
:doc:`fix property/atom <fix_property_atom>` command. This command
|
||||||
attributes consisting of extra integer or floating-point values to
|
also allows new custom-named attributes consisting of extra integer
|
||||||
be added to atoms. See the :doc:`fix property/atom
|
or floating-point values or vectors to be added to atoms. See the
|
||||||
<fix_property_atom>` page for examples of cases where this is
|
:doc:`fix property/atom <fix_property_atom>` page for examples of
|
||||||
useful and details on how to initialize, access, and output the
|
cases where this is useful and details on how to initialize,
|
||||||
custom values.
|
access, and output these custom values.
|
||||||
|
|
||||||
All of the above styles define point particles, except the *sphere*,
|
----------
|
||||||
*bpm/sphere*, *ellipsoid*, *electron*, *peri*, *wavepacket*, *line*,
|
|
||||||
*tri*, and *body* styles, which define finite-size particles. See the
|
|
||||||
:doc:`Howto spherical <Howto_spherical>` page for an overview of using
|
|
||||||
finite-size particle models with LAMMPS.
|
|
||||||
|
|
||||||
All of the point-particle styles assign mass to particles on a
|
Particle size and mass
|
||||||
per-type basis, using the :doc:`mass <mass>` command, The finite-size
|
""""""""""""""""""""""
|
||||||
particle styles assign mass to individual particles on a per-particle
|
|
||||||
basis.
|
|
||||||
|
|
||||||
For the *sphere* and *bpm/sphere* styles, the particles are spheres
|
All of the atom styles define point particles unless they (1) define
|
||||||
and each stores a per-particle diameter and mass. If the diameter >
|
finite-size spherical particles via the *radius* attribute, or (2)
|
||||||
0.0, the particle is a finite-size sphere. If the diameter = 0.0, it
|
define finite-size aspherical particles (e.g. the *body*, *ellipsoid*,
|
||||||
is a point particle. Note that by use of the *disc* keyword with the
|
*line*, and *tri* styles). Most of these styles can also be used with
|
||||||
:doc:`fix nve/sphere <fix_nve_sphere>`, :doc:`fix nvt/sphere
|
mixtures of point and finite-size particles.
|
||||||
<fix_nvt_sphere>`, :doc:`fix nph/sphere <fix_nph_sphere>`,
|
|
||||||
:doc:`fix npt/sphere <fix_npt_sphere>` commands for the *sphere* style,
|
|
||||||
spheres can be effectively treated as 2d discs for a 2d simulation if
|
|
||||||
desired. See also the :doc:`set density/disc <set>` command. These
|
|
||||||
styles take an optional 0 or 1 argument. A value of 0 means the
|
|
||||||
radius of each sphere is constant for the duration of the simulation.
|
|
||||||
A value of 1 means the radii may vary dynamically during the simulation,
|
|
||||||
e.g. due to use of the :doc:`fix adapt <fix_adapt>` command.
|
|
||||||
|
|
||||||
For the *ellipsoid* style, the particles are ellipsoids and each
|
Note that the *radius* property may need to be provided as a
|
||||||
stores a flag which indicates whether it is a finite-size ellipsoid or
|
*diameter* (e.g. in :doc:`molecule files <molecule>` or :doc:`data
|
||||||
a point particle. If it is an ellipsoid, it also stores a shape
|
files <read_data>`). See the :doc:`Howto spherical <Howto_spherical>`
|
||||||
vector with the 3 diameters of the ellipsoid and a quaternion 4-vector
|
page for an overview of using finite-size spherical and aspherical
|
||||||
with its orientation.
|
particle models with LAMMPS.
|
||||||
|
|
||||||
For the *dielectric* style, each particle can be either a physical
|
Unless an atom style defines the per-atom *rmass* attribute, particle
|
||||||
particle (e.g. an ion), or an interface particle representing a boundary
|
masses are defined on a per-type basis, using the :doc:`mass <mass>`
|
||||||
element between two regions of different dielectric constant. For
|
command. This means each particle's mass is indexed by its atom
|
||||||
interface particles, in addition to the properties associated with
|
*type*.
|
||||||
atom_style full, each particle also should be assigned a normal unit
|
|
||||||
vector (defined by normx, normy, normz), an area (area/patch), the
|
|
||||||
difference and mean of the dielectric constants of two sides of the
|
|
||||||
interface along the direction of the normal vector (ed and em), the
|
|
||||||
local dielectric constant at the boundary element (epsilon), and a mean
|
|
||||||
local curvature (curv). Physical particles must be assigned these
|
|
||||||
values, as well, but only their local dielectric constants will be used;
|
|
||||||
see documentation for associated :doc:`pair styles <pair_dielectric>`
|
|
||||||
and :doc:`fixes <fix_polarize>`. The distinction between the physical
|
|
||||||
and interface particles is only meaningful when :doc:`fix polarize
|
|
||||||
<fix_polarize>` commands are applied to the interface particles. This
|
|
||||||
style is part of the DIELECTRIC package.
|
|
||||||
|
|
||||||
For the *dipole* style, a point dipole is defined for each point
|
A few styles define the per-atom *rmass* attribute which can also be
|
||||||
particle. Note that if you wish the particles to be finite-size
|
added using the :doc:`fix property/atom <fix_property_atom>` command.
|
||||||
spheres as in a Stockmayer potential for a dipolar fluid, so that the
|
In this case each particle stores its own mass. Atom styles that have
|
||||||
particles can rotate due to dipole-dipole interactions, then you need
|
a per-atom rmass may define it indirectly through setting particle
|
||||||
to use atom_style hybrid sphere dipole, which will assign both a
|
diameter and density on a per-particle basis. If both per-type mass
|
||||||
diameter and dipole moment to each particle.
|
and per-atom *rmass* are defined (e.g. in a hybrid style), the
|
||||||
|
per-atom mass will take precedence in any operation which which works
|
||||||
|
with both flavors of mass.
|
||||||
|
|
||||||
For the *electron* style, the particles representing electrons are 3d
|
----------
|
||||||
Gaussians with a specified position and bandwidth or uncertainty in
|
|
||||||
position, which is represented by the eradius = electron size.
|
|
||||||
|
|
||||||
For the *peri* style, the particles are spherical and each stores a
|
Additional information about specific atom styles
|
||||||
per-particle mass and volume.
|
"""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
|
||||||
The *bpm/sphere* style is part of the BPM package.
|
|
||||||
|
|
||||||
The *oxdna* style is for coarse-grained nucleotides and stores the
|
|
||||||
3'-to-5' polarity of the nucleotide strand, which is set through
|
|
||||||
the bond topology in the data file. The first (second) atom in a
|
|
||||||
bond definition is understood to point towards the 3'-end (5'-end)
|
|
||||||
of the strand. Note that this style is part of the CG-DNA package.
|
|
||||||
|
|
||||||
The *dpd* style is for dissipative particle dynamics (DPD) particles.
|
|
||||||
Note that it is part of the DPD-REACT package, and is not for use with
|
|
||||||
the :doc:`pair_style dpd or dpd/stat <pair_dpd>` commands, which can
|
|
||||||
simply use atom_style atomic. Atom_style dpd extends DPD particle
|
|
||||||
properties with internal temperature (dpdTheta), internal conductive
|
|
||||||
energy (uCond), internal mechanical energy (uMech), and internal
|
|
||||||
chemical energy (uChem).
|
|
||||||
|
|
||||||
The *edpd* style is for energy-conserving dissipative particle
|
|
||||||
dynamics (eDPD) particles which store a temperature (edpd_temp), and
|
|
||||||
heat capacity(edpd_cv).
|
|
||||||
|
|
||||||
The *mdpd* style is for many-body dissipative particle dynamics (mDPD)
|
|
||||||
particles which store a density (rho) for considering
|
|
||||||
density-dependent many-body interactions.
|
|
||||||
|
|
||||||
The *tdpd* style is for transport dissipative particle dynamics (tDPD)
|
|
||||||
particles which store a set of chemical concentration. An integer
|
|
||||||
"cc_species" is required to specify the number of chemical species
|
|
||||||
involved in a tDPD system.
|
|
||||||
|
|
||||||
The *sph* style is for smoothed particle hydrodynamics (SPH)
|
|
||||||
particles which store a density (rho), energy (esph), and heat capacity
|
|
||||||
(cv).
|
|
||||||
|
|
||||||
The *smd* style is for a general formulation of Smooth Particle
|
|
||||||
Hydrodynamics. Both fluids and solids can be modeled. Particles
|
|
||||||
store the mass and volume of an integration point, a kernel diameter
|
|
||||||
used for calculating the field variables (e.g. stress and deformation)
|
|
||||||
and a contact radius for calculating repulsive forces which prevent
|
|
||||||
individual physical bodies from penetrating each other.
|
|
||||||
|
|
||||||
For the *spin* style, a magnetic spin is associated to each atom.
|
|
||||||
Those spins have a norm (their magnetic moment) and a direction.
|
|
||||||
|
|
||||||
The *wavepacket* style is similar to *electron*, but the electrons may
|
|
||||||
consist of several Gaussian wave packets, summed up with coefficients
|
|
||||||
cs= (cs_re,cs_im). Each of the wave packets is treated as a separate
|
|
||||||
particle in LAMMPS, wave packets belonging to the same electron must
|
|
||||||
have identical *etag* values.
|
|
||||||
|
|
||||||
For the *line* style, the particles are idealized line segments and
|
|
||||||
each stores a per-particle mass and length and orientation (i.e. the
|
|
||||||
end points of the line segment).
|
|
||||||
|
|
||||||
For the *tri* style, the particles are planar triangles and each
|
|
||||||
stores a per-particle mass and size and orientation (i.e. the corner
|
|
||||||
points of the triangle).
|
|
||||||
|
|
||||||
The *template* style allows molecular topology (bonds,angles,etc) to be
|
|
||||||
defined via a molecule template using the :doc:`molecule <molecule>`
|
|
||||||
command. The template stores one or more molecules with a single copy
|
|
||||||
of the topology info (bonds,angles,etc) of each. Individual atoms
|
|
||||||
only store a template index and template atom to identify which
|
|
||||||
molecule and which atom-within-the-molecule they represent. Using the
|
|
||||||
*template* style instead of the *bond*, *angle*, *molecular* styles
|
|
||||||
can save memory for systems comprised of a large number of small
|
|
||||||
molecules, all of a single type (or small number of types). See the
|
|
||||||
paper by Grime and Voth, in :ref:`(Grime) <Grime>`, for examples of how this
|
|
||||||
can be advantageous for large-scale coarse-grained systems.
|
|
||||||
The ``examples/template`` directory has a few demo inputs and examples
|
|
||||||
showing the use of the *template* atom style versus *molecular*.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
When using the *template* style with a :doc:`molecule template
|
|
||||||
<molecule>` that contains multiple molecules, you should ensure the
|
|
||||||
atom types, bond types, angle_types, etc in all the molecules are
|
|
||||||
consistent. E.g. if one molecule represents H2O and another CO2,
|
|
||||||
then you probably do not want each molecule file to define 2 atom
|
|
||||||
types and a single bond type, because they will conflict with each
|
|
||||||
other when a mixture system of H2O and CO2 molecules is defined,
|
|
||||||
e.g. by the :doc:`read_data <read_data>` command. Rather the H2O
|
|
||||||
molecule should define atom types 1 and 2, and bond type 1. And
|
|
||||||
the CO2 molecule should define atom types 3 and 4 (or atom types 3
|
|
||||||
and 2 if a single oxygen type is desired), and bond type 2.
|
|
||||||
|
|
||||||
For the *body* style, the particles are arbitrary bodies with internal
|
For the *body* style, the particles are arbitrary bodies with internal
|
||||||
attributes defined by the "style" of the bodies, which is specified by
|
attributes defined by the "style" of the bodies, which is specified by
|
||||||
@ -309,6 +282,148 @@ Note that there may be additional arguments required along with the
|
|||||||
*bstyle* specification, in the atom_style body command. These
|
*bstyle* specification, in the atom_style body command. These
|
||||||
arguments are described on the :doc:`Howto body <Howto_body>` doc page.
|
arguments are described on the :doc:`Howto body <Howto_body>` doc page.
|
||||||
|
|
||||||
|
For the *dielectric* style, each particle can be either a physical
|
||||||
|
particle (e.g. an ion), or an interface particle representing a boundary
|
||||||
|
element between two regions of different dielectric constant. For
|
||||||
|
interface particles, in addition to the properties associated with
|
||||||
|
atom_style full, each particle also should be assigned a normal unit
|
||||||
|
vector (defined by normx, normy, normz), an area (area/patch), the
|
||||||
|
difference and mean of the dielectric constants of two sides of the
|
||||||
|
interface along the direction of the normal vector (ed and em), the
|
||||||
|
local dielectric constant at the boundary element (epsilon), and a mean
|
||||||
|
local curvature (curv). Physical particles must be assigned these
|
||||||
|
values, as well, but only their local dielectric constants will be used;
|
||||||
|
see documentation for associated :doc:`pair styles <pair_dielectric>`
|
||||||
|
and :doc:`fixes <fix_polarize>`. The distinction between the physical
|
||||||
|
and interface particles is only meaningful when :doc:`fix polarize
|
||||||
|
<fix_polarize>` commands are applied to the interface particles. This
|
||||||
|
style is part of the DIELECTRIC package.
|
||||||
|
|
||||||
|
For the *dipole* style, a point dipole vector mu is defined for each
|
||||||
|
point particle. Note that if you wish the particles to be finite-size
|
||||||
|
spheres as in a Stockmayer potential for a dipolar fluid, so that the
|
||||||
|
particles can rotate due to dipole-dipole interactions, then you need
|
||||||
|
to use the command `atom_style hybrid sphere dipole`, which will
|
||||||
|
assign both a diameter and dipole moment to each particle. This also
|
||||||
|
requires using an integrator with a "/sphere" suffix like :doc:`fix
|
||||||
|
nve/sphere <fix_nve_sphere>` or :doc:`fix nvt/sphere <fix_nvt_sphere>`
|
||||||
|
and the "update dipole" or "update dlm" parameters to the fix
|
||||||
|
commands.
|
||||||
|
|
||||||
|
The *dpd* style is for reactive dissipative particle dynamics (DPD)
|
||||||
|
particles. Note that it is part of the DPD-REACT package, and is not
|
||||||
|
required for use with the :doc:`pair_style dpd or dpd/stat <pair_dpd>`
|
||||||
|
commands, which only require the attributes from atom_style *atomic*.
|
||||||
|
Atom_style *dpd* extends DPD particle properties with internal
|
||||||
|
temperature (dpdTheta), internal conductive energy (uCond), internal
|
||||||
|
mechanical energy (uMech), and internal chemical energy (uChem).
|
||||||
|
|
||||||
|
The *edpd* style is for energy-conserving dissipative particle
|
||||||
|
dynamics (eDPD) particles which store a temperature (edpd_temp), and
|
||||||
|
heat capacity (edpd_cv).
|
||||||
|
|
||||||
|
For the *electron* style, the particles representing electrons are 3d
|
||||||
|
Gaussians with a specified position and bandwidth or uncertainty in
|
||||||
|
position, which is represented by the eradius = electron size.
|
||||||
|
|
||||||
|
For the *ellipsoid* style, particles can be ellipsoids which each
|
||||||
|
stores a shape vector with the 3 diameters of the ellipsoid and a
|
||||||
|
quaternion 4-vector with its orientation. Each particle stores a flag
|
||||||
|
in the ellipsoid vector which indicates whether it is an ellipsoid (1)
|
||||||
|
or a point particle (0).
|
||||||
|
|
||||||
|
For the *line* style, particles can be are idealized line segments
|
||||||
|
which store a per-particle mass and length and orientation (i.e. the
|
||||||
|
end points of the line segment). Each particle stores a flag in the
|
||||||
|
line vector which indicates whether it is a line segment (1) or a
|
||||||
|
point particle (0).
|
||||||
|
|
||||||
|
The *mdpd* style is for many-body dissipative particle dynamics (mDPD)
|
||||||
|
particles which store a density (rho) for considering density-dependent
|
||||||
|
many-body interactions.
|
||||||
|
|
||||||
|
The *oxdna* style is for coarse-grained nucleotides and stores the
|
||||||
|
3'-to-5' polarity of the nucleotide strand, which is set through
|
||||||
|
the bond topology in the data file. The first (second) atom in a
|
||||||
|
bond definition is understood to point towards the 3'-end (5'-end)
|
||||||
|
of the strand.
|
||||||
|
|
||||||
|
For the *peri* style, the particles are spherical and each stores a
|
||||||
|
per-particle mass and volume.
|
||||||
|
|
||||||
|
The *smd* style is for Smooth Particle Mach dynamics. Both fluids and
|
||||||
|
solids can be modeled. Particles store the mass and volume of an
|
||||||
|
integration point, a kernel diameter used for calculating the field
|
||||||
|
variables (e.g. stress and deformation) and a contact radius for
|
||||||
|
calculating repulsive forces which prevent individual physical bodies
|
||||||
|
from penetrating each other.
|
||||||
|
|
||||||
|
The *sph* style is for smoothed particle hydrodynamics (SPH) particles
|
||||||
|
which store a density (rho), energy (esph), and heat capacity (cv).
|
||||||
|
|
||||||
|
For the *spin* style, a magnetic spin is associated with each atom.
|
||||||
|
Those spins have a norm (their magnetic moment) and a direction.
|
||||||
|
|
||||||
|
The *tdpd* style is for transport dissipative particle dynamics (tDPD)
|
||||||
|
particles which store a set of chemical concentration. An integer
|
||||||
|
"cc_species" is required to specify the number of chemical species
|
||||||
|
involved in a tDPD system.
|
||||||
|
|
||||||
|
The *wavepacket* style is similar to the *electron* style, but the
|
||||||
|
electrons may consist of several Gaussian wave packets, summed up with
|
||||||
|
coefficients cs= (cs_re,cs_im). Each of the wave packets is treated
|
||||||
|
as a separate particle in LAMMPS, wave packets belonging to the same
|
||||||
|
electron must have identical *etag* values.
|
||||||
|
|
||||||
|
The *sphere* and *bpm/sphere* styles allow particles to be either point
|
||||||
|
particles or finite-size particles. If the *radius* attribute is >
|
||||||
|
0.0, the particle is a finite-size sphere. If the diameter = 0.0, it
|
||||||
|
is a point particle. Note that by using the *disc* keyword with the
|
||||||
|
:doc:`fix nve/sphere <fix_nve_sphere>`, :doc:`fix nvt/sphere
|
||||||
|
<fix_nvt_sphere>`, :doc:`fix nph/sphere <fix_nph_sphere>`, :doc:`fix
|
||||||
|
npt/sphere <fix_npt_sphere>` commands for the *sphere* style, spheres
|
||||||
|
can be effectively treated as 2d discs for a 2d simulation if desired.
|
||||||
|
See also the :doc:`set density/disc <set>` command. These styles also
|
||||||
|
take an optional 0 or 1 argument. A value of 0 means the radius of
|
||||||
|
each sphere is constant for the duration of the simulation (this is
|
||||||
|
the default). A value of 1 means the radii may vary dynamically
|
||||||
|
during the simulation, e.g. due to use of the :doc:`fix adapt
|
||||||
|
<fix_adapt>` command.
|
||||||
|
|
||||||
|
The *template* style allows molecular topology (bonds,angles,etc) to be
|
||||||
|
defined via a molecule template using the :doc:`molecule <molecule>`
|
||||||
|
command. The template stores one or more molecules with a single copy
|
||||||
|
of the topology info (bonds,angles,etc) of each. Individual atoms only
|
||||||
|
store a template index and template atom to identify which molecule and
|
||||||
|
which atom-within-the-molecule they represent. Using the *template*
|
||||||
|
style instead of the *bond*, *angle*, *molecular* styles can save memory
|
||||||
|
for systems comprised of a large number of small molecules, all of a
|
||||||
|
single type (or small number of types). See the paper by Grime and
|
||||||
|
Voth, in :ref:`(Grime) <Grime>`, for examples of how this can be
|
||||||
|
advantageous for large-scale coarse-grained systems. The
|
||||||
|
``examples/template`` directory has a few demo inputs and examples
|
||||||
|
showing the use of the *template* atom style versus *molecular*.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
When using the *template* style with a :doc:`molecule template
|
||||||
|
<molecule>` that contains multiple molecules, you should ensure the
|
||||||
|
atom types, bond types, angle_types, etc in all the molecules are
|
||||||
|
consistent. E.g. if one molecule represents H2O and another CO2,
|
||||||
|
then you probably do not want each molecule file to define 2 atom
|
||||||
|
types and a single bond type, because they will conflict with each
|
||||||
|
other when a mixture system of H2O and CO2 molecules is defined,
|
||||||
|
e.g. by the :doc:`read_data <read_data>` command. Rather the H2O
|
||||||
|
molecule should define atom types 1 and 2, and bond type 1. And
|
||||||
|
the CO2 molecule should define atom types 3 and 4 (or atom types 3
|
||||||
|
and 2 if a single oxygen type is desired), and bond type 2.
|
||||||
|
|
||||||
|
For the *tri* style, particles can be planar triangles which each
|
||||||
|
stores a per-particle mass and size and orientation (i.e. the corner
|
||||||
|
points of the triangle). Each particle stores a flag in the tri
|
||||||
|
vector which indicates whether it is a triangle (1) or a point
|
||||||
|
particle (0).
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
Typically, simulations require only a single (non-hybrid) atom style.
|
Typically, simulations require only a single (non-hybrid) atom style.
|
||||||
@ -326,11 +441,12 @@ dipole". When a hybrid style is used, atoms store and communicate the
|
|||||||
union of all quantities implied by the individual styles.
|
union of all quantities implied by the individual styles.
|
||||||
|
|
||||||
When using the *hybrid* style, you cannot combine the *template* style
|
When using the *hybrid* style, you cannot combine the *template* style
|
||||||
with another molecular style that stores bond,angle,etc info on a
|
with another molecular style that stores bond, angle, etc info on a
|
||||||
per-atom basis.
|
per-atom basis.
|
||||||
|
|
||||||
LAMMPS can be extended with new atom styles as well as new body
|
LAMMPS can be extended with new atom styles as well as new body styles;
|
||||||
styles; see the :doc:`Modify <Modify>` doc page.
|
see the corresponding manual page on :doc:`modifying & extending LAMMPS
|
||||||
|
<Modify_atom>`.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
@ -346,54 +462,20 @@ This command cannot be used after the simulation box is defined by a
|
|||||||
|
|
||||||
Many of the styles listed above are only enabled if LAMMPS was built
|
Many of the styles listed above are only enabled if LAMMPS was built
|
||||||
with a specific package, as listed below. See the :doc:`Build package
|
with a specific package, as listed below. See the :doc:`Build package
|
||||||
<Build_package>` page for more info.
|
<Build_package>` page for more info. The table above lists which package
|
||||||
|
is required for individual atom styles.
|
||||||
The *amoeba* style is part of the AMOEBA package.
|
|
||||||
|
|
||||||
The *angle*, *bond*, *full*, *molecular*, and *template* styles are
|
|
||||||
part of the MOLECULE package.
|
|
||||||
|
|
||||||
The *line* and *tri* styles are part of the ASPHERE package.
|
|
||||||
|
|
||||||
The *body* style is part of the BODY package.
|
|
||||||
|
|
||||||
The *dipole* style is part of the DIPOLE package.
|
|
||||||
|
|
||||||
The *peri* style is part of the PERI package for Peridynamics.
|
|
||||||
|
|
||||||
The *oxdna* style is part of the CG-DNA package for coarse-grained
|
|
||||||
simulation of DNA and RNA.
|
|
||||||
|
|
||||||
The *electron* style is part of the EFF package for :doc:`electronic
|
|
||||||
force fields <pair_eff>`.
|
|
||||||
|
|
||||||
The *dpd* style is part of the DPD-REACT package for dissipative
|
|
||||||
particle dynamics (DPD).
|
|
||||||
|
|
||||||
The *edpd*, *mdpd*, and *tdpd* styles are part of the DPD-MESO package
|
|
||||||
for energy-conserving dissipative particle dynamics (eDPD), many-body
|
|
||||||
dissipative particle dynamics (mDPD), and transport dissipative particle
|
|
||||||
dynamics (tDPD), respectively.
|
|
||||||
|
|
||||||
The *sph* style is part of the SPH package for smoothed particle
|
|
||||||
hydrodynamics (SPH). See `this PDF guide
|
|
||||||
<PDF/SPH_LAMMPS_userguide.pdf>`_ to using SPH in LAMMPS.
|
|
||||||
|
|
||||||
The *spin* style is part of the SPIN package.
|
|
||||||
|
|
||||||
The *wavepacket* style is part of the AWPMD package for the
|
|
||||||
:doc:`antisymmetrized wave packet MD method <pair_awpmd>`.
|
|
||||||
|
|
||||||
Related commands
|
Related commands
|
||||||
""""""""""""""""
|
""""""""""""""""
|
||||||
|
|
||||||
:doc:`read_data <read_data>`, :doc:`pair_style <pair_style>`
|
:doc:`read_data <read_data>`, :doc:`pair_style <pair_style>`,
|
||||||
|
:doc:`fix property/atom <fix_property_atom>`, :doc:`set <set>`
|
||||||
|
|
||||||
Default
|
Default
|
||||||
"""""""
|
"""""""
|
||||||
|
|
||||||
The default atom style is atomic. If atom_style sphere is used its
|
The default atom style is *atomic*. If atom_style *sphere* or
|
||||||
default argument is 0.
|
*bpm/sphere* is used, its default argument is 0.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
|||||||
@ -11,7 +11,16 @@ Syntax
|
|||||||
|
|
||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
bond_style lepton
|
bond_style style args
|
||||||
|
|
||||||
|
* style = *lepton*
|
||||||
|
* args = optional arguments
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
args = *auto_offset* or *no_offset*
|
||||||
|
*auto_offset* = offset the potential energy so that the value at r0 is 0.0 (default)
|
||||||
|
*no_offset* = do not offset the potential energy
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
""""""""
|
""""""""
|
||||||
@ -19,6 +28,7 @@ Examples
|
|||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
bond_style lepton
|
bond_style lepton
|
||||||
|
bond_style lepton no_offset
|
||||||
|
|
||||||
bond_coeff 1 1.5 "k*r^2; k=250.0"
|
bond_coeff 1 1.5 "k*r^2; k=250.0"
|
||||||
bond_coeff 2 1.1 "k2*r^2 + k3*r^3 + k4*r^4; k2=300.0; k3=-100.0; k4=50.0"
|
bond_coeff 2 1.1 "k2*r^2 + k3*r^3 + k4*r^4; k2=300.0; k3=-100.0; k4=50.0"
|
||||||
@ -40,6 +50,13 @@ constant *K* of 200.0 energy units:
|
|||||||
|
|
||||||
U_{bond,i} = K (r_i - r_0)^2 = K r^2 \qquad r = r_i - r_0
|
U_{bond,i} = K (r_i - r_0)^2 = K r^2 \qquad r = r_i - r_0
|
||||||
|
|
||||||
|
.. versionchanged:: 7Feb2024
|
||||||
|
|
||||||
|
By default the potential energy U is shifted so that he value U is 0.0
|
||||||
|
for $r = r_0$. This is equivalent to using the optional keyword
|
||||||
|
*auto_offset*. When using the keyword *no_offset* instead, the
|
||||||
|
potential energy is not shifted.
|
||||||
|
|
||||||
The `Lepton library <https://simtk.org/projects/lepton>`_, that the
|
The `Lepton library <https://simtk.org/projects/lepton>`_, that the
|
||||||
*lepton* bond style interfaces with, evaluates this expression string at
|
*lepton* bond style interfaces with, evaluates this expression string at
|
||||||
run time to compute the pairwise energy. It also creates an analytical
|
run time to compute the pairwise energy. It also creates an analytical
|
||||||
|
|||||||
@ -204,8 +204,23 @@ angles per atom satisfying the ADF criteria.
|
|||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|
||||||
This compute is part of the EXTRA-COMPUTE package. It is only enabled if
|
This compute is part of the EXTRA-COMPUTE package. It is only enabled
|
||||||
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` page for more info.
|
if LAMMPS was built with that package. See the :doc:`Build package
|
||||||
|
<Build_package>` page for more info.
|
||||||
|
|
||||||
|
By default, the ADF is not computed for distances longer than the
|
||||||
|
largest force cutoff, since the neighbor list creation will only contain
|
||||||
|
pairs up to that distance (plus neighbor list skin). If you use outer
|
||||||
|
cutoffs larger than that, you must use :doc:`neighbor style 'bin' or
|
||||||
|
'nsq' <neighbor>`.
|
||||||
|
|
||||||
|
If you want an ADF for a larger outer cutoff, you can also use the
|
||||||
|
:doc:`rerun <rerun>` command to post-process a dump file, use :doc:`pair
|
||||||
|
style zero <pair_zero>` and set the force cutoff to be larger in the
|
||||||
|
rerun script. Note that in the rerun context, the force cutoff is
|
||||||
|
arbitrary and with pair style zero you are not computing any forces, and
|
||||||
|
since you are not running dynamics you are not changing the model that
|
||||||
|
generated the trajectory.
|
||||||
|
|
||||||
The ADF is not computed for neighbors outside the force cutoff,
|
The ADF is not computed for neighbors outside the force cutoff,
|
||||||
since processors (in parallel) don't know about atom coordinates for
|
since processors (in parallel) don't know about atom coordinates for
|
||||||
|
|||||||
@ -102,6 +102,8 @@ This compute is part of the EXTRA-COMPUTE package. It is only enabled
|
|||||||
if LAMMPS was built with that package. See the :doc:`Build package
|
if LAMMPS was built with that package. See the :doc:`Build package
|
||||||
<Build_package>` page for more info.
|
<Build_package>` page for more info.
|
||||||
|
|
||||||
|
This compute requires :doc:`neighbor styles 'bin' or 'nsq' <neighbor>`.
|
||||||
|
|
||||||
Related commands
|
Related commands
|
||||||
""""""""""""""""
|
""""""""""""""""
|
||||||
|
|
||||||
|
|||||||
@ -107,6 +107,8 @@ This compute is part of the EXTRA-COMPUTE package. It is only enabled
|
|||||||
if LAMMPS was built with that package. See the :doc:`Build package
|
if LAMMPS was built with that package. See the :doc:`Build package
|
||||||
<Build_package>` page for more info.
|
<Build_package>` page for more info.
|
||||||
|
|
||||||
|
This compute requires :doc:`neighbor styles 'bin' or 'nsq' <neighbor>`.
|
||||||
|
|
||||||
Related commands
|
Related commands
|
||||||
""""""""""""""""
|
""""""""""""""""
|
||||||
|
|
||||||
|
|||||||
@ -106,6 +106,8 @@ Restrictions
|
|||||||
This compute is part of the EXTRA-COMPUTE package. It is only enabled if
|
This compute is part of the EXTRA-COMPUTE package. It is only enabled if
|
||||||
LAMMPS was built with that package.
|
LAMMPS was built with that package.
|
||||||
|
|
||||||
|
This compute requires :doc:`neighbor styles 'bin' or 'nsq' <neighbor>`.
|
||||||
|
|
||||||
Related commands
|
Related commands
|
||||||
""""""""""""""""
|
""""""""""""""""
|
||||||
|
|
||||||
|
|||||||
@ -64,7 +64,7 @@ tangential force tensor. The contact tensor is calculated as
|
|||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
C_{ab} = \frac{15}{2} (\phi_{ab} - \mathrm{Tr}(\phi) \delta_{ab})
|
C_{ab} = \frac{15}{2} (\phi_{ab} - \frac{1}{3} \mathrm{Tr}(\phi) \delta_{ab})
|
||||||
|
|
||||||
where :math:`a` and :math:`b` are the :math:`x`, :math:`y`, :math:`z`
|
where :math:`a` and :math:`b` are the :math:`x`, :math:`y`, :math:`z`
|
||||||
directions, :math:`\delta_{ab}` is the Kronecker delta function, and
|
directions, :math:`\delta_{ab}` is the Kronecker delta function, and
|
||||||
@ -83,7 +83,7 @@ The branch tensor is calculated as
|
|||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
B_{ab} = \frac{15}{6 \mathrm{Tr}(D)} (D_{ab} - \mathrm{Tr}(D) \delta_{ab})
|
B_{ab} = \frac{15}{2\, \mathrm{Tr}(D)} (D_{ab} - \frac{1}{3} \mathrm{Tr}(D) \delta_{ab})
|
||||||
|
|
||||||
where the tensor :math:`D` is defined as
|
where the tensor :math:`D` is defined as
|
||||||
|
|
||||||
@ -101,7 +101,7 @@ The normal force fabric tensor is calculated as
|
|||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
F^n_{ab} = \frac{15}{6\, \mathrm{Tr}(N)} (N_{ab} - \mathrm{Tr}(N) \delta_{ab})
|
F^n_{ab} = \frac{15}{2\, \mathrm{Tr}(N)} (N_{ab} - \frac{1}{3} \mathrm{Tr}(N) \delta_{ab})
|
||||||
|
|
||||||
where the tensor :math:`N` is defined as
|
where the tensor :math:`N` is defined as
|
||||||
|
|
||||||
@ -119,7 +119,7 @@ as
|
|||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
F^t_{ab} = \frac{15}{9\, \mathrm{Tr}(N)} (T_{ab} - \mathrm{Tr}(T) \delta_{ab})
|
F^t_{ab} = \frac{5}{\mathrm{Tr}(N)} (T_{ab} - \frac{1}{3} \mathrm{Tr}(T) \delta_{ab})
|
||||||
|
|
||||||
where the tensor :math:`T` is defined as
|
where the tensor :math:`T` is defined as
|
||||||
|
|
||||||
|
|||||||
@ -36,7 +36,7 @@ Examples
|
|||||||
Description
|
Description
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
.. versionadded:: TBD
|
.. versionadded:: 7Feb2024
|
||||||
|
|
||||||
This compute calculates a set of quantities related to the atomic
|
This compute calculates a set of quantities related to the atomic
|
||||||
cluster expansion (ACE) descriptors of the atoms in a group. ACE
|
cluster expansion (ACE) descriptors of the atoms in a group. ACE
|
||||||
|
|||||||
@ -153,7 +153,8 @@ Related commands
|
|||||||
Default
|
Default
|
||||||
"""""""
|
"""""""
|
||||||
|
|
||||||
none
|
By default the compute includes contributions from the keywords:
|
||||||
|
``ke pair bond angle dihedral improper kspace fix``
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
|||||||
@ -23,8 +23,9 @@ Syntax
|
|||||||
spx, spy, spz, sp, fmx, fmy, fmz,
|
spx, spy, spz, sp, fmx, fmy, fmz,
|
||||||
nbonds,
|
nbonds,
|
||||||
radius, diameter, omegax, omegay, omegaz,
|
radius, diameter, omegax, omegay, omegaz,
|
||||||
|
temperature, heatflow,
|
||||||
angmomx, angmomy, angmomz,
|
angmomx, angmomy, angmomz,
|
||||||
shapex,shapey, shapez,
|
shapex, shapey, shapez,
|
||||||
quatw, quati, quatj, quatk, tqx, tqy, tqz,
|
quatw, quati, quatj, quatk, tqx, tqy, tqz,
|
||||||
end1x, end1y, end1z, end2x, end2y, end2z,
|
end1x, end1y, end1z, end2x, end2y, end2z,
|
||||||
corner1x, corner1y, corner1z,
|
corner1x, corner1y, corner1z,
|
||||||
@ -56,6 +57,8 @@ Syntax
|
|||||||
*nbonds* = number of bonds assigned to an atom
|
*nbonds* = number of bonds assigned to an atom
|
||||||
*radius,diameter* = radius,diameter of spherical particle
|
*radius,diameter* = radius,diameter of spherical particle
|
||||||
*omegax,omegay,omegaz* = angular velocity of spherical particle
|
*omegax,omegay,omegaz* = angular velocity of spherical particle
|
||||||
|
*temperature* = internal temperature of spherical particle
|
||||||
|
*heatflow* = internal heat flow of spherical particle
|
||||||
*angmomx,angmomy,angmomz* = angular momentum of aspherical particle
|
*angmomx,angmomy,angmomz* = angular momentum of aspherical particle
|
||||||
*shapex,shapey,shapez* = 3 diameters of aspherical particle
|
*shapex,shapey,shapez* = 3 diameters of aspherical particle
|
||||||
*quatw,quati,quatj,quatk* = quaternion components for aspherical or body particles
|
*quatw,quati,quatj,quatk* = quaternion components for aspherical or body particles
|
||||||
|
|||||||
@ -32,7 +32,7 @@ Examples
|
|||||||
Description
|
Description
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
.. versionadded:: TBD
|
.. versionadded:: 7Feb2024
|
||||||
|
|
||||||
Define a compute that identifies rattlers in a system. Rattlers are often
|
Define a compute that identifies rattlers in a system. Rattlers are often
|
||||||
identified in granular or glassy packings as under-coordinated atoms that
|
identified in granular or glassy packings as under-coordinated atoms that
|
||||||
|
|||||||
@ -176,22 +176,29 @@ also numbers :math:`\ge 0.0`.
|
|||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|
||||||
The RDF is not computed for distances longer than the force cutoff,
|
By default, the RDF is not computed for distances longer than the
|
||||||
since processors (in parallel) do not know about atom coordinates for
|
largest force cutoff, since the neighbor list creation will only contain
|
||||||
atoms further away than that distance. If you want an RDF for larger
|
pairs up to that distance (plus neighbor list skin). This distance can
|
||||||
distances, you can use the :doc:`rerun <rerun>` command to post-process
|
be increased using the *cutoff* keyword but this keyword is only valid
|
||||||
a dump file and set the cutoff for the potential to be longer in the
|
with :doc:`neighbor styles 'bin' and 'nsq' <neighbor>`.
|
||||||
|
|
||||||
|
If you want an RDF for larger distances, you can also use the
|
||||||
|
:doc:`rerun <rerun>` command to post-process a dump file, use :doc:`pair
|
||||||
|
style zero <pair_zero>` and set the force cutoff to be longer in the
|
||||||
rerun script. Note that in the rerun context, the force cutoff is
|
rerun script. Note that in the rerun context, the force cutoff is
|
||||||
arbitrary, since you are not running dynamics and thus are not changing
|
arbitrary and with pair style zero you are not computing any forces, and
|
||||||
your model. The definition of :math:`g(r)` used by LAMMPS is only appropriate
|
you are not running dynamics you are not changing the model that
|
||||||
for characterizing atoms that are uniformly distributed throughout the
|
generated the trajectory.
|
||||||
simulation cell. In such cases, the coordination number is still
|
|
||||||
correct and meaningful. As an example, if a large simulation cell
|
The definition of :math:`g(r)` used by LAMMPS is only appropriate for
|
||||||
contains only one atom of type *itypeN* and one of *jtypeN*, then :math:`g(r)`
|
characterizing atoms that are uniformly distributed throughout the
|
||||||
will register an arbitrarily large spike at whatever distance they
|
simulation cell. In such cases, the coordination number is still correct
|
||||||
happen to be at, and zero everywhere else.
|
and meaningful. As an example, if a large simulation cell contains only
|
||||||
The function :math:`\text{coord}(r)` will show a step
|
one atom of type *itypeN* and one of *jtypeN*, then :math:`g(r)` will
|
||||||
change from zero to one at the location of the spike in :math:`g(r)`.
|
register an arbitrarily large spike at whatever distance they happen to
|
||||||
|
be at, and zero everywhere else. The function :math:`\text{coord}(r)`
|
||||||
|
will show a step change from zero to one at the location of the spike in
|
||||||
|
:math:`g(r)`.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
|
|||||||
@ -40,7 +40,7 @@ Examples
|
|||||||
Description
|
Description
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
.. versionadded:: TBD
|
.. versionadded:: 7Feb2024
|
||||||
|
|
||||||
Define a computation that extracts bond information computed by the ReaxFF
|
Define a computation that extracts bond information computed by the ReaxFF
|
||||||
potential specified by :doc:`pair_style reaxff <pair_reaxff>`.
|
potential specified by :doc:`pair_style reaxff <pair_reaxff>`.
|
||||||
|
|||||||
@ -56,8 +56,9 @@ Examples
|
|||||||
compute 1 all reduce sum c_force
|
compute 1 all reduce sum c_force
|
||||||
compute 1 all reduce/region subbox sum c_force
|
compute 1 all reduce/region subbox sum c_force
|
||||||
compute 2 all reduce min c_press[2] f_ave v_myKE
|
compute 2 all reduce min c_press[2] f_ave v_myKE
|
||||||
compute 2 all reduce min c_press[*] f_ave v_myKE
|
compute 2 all reduce min c_press[*] f_ave v_myKE inputs peratom
|
||||||
compute 3 fluid reduce max c_index[1] c_index[2] c_dist replace 1 3 replace 2 3
|
compute 3 fluid reduce max c_index[1] c_index[2] c_dist replace 1 3 replace 2 3
|
||||||
|
compute 4 all reduce max c_bond inputs local
|
||||||
|
|
||||||
Description
|
Description
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|||||||
@ -32,7 +32,7 @@ Examples
|
|||||||
Description
|
Description
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
.. versionadded:: TBD
|
.. versionadded:: 7Feb2024
|
||||||
|
|
||||||
Define a computation that performs the Supervised Learning Crystal
|
Define a computation that performs the Supervised Learning Crystal
|
||||||
Structure Analysis (SL-CSA) from :ref:`(Lafourcade) <Lafourcade2023_1>`
|
Structure Analysis (SL-CSA) from :ref:`(Lafourcade) <Lafourcade2023_1>`
|
||||||
|
|||||||
@ -289,7 +289,8 @@ Related commands
|
|||||||
Default
|
Default
|
||||||
"""""""
|
"""""""
|
||||||
|
|
||||||
none
|
By default the compute includes contributions from the keywords:
|
||||||
|
``ke pair bond angle dihedral improper kspace fix``
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
|||||||
@ -132,10 +132,13 @@ size does not change in time, and axis-aligned planes.
|
|||||||
The method only works with two-body pair interactions, because it
|
The method only works with two-body pair interactions, because it
|
||||||
requires the class method ``Pair::single()`` to be implemented, which is
|
requires the class method ``Pair::single()`` to be implemented, which is
|
||||||
not possible for manybody potentials. In particular, compute
|
not possible for manybody potentials. In particular, compute
|
||||||
*stress/mop/profile* and *stress/mop* do not work with more than two-body pair
|
*stress/mop/profile* and *stress/mop* do not work with more than two-body
|
||||||
interactions, long range (kspace) interactions and
|
pair interactions, long range (kspace) interactions and
|
||||||
improper intramolecular interactions.
|
improper intramolecular interactions.
|
||||||
|
|
||||||
|
The impact of fixes that affect the stress (e.g. fix langevin) is
|
||||||
|
also not included in the stress computed here.
|
||||||
|
|
||||||
Related commands
|
Related commands
|
||||||
""""""""""""""""
|
""""""""""""""""
|
||||||
|
|
||||||
|
|||||||
@ -268,6 +268,12 @@ molecule can be specified in the molecule file. See the
|
|||||||
required to be in this file are the coordinates and types of atoms in
|
required to be in this file are the coordinates and types of atoms in
|
||||||
the molecule.
|
the molecule.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
If you are using the *mol* keyword in combination with the
|
||||||
|
:doc:`atom style template <atom_style>` command, they must use
|
||||||
|
the same molecule template-ID.
|
||||||
|
|
||||||
Using a lattice to add molecules, e.g. via the *box* or *region* or
|
Using a lattice to add molecules, e.g. via the *box* or *region* or
|
||||||
*single* styles, is exactly the same as adding atoms on lattice
|
*single* styles, is exactly the same as adding atoms on lattice
|
||||||
points, except that entire molecules are added at each point, i.e. on
|
points, except that entire molecules are added at each point, i.e. on
|
||||||
@ -536,6 +542,11 @@ command.
|
|||||||
A rotation vector specified for a single molecule must be in
|
A rotation vector specified for a single molecule must be in
|
||||||
the z-direction for a 2d model.
|
the z-direction for a 2d model.
|
||||||
|
|
||||||
|
For :doc:`molecule templates <molecule>` that are created from multiple
|
||||||
|
files, i.e. contain multiple molecule *sets*, only the first set is
|
||||||
|
used. To create multiple molecules the files currently need to be
|
||||||
|
merged and different molecule IDs assigned with a Molecules section.
|
||||||
|
|
||||||
Related commands
|
Related commands
|
||||||
""""""""""""""""
|
""""""""""""""""
|
||||||
|
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
.. index:: dihedral_style charmm/kk
|
.. index:: dihedral_style charmm/kk
|
||||||
.. index:: dihedral_style charmm/omp
|
.. index:: dihedral_style charmm/omp
|
||||||
.. index:: dihedral_style charmmfsw
|
.. index:: dihedral_style charmmfsw
|
||||||
|
.. index:: dihedral_style charmmfsw/kk
|
||||||
|
|
||||||
dihedral_style charmm command
|
dihedral_style charmm command
|
||||||
=============================
|
=============================
|
||||||
@ -12,6 +13,8 @@ Accelerator Variants: *charmm/intel*, *charmm/kk*, *charmm/omp*
|
|||||||
dihedral_style charmmfsw command
|
dihedral_style charmmfsw command
|
||||||
================================
|
================================
|
||||||
|
|
||||||
|
Accelerator Variants: *charmmfsw/kk*
|
||||||
|
|
||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
@ -144,7 +147,9 @@ for more info.
|
|||||||
Related commands
|
Related commands
|
||||||
""""""""""""""""
|
""""""""""""""""
|
||||||
|
|
||||||
:doc:`dihedral_coeff <dihedral_coeff>`
|
:doc:`dihedral_coeff <dihedral_coeff>`,
|
||||||
|
:doc:`pair_style lj/charmm variants <pair_charmm>`,
|
||||||
|
:doc:`angle_style charmm <angle_charmm>`, :doc:`fix cmap <fix_cmap>`
|
||||||
|
|
||||||
Default
|
Default
|
||||||
"""""""
|
"""""""
|
||||||
|
|||||||
@ -104,7 +104,6 @@ Syntax
|
|||||||
q, mux, muy, muz, mu,
|
q, mux, muy, muz, mu,
|
||||||
radius, diameter, omegax, omegay, omegaz,
|
radius, diameter, omegax, omegay, omegaz,
|
||||||
angmomx, angmomy, angmomz, tqx, tqy, tqz,
|
angmomx, angmomy, angmomz, tqx, tqy, tqz,
|
||||||
heatflow, temperature,
|
|
||||||
c_ID, c_ID[I], f_ID, f_ID[I], v_name,
|
c_ID, c_ID[I], f_ID, f_ID[I], v_name,
|
||||||
i_name, d_name, i2_name[I], d2_name[I]
|
i_name, d_name, i2_name[I], d2_name[I]
|
||||||
|
|
||||||
@ -131,8 +130,6 @@ Syntax
|
|||||||
omegax,omegay,omegaz = angular velocity of spherical particle
|
omegax,omegay,omegaz = angular velocity of spherical particle
|
||||||
angmomx,angmomy,angmomz = angular momentum of aspherical particle
|
angmomx,angmomy,angmomz = angular momentum of aspherical particle
|
||||||
tqx,tqy,tqz = torque on finite-size particles
|
tqx,tqy,tqz = torque on finite-size particles
|
||||||
heatflow = rate of heat flow into particle
|
|
||||||
temperature = temperature of particle
|
|
||||||
c_ID = per-atom vector calculated by a compute with ID
|
c_ID = per-atom vector calculated by a compute with ID
|
||||||
c_ID[I] = Ith column of per-atom array calculated by a compute with ID, I can include wildcard (see below)
|
c_ID[I] = Ith column of per-atom array calculated by a compute with ID, I can include wildcard (see below)
|
||||||
f_ID = per-atom vector calculated by a fix with ID
|
f_ID = per-atom vector calculated by a fix with ID
|
||||||
|
|||||||
@ -226,6 +226,7 @@ accelerated styles exist.
|
|||||||
* :doc:`controller <fix_controller>` - apply control loop feedback mechanism
|
* :doc:`controller <fix_controller>` - apply control loop feedback mechanism
|
||||||
* :doc:`damping/cundall <fix_damping_cundall>` - Cundall non-viscous damping for granular simulations
|
* :doc:`damping/cundall <fix_damping_cundall>` - Cundall non-viscous damping for granular simulations
|
||||||
* :doc:`deform <fix_deform>` - change the simulation box size/shape
|
* :doc:`deform <fix_deform>` - change the simulation box size/shape
|
||||||
|
* :doc:`deform/pressure <fix_deform_pressure>` - change the simulation box size/shape with additional loading conditions
|
||||||
* :doc:`deposit <fix_deposit>` - add new atoms above a surface
|
* :doc:`deposit <fix_deposit>` - add new atoms above a surface
|
||||||
* :doc:`dpd/energy <fix_dpd_energy>` - constant energy dissipative particle dynamics
|
* :doc:`dpd/energy <fix_dpd_energy>` - constant energy dissipative particle dynamics
|
||||||
* :doc:`drag <fix_drag>` - drag atoms towards a defined coordinate
|
* :doc:`drag <fix_drag>` - drag atoms towards a defined coordinate
|
||||||
@ -427,6 +428,7 @@ accelerated styles exist.
|
|||||||
* :doc:`wall/body/polyhedron <fix_wall_body_polyhedron>` - time integration for body particles of style :doc:`rounded/polyhedron <Howto_body>`
|
* :doc:`wall/body/polyhedron <fix_wall_body_polyhedron>` - time integration for body particles of style :doc:`rounded/polyhedron <Howto_body>`
|
||||||
* :doc:`wall/colloid <fix_wall>` - Lennard-Jones wall interacting with finite-size particles
|
* :doc:`wall/colloid <fix_wall>` - Lennard-Jones wall interacting with finite-size particles
|
||||||
* :doc:`wall/ees <fix_wall_ees>` - wall for ellipsoidal particles
|
* :doc:`wall/ees <fix_wall_ees>` - wall for ellipsoidal particles
|
||||||
|
* :doc:`wall/flow <fix_wall_flow>` - flow boundary conditions
|
||||||
* :doc:`wall/gran <fix_wall_gran>` - frictional wall(s) for granular simulations
|
* :doc:`wall/gran <fix_wall_gran>` - frictional wall(s) for granular simulations
|
||||||
* :doc:`wall/gran/region <fix_wall_gran_region>` - :doc:`fix wall/region <fix_wall_region>` equivalent for use with granular particles
|
* :doc:`wall/gran/region <fix_wall_gran_region>` - :doc:`fix wall/region <fix_wall_region>` equivalent for use with granular particles
|
||||||
* :doc:`wall/harmonic <fix_wall>` - harmonic spring wall
|
* :doc:`wall/harmonic <fix_wall>` - harmonic spring wall
|
||||||
|
|||||||
@ -14,15 +14,15 @@ Syntax
|
|||||||
* balance = style name of this fix command
|
* balance = style name of this fix command
|
||||||
* Nfreq = perform dynamic load balancing every this many steps
|
* Nfreq = perform dynamic load balancing every this many steps
|
||||||
* thresh = imbalance threshold that must be exceeded to perform a re-balance
|
* thresh = imbalance threshold that must be exceeded to perform a re-balance
|
||||||
* style = *shift* or *rcb*
|
* style = *shift* or *rcb* or *report*
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
shift args = dimstr Niter stopthresh
|
*shift* args = dimstr Niter stopthresh
|
||||||
dimstr = sequence of letters containing *x* or *y* or *z*, each not more than once
|
dimstr = sequence of letters containing *x* or *y* or *z*, each not more than once
|
||||||
Niter = # of times to iterate within each dimension of dimstr sequence
|
Niter = # of times to iterate within each dimension of dimstr sequence
|
||||||
stopthresh = stop balancing when this imbalance threshold is reached
|
stopthresh = stop balancing when this imbalance threshold is reached
|
||||||
*rcb* args = none
|
*rcb* args = none
|
||||||
|
*report* args = none
|
||||||
|
|
||||||
* zero or more keyword/arg pairs may be appended
|
* zero or more keyword/arg pairs may be appended
|
||||||
* keyword = *weight* or *out*
|
* keyword = *weight* or *out*
|
||||||
@ -70,6 +70,13 @@ re-balancing is performed periodically during the simulation. To
|
|||||||
perform "static" balancing, before or between runs, see the
|
perform "static" balancing, before or between runs, see the
|
||||||
:doc:`balance <balance>` command.
|
:doc:`balance <balance>` command.
|
||||||
|
|
||||||
|
.. versionadded:: TBD
|
||||||
|
|
||||||
|
The *report* balance style only computes the load imbalance but
|
||||||
|
does not attempt any re-balancing. This way the load imbalance
|
||||||
|
information can be used otherwise, for instance for stopping a
|
||||||
|
run with :doc:`fix halt <fix_halt>`.
|
||||||
|
|
||||||
Load-balancing is typically most useful if the particles in the
|
Load-balancing is typically most useful if the particles in the
|
||||||
simulation box have a spatially-varying density distribution or
|
simulation box have a spatially-varying density distribution or
|
||||||
where the computational cost varies significantly between different
|
where the computational cost varies significantly between different
|
||||||
|
|||||||
@ -253,11 +253,11 @@ built with that package. See the :doc:`Build package <Build_package>`
|
|||||||
page for more info.
|
page for more info.
|
||||||
|
|
||||||
The :doc:`atom_style <atom_style>`, used must contain the charge
|
The :doc:`atom_style <atom_style>`, used must contain the charge
|
||||||
property, for example, the style could be *charge* or *full*. Only
|
property and have per atom type masses, for example, the style could be
|
||||||
usable for 3D simulations. Atoms specified as free ions cannot be part
|
*charge* or *full*. Only usable for 3D simulations. Atoms specified as
|
||||||
of rigid bodies or molecules and cannot have bonding interactions. The
|
free ions cannot be part of rigid bodies or molecules and cannot have
|
||||||
scheme is limited to integer charges, any atoms with non-integer charges
|
bonding interactions. The scheme is limited to integer charges, any
|
||||||
will not be considered by the fix.
|
atoms with non-integer charges will not be considered by the fix.
|
||||||
|
|
||||||
All interaction potentials used must be continuous, otherwise the MD
|
All interaction potentials used must be continuous, otherwise the MD
|
||||||
integration and the particle exchange MC moves do not correspond to the
|
integration and the particle exchange MC moves do not correspond to the
|
||||||
|
|||||||
@ -4,6 +4,9 @@
|
|||||||
fix deform command
|
fix deform command
|
||||||
==================
|
==================
|
||||||
|
|
||||||
|
:doc:`fix deform/pressure <fix_deform_pressure>` command
|
||||||
|
========================================================
|
||||||
|
|
||||||
Accelerator Variants: *deform/kk*
|
Accelerator Variants: *deform/kk*
|
||||||
|
|
||||||
Syntax
|
Syntax
|
||||||
@ -11,18 +14,18 @@ Syntax
|
|||||||
|
|
||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix ID group-ID deform N parameter args ... keyword value ...
|
fix ID group-ID fix_style N parameter style args ... keyword value ...
|
||||||
|
|
||||||
* ID, group-ID are documented in :doc:`fix <fix>` command
|
* ID, group-ID are documented in :doc:`fix <fix>` command
|
||||||
* deform = style name of this fix command
|
* fix_style = *deform* or *deform/pressure*
|
||||||
* N = perform box deformation every this many timesteps
|
* N = perform box deformation every this many timesteps
|
||||||
* one or more parameter/arg pairs may be appended
|
* one or more parameter/style/args sequences of arguments may be appended
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
parameter = *x* or *y* or *z* or *xy* or *xz* or *yz*
|
parameter = *x* or *y* or *z* or *xy* or *xz* or *yz*
|
||||||
*x*, *y*, *z* args = style value(s)
|
*x*, *y*, *z* args = style value(s)
|
||||||
style = *final* or *delta* or *scale* or *vel* or *erate* or *trate* or *volume* or *wiggle* or *variable*
|
style = *final* or *delta* or *scale* or *vel* or *erate* or *trate* or *volume* or *wiggle* or *variable* or *pressure* or *pressure/mean*
|
||||||
*final* values = lo hi
|
*final* values = lo hi
|
||||||
lo hi = box boundaries at end of run (distance units)
|
lo hi = box boundaries at end of run (distance units)
|
||||||
*delta* values = dlo dhi
|
*delta* values = dlo dhi
|
||||||
@ -43,8 +46,15 @@ Syntax
|
|||||||
*variable* values = v_name1 v_name2
|
*variable* values = v_name1 v_name2
|
||||||
v_name1 = variable with name1 for box length change as function of time
|
v_name1 = variable with name1 for box length change as function of time
|
||||||
v_name2 = variable with name2 for change rate as function of time
|
v_name2 = variable with name2 for change rate as function of time
|
||||||
|
*pressure* values = target gain (ONLY available in :doc:`fix deform/pressure <fix_deform_pressure>` command)
|
||||||
|
target = target pressure (pressure units)
|
||||||
|
gain = proportional gain constant (1/(time * pressure) or 1/time units)
|
||||||
|
*pressure/mean* values = target gain (ONLY available in :doc:`fix deform/pressure <fix_deform_pressure>` command)
|
||||||
|
target = target pressure (pressure units)
|
||||||
|
gain = proportional gain constant (1/(time * pressure) or 1/time units)
|
||||||
|
|
||||||
*xy*, *xz*, *yz* args = style value
|
*xy*, *xz*, *yz* args = style value
|
||||||
style = *final* or *delta* or *vel* or *erate* or *trate* or *wiggle*
|
style = *final* or *delta* or *vel* or *erate* or *trate* or *wiggle* or *variable*
|
||||||
*final* value = tilt
|
*final* value = tilt
|
||||||
tilt = tilt factor at end of run (distance units)
|
tilt = tilt factor at end of run (distance units)
|
||||||
*delta* value = dtilt
|
*delta* value = dtilt
|
||||||
@ -62,9 +72,12 @@ Syntax
|
|||||||
*variable* values = v_name1 v_name2
|
*variable* values = v_name1 v_name2
|
||||||
v_name1 = variable with name1 for tilt change as function of time
|
v_name1 = variable with name1 for tilt change as function of time
|
||||||
v_name2 = variable with name2 for change rate as function of time
|
v_name2 = variable with name2 for change rate as function of time
|
||||||
|
*pressure* values = target gain (ONLY available in :doc:`fix deform/pressure <fix_deform_pressure>` command)
|
||||||
|
target = target pressure (pressure units)
|
||||||
|
gain = proportional gain constant (1/(time * pressure) or 1/time units)
|
||||||
|
|
||||||
* zero or more keyword/value pairs may be appended
|
* zero or more keyword/value pairs may be appended
|
||||||
* keyword = *remap* or *flip* or *units*
|
* keyword = *remap* or *flip* or *units* or *couple* or *vol/balance/p* or *max/rate* or *normalize/pressure*
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
@ -77,6 +90,15 @@ Syntax
|
|||||||
*units* value = *lattice* or *box*
|
*units* value = *lattice* or *box*
|
||||||
lattice = distances are defined in lattice units
|
lattice = distances are defined in lattice units
|
||||||
box = distances are defined in simulation box units
|
box = distances are defined in simulation box units
|
||||||
|
*couple* value = *none* or *xyz* or *xy* or *yz* or *xz* (ONLY available in :doc:`fix deform/pressure <fix_deform_pressure>` command)
|
||||||
|
couple pressure values of various dimensions
|
||||||
|
*vol/balance/p* value = *yes* or *no* (ONLY available in :doc:`fix deform/pressure <fix_deform_pressure>` command)
|
||||||
|
Modifies the behavior of the *volume* option to try and balance pressures
|
||||||
|
*max/rate* value = *rate* (ONLY available in :doc:`fix deform/pressure <fix_deform_pressure>` command)
|
||||||
|
rate = maximum strain rate for pressure control
|
||||||
|
*normalize/pressure* value = *yes* or *no* (ONLY available in :doc:`fix deform/pressure <fix_deform_pressure>` command)
|
||||||
|
Modifies pressure controls such that the deviation in pressure is normalized by the target pressure
|
||||||
|
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
""""""""
|
""""""""
|
||||||
@ -88,6 +110,8 @@ Examples
|
|||||||
fix 1 all deform 1 xy erate 0.001 remap v
|
fix 1 all deform 1 xy erate 0.001 remap v
|
||||||
fix 1 all deform 10 y delta -0.5 0.5 xz vel 1.0
|
fix 1 all deform 10 y delta -0.5 0.5 xz vel 1.0
|
||||||
|
|
||||||
|
See examples for :doc:`fix deform/pressure <fix_deform_pressure>` on its doc page
|
||||||
|
|
||||||
Description
|
Description
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
@ -95,29 +119,46 @@ Change the volume and/or shape of the simulation box during a dynamics
|
|||||||
run. Orthogonal simulation boxes have 3 adjustable parameters
|
run. Orthogonal simulation boxes have 3 adjustable parameters
|
||||||
(x,y,z). Triclinic (non-orthogonal) simulation boxes have 6
|
(x,y,z). Triclinic (non-orthogonal) simulation boxes have 6
|
||||||
adjustable parameters (x,y,z,xy,xz,yz). Any or all of them can be
|
adjustable parameters (x,y,z,xy,xz,yz). Any or all of them can be
|
||||||
adjusted independently and simultaneously by this command.
|
adjusted independently and simultaneously.
|
||||||
|
|
||||||
This fix can be used to perform non-equilibrium MD (NEMD) simulations
|
The fix deform command allows use of all the arguments listed above,
|
||||||
of a continuously strained system. See the :doc:`fix nvt/sllod <fix_nvt_sllod>` and :doc:`compute temp/deform <compute_temp_deform>` commands for more details. Note
|
except those flagged as available ONLY for the :doc:`fix
|
||||||
that simulation of a continuously extended system (extensional flow)
|
deform/pressure <fix_deform_pressure>` command, which are
|
||||||
can be modeled using the :ref:`UEF package <PKG-UEF>` and its :doc:`fix commands <fix_nh_uef>`.
|
pressure-based controls. The fix deform/pressure command allows use
|
||||||
|
of all the arguments listed above.
|
||||||
|
|
||||||
|
The rest of this doc page explains the options common to both
|
||||||
|
commands. The :doc:`fix deform/pressure <fix_deform_pressure>` doc
|
||||||
|
page explains the options available ONLY with the fix deform/pressure
|
||||||
|
command. Note that a simulation can define only a single deformation
|
||||||
|
command: fix deform or fix deform/pressure.
|
||||||
|
|
||||||
|
Both these fixes can be used to perform non-equilibrium MD (NEMD)
|
||||||
|
simulations of a continuously strained system. See the :doc:`fix
|
||||||
|
nvt/sllod <fix_nvt_sllod>` and :doc:`compute temp/deform
|
||||||
|
<compute_temp_deform>` commands for more details. Note that
|
||||||
|
simulation of a continuously extended system (extensional flow) can be
|
||||||
|
modeled using the :ref:`UEF package <PKG-UEF>` and its :doc:`fix
|
||||||
|
commands <fix_nh_uef>`.
|
||||||
|
|
||||||
For the *x*, *y*, *z* parameters, the associated dimension cannot be
|
For the *x*, *y*, *z* parameters, the associated dimension cannot be
|
||||||
shrink-wrapped. For the *xy*, *yz*, *xz* parameters, the associated
|
shrink-wrapped. For the *xy*, *yz*, *xz* parameters, the associated
|
||||||
second dimension cannot be shrink-wrapped. Dimensions not varied by this
|
second dimension cannot be shrink-wrapped. Dimensions not varied by
|
||||||
command can be periodic or non-periodic. Dimensions corresponding to
|
this command can be periodic or non-periodic. Dimensions
|
||||||
unspecified parameters can also be controlled by a :doc:`fix npt <fix_nh>` or :doc:`fix nph <fix_nh>` command.
|
corresponding to unspecified parameters can also be controlled by a
|
||||||
|
:doc:`fix npt <fix_nh>` or :doc:`fix nph <fix_nh>` command.
|
||||||
|
|
||||||
The size and shape of the simulation box at the beginning of the
|
The size and shape of the simulation box at the beginning of the
|
||||||
simulation run were either specified by the
|
simulation run were either specified by the :doc:`create_box
|
||||||
:doc:`create_box <create_box>` or :doc:`read_data <read_data>` or
|
<create_box>` or :doc:`read_data <read_data>` or :doc:`read_restart
|
||||||
:doc:`read_restart <read_restart>` command used to setup the simulation
|
<read_restart>` command used to setup the simulation initially if it
|
||||||
initially if it is the first run, or they are the values from the end
|
is the first run, or they are the values from the end of the previous
|
||||||
of the previous run. The :doc:`create_box <create_box>`, :doc:`read data <read_data>`, and :doc:`read_restart <read_restart>` commands
|
run. The :doc:`create_box <create_box>`, :doc:`read data
|
||||||
specify whether the simulation box is orthogonal or non-orthogonal
|
<read_data>`, and :doc:`read_restart <read_restart>` commands specify
|
||||||
(triclinic) and explain the meaning of the xy,xz,yz tilt factors. If
|
whether the simulation box is orthogonal or non-orthogonal (triclinic)
|
||||||
fix deform changes the xy,xz,yz tilt factors, then the simulation box
|
and explain the meaning of the xy,xz,yz tilt factors. If fix deform
|
||||||
must be triclinic, even if its initial tilt factors are 0.0.
|
changes the xy,xz,yz tilt factors, then the simulation box must be
|
||||||
|
triclinic, even if its initial tilt factors are 0.0.
|
||||||
|
|
||||||
As described below, the desired simulation box size and shape at the
|
As described below, the desired simulation box size and shape at the
|
||||||
end of the run are determined by the parameters of the fix deform
|
end of the run are determined by the parameters of the fix deform
|
||||||
@ -258,21 +299,22 @@ of the units keyword below.
|
|||||||
|
|
||||||
The *variable* style changes the specified box length dimension by
|
The *variable* style changes the specified box length dimension by
|
||||||
evaluating a variable, which presumably is a function of time. The
|
evaluating a variable, which presumably is a function of time. The
|
||||||
variable with *name1* must be an :doc:`equal-style variable <variable>`
|
variable with *name1* must be an :doc:`equal-style variable
|
||||||
and should calculate a change in box length in units of distance.
|
<variable>` and should calculate a change in box length in units of
|
||||||
Note that this distance is in box units, not lattice units; see the
|
distance. Note that this distance is in box units, not lattice units;
|
||||||
discussion of the *units* keyword below. The formula associated with
|
see the discussion of the *units* keyword below. The formula
|
||||||
variable *name1* can reference the current timestep. Note that it
|
associated with variable *name1* can reference the current timestep.
|
||||||
should return the "change" in box length, not the absolute box length.
|
Note that it should return the "change" in box length, not the
|
||||||
This means it should evaluate to 0.0 when invoked on the initial
|
absolute box length. This means it should evaluate to 0.0 when
|
||||||
timestep of the run following the definition of fix deform. It should
|
invoked on the initial timestep of the run following the definition of
|
||||||
evaluate to a value > 0.0 to dilate the box at future times, or a
|
fix deform. It should evaluate to a value > 0.0 to dilate the box at
|
||||||
value < 0.0 to compress the box.
|
future times, or a value < 0.0 to compress the box.
|
||||||
|
|
||||||
The variable *name2* must also be an :doc:`equal-style variable <variable>` and should calculate the rate of box length
|
The variable *name2* must also be an :doc:`equal-style variable
|
||||||
change, in units of distance/time, i.e. the time-derivative of the
|
<variable>` and should calculate the rate of box length change, in
|
||||||
*name1* variable. This quantity is used internally by LAMMPS to reset
|
units of distance/time, i.e. the time-derivative of the *name1*
|
||||||
atom velocities when they cross periodic boundaries. It is computed
|
variable. This quantity is used internally by LAMMPS to reset atom
|
||||||
|
velocities when they cross periodic boundaries. It is computed
|
||||||
internally for the other styles, but you must provide it when using an
|
internally for the other styles, but you must provide it when using an
|
||||||
arbitrary variable.
|
arbitrary variable.
|
||||||
|
|
||||||
@ -414,12 +456,13 @@ can reference the current timestep. Note that it should return the
|
|||||||
should evaluate to 0.0 when invoked on the initial timestep of the run
|
should evaluate to 0.0 when invoked on the initial timestep of the run
|
||||||
following the definition of fix deform.
|
following the definition of fix deform.
|
||||||
|
|
||||||
The variable *name2* must also be an :doc:`equal-style variable <variable>` and should calculate the rate of tilt change,
|
The variable *name2* must also be an :doc:`equal-style variable
|
||||||
in units of distance/time, i.e. the time-derivative of the *name1*
|
<variable>` and should calculate the rate of tilt change, in units of
|
||||||
variable. This quantity is used internally by LAMMPS to reset atom
|
distance/time, i.e. the time-derivative of the *name1* variable. This
|
||||||
velocities when they cross periodic boundaries. It is computed
|
quantity is used internally by LAMMPS to reset atom velocities when
|
||||||
internally for the other styles, but you must provide it when using an
|
they cross periodic boundaries. It is computed internally for the
|
||||||
arbitrary variable.
|
other styles, but you must provide it when using an arbitrary
|
||||||
|
variable.
|
||||||
|
|
||||||
Here is an example of using the *variable* style to perform the same
|
Here is an example of using the *variable* style to perform the same
|
||||||
box deformation as the *wiggle* style formula listed above, where we
|
box deformation as the *wiggle* style formula listed above, where we
|
||||||
@ -510,33 +553,40 @@ box without explicit remapping of their coordinates.
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
For non-equilibrium MD (NEMD) simulations using "remap v" it is
|
For non-equilibrium MD (NEMD) simulations using "remap v" it is
|
||||||
usually desirable that the fluid (or flowing material, e.g. granular
|
usually desirable that the fluid (or flowing material,
|
||||||
particles) stream with a velocity profile consistent with the
|
e.g. granular particles) stream with a velocity profile consistent
|
||||||
deforming box. As mentioned above, using a thermostat such as :doc:`fix nvt/sllod <fix_nvt_sllod>` or :doc:`fix lavgevin <fix_langevin>`
|
with the deforming box. As mentioned above, using a thermostat
|
||||||
(with a bias provided by :doc:`compute temp/deform <compute_temp_deform>`), will typically accomplish
|
such as :doc:`fix nvt/sllod <fix_nvt_sllod>` or :doc:`fix lavgevin
|
||||||
that. If you do not use a thermostat, then there is no driving force
|
<fix_langevin>` (with a bias provided by :doc:`compute temp/deform
|
||||||
pushing the atoms to flow in a manner consistent with the deforming
|
<compute_temp_deform>`), will typically accomplish that. If you do
|
||||||
box. E.g. for a shearing system the box deformation velocity may vary
|
not use a thermostat, then there is no driving force pushing the
|
||||||
|
atoms to flow in a manner consistent with the deforming box.
|
||||||
|
E.g. for a shearing system the box deformation velocity may vary
|
||||||
from 0 at the bottom to 10 at the top of the box. But the stream
|
from 0 at the bottom to 10 at the top of the box. But the stream
|
||||||
velocity profile of the atoms may vary from -5 at the bottom to +5 at
|
velocity profile of the atoms may vary from -5 at the bottom to +5
|
||||||
the top. You can monitor these effects using the :doc:`fix ave/chunk <fix_ave_chunk>`, :doc:`compute temp/deform <compute_temp_deform>`, and :doc:`compute temp/profile <compute_temp_profile>` commands. One way to induce
|
at the top. You can monitor these effects using the :doc:`fix
|
||||||
atoms to stream consistent with the box deformation is to give them an
|
ave/chunk <fix_ave_chunk>`, :doc:`compute temp/deform
|
||||||
|
<compute_temp_deform>`, and :doc:`compute temp/profile
|
||||||
|
<compute_temp_profile>` commands. One way to induce atoms to
|
||||||
|
stream consistent with the box deformation is to give them an
|
||||||
initial velocity profile, via the :doc:`velocity ramp <velocity>`
|
initial velocity profile, via the :doc:`velocity ramp <velocity>`
|
||||||
command, that matches the box deformation rate. This also typically
|
command, that matches the box deformation rate. This also
|
||||||
helps the system come to equilibrium more quickly, even if a
|
typically helps the system come to equilibrium more quickly, even
|
||||||
thermostat is used.
|
if a thermostat is used.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
If a :doc:`fix rigid <fix_rigid>` is defined for rigid bodies, and
|
If a :doc:`fix rigid <fix_rigid>` is defined for rigid bodies, and
|
||||||
*remap* is set to *x*, then the center-of-mass coordinates of rigid
|
*remap* is set to *x*, then the center-of-mass coordinates of rigid
|
||||||
bodies will be remapped to the changing simulation box. This will be
|
bodies will be remapped to the changing simulation box. This will
|
||||||
done regardless of whether atoms in the rigid bodies are in the fix
|
be done regardless of whether atoms in the rigid bodies are in the
|
||||||
deform group or not. The velocity of the centers of mass are not
|
fix deform group or not. The velocity of the centers of mass are
|
||||||
remapped even if *remap* is set to *v*, since :doc:`fix nvt/sllod <fix_nvt_sllod>` does not currently do anything special
|
not remapped even if *remap* is set to *v*, since :doc:`fix
|
||||||
|
nvt/sllod <fix_nvt_sllod>` does not currently do anything special
|
||||||
for rigid particles. If you wish to perform a NEMD simulation of
|
for rigid particles. If you wish to perform a NEMD simulation of
|
||||||
rigid particles, you can either thermostat them independently or
|
rigid particles, you can either thermostat them independently or
|
||||||
include a background fluid and thermostat the fluid via :doc:`fix nvt/sllod <fix_nvt_sllod>`.
|
include a background fluid and thermostat the fluid via :doc:`fix
|
||||||
|
nvt/sllod <fix_nvt_sllod>`.
|
||||||
|
|
||||||
The *flip* keyword allows the tilt factors for a triclinic box to
|
The *flip* keyword allows the tilt factors for a triclinic box to
|
||||||
exceed half the distance of the parallel box length, as discussed
|
exceed half the distance of the parallel box length, as discussed
|
||||||
@ -568,7 +618,8 @@ command if you want to include lattice spacings in a variable formula.
|
|||||||
Restart, fix_modify, output, run start/stop, minimize info
|
Restart, fix_modify, output, run start/stop, minimize info
|
||||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
|
||||||
This fix will restore the initial box settings from :doc:`binary restart files <restart>`, which allows the fix to be properly continue
|
This fix will restore the initial box settings from :doc:`binary
|
||||||
|
restart files <restart>`, which allows the fix to be properly continue
|
||||||
deformation, when using the start/stop options of the :doc:`run <run>`
|
deformation, when using the start/stop options of the :doc:`run <run>`
|
||||||
command. None of the :doc:`fix_modify <fix_modify>` options are
|
command. None of the :doc:`fix_modify <fix_modify>` options are
|
||||||
relevant to this fix. No global or per-atom quantities are stored by
|
relevant to this fix. No global or per-atom quantities are stored by
|
||||||
@ -586,12 +637,14 @@ Restrictions
|
|||||||
You cannot apply x, y, or z deformations to a dimension that is
|
You cannot apply x, y, or z deformations to a dimension that is
|
||||||
shrink-wrapped via the :doc:`boundary <boundary>` command.
|
shrink-wrapped via the :doc:`boundary <boundary>` command.
|
||||||
|
|
||||||
You cannot apply xy, yz, or xz deformations to a second dimension (y in
|
You cannot apply xy, yz, or xz deformations to a second dimension (y
|
||||||
xy) that is shrink-wrapped via the :doc:`boundary <boundary>` command.
|
in xy) that is shrink-wrapped via the :doc:`boundary <boundary>`
|
||||||
|
command.
|
||||||
|
|
||||||
Related commands
|
Related commands
|
||||||
""""""""""""""""
|
""""""""""""""""
|
||||||
|
|
||||||
|
:doc:`fix deform/pressure <fix_deform_pressure>`,
|
||||||
:doc:`change_box <change_box>`
|
:doc:`change_box <change_box>`
|
||||||
|
|
||||||
Default
|
Default
|
||||||
|
|||||||
319
doc/src/fix_deform_pressure.rst
Normal file
319
doc/src/fix_deform_pressure.rst
Normal file
@ -0,0 +1,319 @@
|
|||||||
|
.. index:: fix deform/pressure
|
||||||
|
|
||||||
|
fix deform/pressure command
|
||||||
|
===========================
|
||||||
|
|
||||||
|
Syntax
|
||||||
|
""""""
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
fix ID group-ID deform/pressure N parameter style args ... keyword value ...
|
||||||
|
|
||||||
|
* ID, group-ID are documented in :doc:`fix <fix>` command
|
||||||
|
* deform/pressure = style name of this fix command
|
||||||
|
* N = perform box deformation every this many timesteps
|
||||||
|
* one or more parameter/arg sequences may be appended
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
parameter = *x* or *y* or *z* or *xy* or *xz* or *yz* or *box*
|
||||||
|
*x*, *y*, *z* args = style value(s)
|
||||||
|
style = *final* or *delta* or *scale* or *vel* or *erate* or *trate* or *volume* or *wiggle* or *variable* or *pressure* or *pressure/mean*
|
||||||
|
*pressure* values = target gain
|
||||||
|
target = target pressure (pressure units)
|
||||||
|
gain = proportional gain constant (1/(time * pressure) or 1/time units)
|
||||||
|
*pressure/mean* values = target gain
|
||||||
|
target = target pressure (pressure units)
|
||||||
|
gain = proportional gain constant (1/(time * pressure) or 1/time units)
|
||||||
|
NOTE: All other styles are documented by the :doc:`fix deform <fix_deform>` command
|
||||||
|
|
||||||
|
*xy*, *xz*, *yz* args = style value
|
||||||
|
style = *final* or *delta* or *vel* or *erate* or *trate* or *wiggle* or *variable* or *pressure*
|
||||||
|
*pressure* values = target gain
|
||||||
|
target = target pressure (pressure units)
|
||||||
|
gain = proportional gain constant (1/(time * pressure) or 1/time units)
|
||||||
|
NOTE: All other styles are documented by the :doc:`fix deform <fix_deform>` command
|
||||||
|
|
||||||
|
*box* = style value
|
||||||
|
style = *volume* or *pressure*
|
||||||
|
*volume* value = none = isotropically adjust system to preserve volume of system
|
||||||
|
*pressure* values = target gain
|
||||||
|
target = target mean pressure (pressure units)
|
||||||
|
gain = proportional gain constant (1/(time * pressure) or 1/time units)
|
||||||
|
|
||||||
|
* zero or more keyword/value pairs may be appended
|
||||||
|
* keyword = *remap* or *flip* or *units* or *couple* or *vol/balance/p* or *max/rate* or *normalize/pressure*
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
*couple* value = *none* or *xyz* or *xy* or *yz* or *xz*
|
||||||
|
couple pressure values of various dimensions
|
||||||
|
*vol/balance/p* value = *yes* or *no*
|
||||||
|
Modifies the behavior of the *volume* option to try and balance pressures
|
||||||
|
*max/rate* value = *rate*
|
||||||
|
rate = maximum strain rate for pressure control
|
||||||
|
*normalize/pressure* value = *yes* or *no*
|
||||||
|
Modifies pressure controls such that the deviation in pressure is normalized by the target pressure
|
||||||
|
NOTE: All other keywords are documented by the :doc:`fix deform <fix_deform>` command
|
||||||
|
|
||||||
|
Examples
|
||||||
|
""""""""
|
||||||
|
|
||||||
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
|
fix 1 all deform/pressure 1 x pressure 2.0 0.1 normalize/pressure yes max/rate 0.001
|
||||||
|
fix 1 all deform/pressure 1 x trate 0.1 y volume z volume vol/balance/p yes
|
||||||
|
fix 1 all deform/pressure 1 x trate 0.1 y pressure/mean 0.0 1.0 z pressure/mean 0.0 1.0
|
||||||
|
|
||||||
|
Description
|
||||||
|
"""""""""""
|
||||||
|
|
||||||
|
.. versionadded:: TBD
|
||||||
|
|
||||||
|
This fix is an extension of the :doc:`fix deform <fix_deform>`
|
||||||
|
command, which allows all of its options to be used as well as new
|
||||||
|
pressure-based controls implemented by this command.
|
||||||
|
|
||||||
|
All arguments described on the :doc:`fix deform <fix_deform>` doc page
|
||||||
|
also apply to this fix unless otherwise noted below. The rest of this
|
||||||
|
doc page explains the arguments specific to this fix. Note that a
|
||||||
|
simulation can define only a single deformation command: fix deform or
|
||||||
|
fix deform/pressure.
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
For the *x*, *y*, and *z* parameters, this is the meaning of the
|
||||||
|
styles and values provided by this fix.
|
||||||
|
|
||||||
|
The *pressure* style adjusts a dimension's box length to control the
|
||||||
|
corresponding component of the pressure tensor. This option attempts to
|
||||||
|
maintain a specified target pressure using a linear controller where the
|
||||||
|
box length :math:`L` evolves according to the equation
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
\frac{d L(t)}{dt} = L(t) k (P_t - P)
|
||||||
|
|
||||||
|
where :math:`k` is a proportional gain constant, :math:`P_t` is the target
|
||||||
|
pressure, and :math:`P` is the current pressure along that dimension. This
|
||||||
|
approach is similar to the method used to control the pressure by
|
||||||
|
:doc:`fix press/berendsen <fix_press_berendsen>`. The target pressure
|
||||||
|
accepts either a constant numeric value or a LAMMPS :ref:`variable <variable>`.
|
||||||
|
Notably, this variable can be a function of time or other components of
|
||||||
|
the pressure tensor. By default, :math:`k` has units of 1/(time * pressure)
|
||||||
|
although this will change if the *normalize/pressure* option is set as
|
||||||
|
:ref:`discussed below <deform_normalize>`. There is no proven method
|
||||||
|
to choosing an appropriate value of :math:`k` as it will depend on the
|
||||||
|
specific details of a simulation. Testing different values is recommended.
|
||||||
|
|
||||||
|
By default, there is no limit on the resulting strain rate in any dimension.
|
||||||
|
A maximum limit can be applied using the :ref:`max/rate <deform_max_rate>`
|
||||||
|
option. Akin to :doc:`fix nh <fix_nh>`, pressures in different dimensions
|
||||||
|
can be coupled using the :ref:`couple <deform_couple>` option. This means
|
||||||
|
the instantaneous pressure along coupled dimensions are averaged and the box
|
||||||
|
strains identically along the coupled dimensions.
|
||||||
|
|
||||||
|
The *pressure/mean* style changes a dimension's box length to maintain
|
||||||
|
a constant mean pressure defined as the trace of the pressure tensor.
|
||||||
|
This option has identical arguments to the *pressure* style and a similar
|
||||||
|
functional equation, except the current and target pressures refer to the
|
||||||
|
mean trace of the pressure tensor. All options for the *pressure* style
|
||||||
|
also apply to the *pressure/mean* style except for the
|
||||||
|
:ref:`couple <deform_couple>` option.
|
||||||
|
|
||||||
|
Note that while this style can be identical to coupled *pressure* styles,
|
||||||
|
it is generally not the same. For instance in 2D, a coupled *pressure*
|
||||||
|
style in the *x* and *y* dimensions would be equivalent to using the
|
||||||
|
*pressure/mean* style with identical settings in each dimension. However,
|
||||||
|
it would not be the same if settings (e.g. gain constants) were used in
|
||||||
|
the *x* and *y* dimensions or if the *pressure/mean* command was only applied
|
||||||
|
along one dimension.
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
For the *xy*, *xz*, and *yz* parameters, this is the meaning of the
|
||||||
|
styles and values provided by this fix. Note that changing the
|
||||||
|
tilt factors of a triclinic box does not change its volume.
|
||||||
|
|
||||||
|
The *pressure* style adjusts a tilt factor to control the corresponding
|
||||||
|
off-diagonal component of the pressure tensor. This option attempts to
|
||||||
|
maintain a specified target value using a linear controller where the
|
||||||
|
tilt factor T evolves according to the equation
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
\frac{d T(t)}{dt} = L(t) k (P - P_t)
|
||||||
|
|
||||||
|
where :math:`k` is a proportional gain constant, :math:`P_t` is the
|
||||||
|
target pressure, :math:`P` is the current pressure, and :math:`L` is
|
||||||
|
the perpendicular box length. The target pressure accepts either a
|
||||||
|
constant numeric value or a LAMMPS :ref:`variable
|
||||||
|
<variable>`. Notably, this variable can be a function of time or other
|
||||||
|
components of the pressure tensor. By default, :math:`k` has units of
|
||||||
|
1/(time * pressure) although this will change if the
|
||||||
|
*normalize/pessure* option is set as :ref:`discussed below
|
||||||
|
<deform_normalize>`. There is no proven method to choosing an
|
||||||
|
appropriate value of :math:`k` as it will depend on the specific
|
||||||
|
details of a simulation and testing different values is
|
||||||
|
recommended. One can also apply a maximum limit to the magnitude of
|
||||||
|
the applied strain using the :ref:`max/rate <deform_max_rate>` option.
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
The *box* parameter provides an additional control over the *x*, *y*,
|
||||||
|
and *z* box lengths by isotropically dilating or contracting the box
|
||||||
|
to either maintain a fixed mean pressure or volume. This isotropic
|
||||||
|
scaling is applied after the box is deformed by the above *x*, *y*,
|
||||||
|
*z*, *xy*, *xz*, and *yz* styles, acting as a second deformation
|
||||||
|
step. This parameter will change the overall strain rate in the *x*,
|
||||||
|
*y*, or *z* dimensions. This parameter can only be used in
|
||||||
|
combination with the *x*, *y*, or *z* commands: *vel*, *erate*,
|
||||||
|
*trate*, *pressure*, or *wiggle*. This is the meaning of its styles
|
||||||
|
and values.
|
||||||
|
|
||||||
|
The *volume* style isotropically scales box lengths to maintain a constant
|
||||||
|
box volume in response to deformation from other parameters. This style
|
||||||
|
may be useful in scenarios where one wants to apply a constant deviatoric
|
||||||
|
pressure using *pressure* styles in the *x*, *y*, and *z* dimensions (
|
||||||
|
deforming the shape of the box), while maintaining a constant volume.
|
||||||
|
|
||||||
|
The *pressure* style isotropically scales box lengths in an attempt to
|
||||||
|
maintain a target mean pressure (the trace of the pressure tensor) of the
|
||||||
|
system. This is accomplished by isotropically scaling all box lengths
|
||||||
|
:math:`L` by an additional factor of :math:`k (P_t - P_m)` where :math:`k`
|
||||||
|
is the proportional gain constant, :math:`P_t` is the target pressure, and
|
||||||
|
:math:`P_m` is the current mean pressure. This style may be useful in
|
||||||
|
scenarios where one wants to apply a constant deviatoric strain rate
|
||||||
|
using various strain-based styles (e.g. *trate*) along the *x*, *y*, and *z*
|
||||||
|
dimensions (deforming the shape of the box), while maintaining a mean pressure.
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
The optional keywords provided by this fix are described below.
|
||||||
|
|
||||||
|
.. _deform_normalize:
|
||||||
|
|
||||||
|
The *normalize/pressure* keyword changes how box dimensions evolve when
|
||||||
|
using the *pressure* or *pressure/mean* deformation styles. If the
|
||||||
|
*deform/normalize* value is set to *yes*, then the deviation from the
|
||||||
|
target pressure is normalized by the absolute value of the target
|
||||||
|
pressure such that the proportional gain constant scales a percentage
|
||||||
|
error and has units of 1/time. If the target pressure is ever zero, this
|
||||||
|
will produce an error unless the *max/rate* keyword is defined,
|
||||||
|
described below, which will cap the divergence.
|
||||||
|
|
||||||
|
.. _deform_max_rate:
|
||||||
|
|
||||||
|
The *max/rate* keyword sets an upper threshold, *rate*, that limits the
|
||||||
|
maximum magnitude of the instantaneous strain rate applied in any dimension.
|
||||||
|
This keyword only applies to the *pressure* and *pressure/mean* options. If
|
||||||
|
a pressure-controlled rate is used for both *box* and either *x*, *y*, or
|
||||||
|
*z*, then this threshold will apply separately to each individual controller
|
||||||
|
such that the cumulative strain rate on a box dimension may be up to twice
|
||||||
|
the value of *rate*.
|
||||||
|
|
||||||
|
.. _deform_couple:
|
||||||
|
|
||||||
|
The *couple* keyword allows two or three of the diagonal components of
|
||||||
|
the pressure tensor to be "coupled" together for the *pressure* option.
|
||||||
|
The value specified with the keyword determines which are coupled. For
|
||||||
|
example, *xz* means the *Pxx* and *Pzz* components of the stress tensor
|
||||||
|
are coupled. *Xyz* means all 3 diagonal components are coupled. Coupling
|
||||||
|
means two things: the instantaneous stress will be computed as an average
|
||||||
|
of the corresponding diagonal components, and the coupled box dimensions
|
||||||
|
will be changed together in lockstep, meaning coupled dimensions will be
|
||||||
|
dilated or contracted by the same percentage every timestep. If a *pressure*
|
||||||
|
style is defined for more than one coupled dimension, the target pressures
|
||||||
|
and gain constants must be identical. Alternatively, if a *pressure*
|
||||||
|
style is only defined for one of the coupled dimensions, its settings are
|
||||||
|
copied to other dimensions with undefined styles. *Couple xyz* can be used
|
||||||
|
for a 2d simulation; the *z* dimension is simply ignored.
|
||||||
|
|
||||||
|
.. _deform_balance:
|
||||||
|
|
||||||
|
The *vol/balance/p* keyword modifies the behavior of the *volume* style when
|
||||||
|
applied to two of the *x*, *y*, and *z* dimensions. Instead of straining
|
||||||
|
the two dimensions in lockstep, the two dimensions are allowed to
|
||||||
|
separately dilate or contract in a manner to maintain a constant
|
||||||
|
volume while simultaneously trying to keep the pressure along each
|
||||||
|
dimension equal using a method described in :ref:`(Huang2014) <Huang2014>`.
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
If any pressure controls are used, this fix computes a temperature and
|
||||||
|
pressure each timestep. To do this, the fix creates its own computes
|
||||||
|
of style "temp" and "pressure", as if these commands had been issued:
|
||||||
|
|
||||||
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
|
compute fix-ID_temp group-ID temp
|
||||||
|
compute fix-ID_press group-ID pressure fix-ID_temp
|
||||||
|
|
||||||
|
See the :doc:`compute temp <compute_temp>` and :doc:`compute pressure
|
||||||
|
<compute_pressure>` commands for details. Note that the IDs of the
|
||||||
|
new computes are the fix-ID + underscore + "temp" or fix_ID
|
||||||
|
+ underscore + "press", and the group for the new computes is the same
|
||||||
|
as the fix group.
|
||||||
|
|
||||||
|
Note that these are NOT the computes used by thermodynamic output (see
|
||||||
|
the :doc:`thermo_style <thermo_style>` command) with ID =
|
||||||
|
*thermo_temp* and *thermo_press*. This means you can change the
|
||||||
|
attributes of this fix's temperature or pressure via the
|
||||||
|
:doc:`compute_modify <compute_modify>` command or print this
|
||||||
|
temperature or pressure during thermodynamic output via the
|
||||||
|
:doc:`thermo_style custom <thermo_style>` command using the
|
||||||
|
appropriate compute-ID. It also means that changing attributes of
|
||||||
|
*thermo_temp* or *thermo_press* will have no effect on this fix.
|
||||||
|
|
||||||
|
Restart, fix_modify, output, run start/stop, minimize info
|
||||||
|
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
|
||||||
|
This fix will restore the initial box settings from :doc:`binary
|
||||||
|
restart files <restart>`, which allows the fix to be properly continue
|
||||||
|
deformation, when using the start/stop options of the :doc:`run <run>`
|
||||||
|
command. No global or per-atom quantities are stored by this fix for
|
||||||
|
access by various :doc:`output commands <Howto_output>`.
|
||||||
|
|
||||||
|
If any pressure controls are used, the :doc:`fix_modify <fix_modify>`
|
||||||
|
*temp* and *press* options are supported by this fix, unlike in
|
||||||
|
:doc:`fix deform <fix_deform>`. You can use them to assign a
|
||||||
|
:doc:`compute <compute>` you have defined to this fix which will be
|
||||||
|
used in its temperature and pressure calculations. If you do this,
|
||||||
|
note that the kinetic energy derived from the compute temperature
|
||||||
|
should be consistent with the virial term computed using all atoms for
|
||||||
|
the pressure. LAMMPS will warn you if you choose to compute
|
||||||
|
temperature on a subset of atoms.
|
||||||
|
|
||||||
|
This fix can perform deformation over multiple runs, using the *start*
|
||||||
|
and *stop* keywords of the :doc:`run <run>` command. See the
|
||||||
|
:doc:`run <run>` command for details of how to do this.
|
||||||
|
|
||||||
|
This fix is not invoked during :doc:`energy minimization <minimize>`.
|
||||||
|
|
||||||
|
Restrictions
|
||||||
|
""""""""""""
|
||||||
|
|
||||||
|
You cannot apply x, y, or z deformations to a dimension that is
|
||||||
|
shrink-wrapped via the :doc:`boundary <boundary>` command.
|
||||||
|
|
||||||
|
You cannot apply xy, yz, or xz deformations to a second dimension (y
|
||||||
|
in xy) that is shrink-wrapped via the :doc:`boundary <boundary>`
|
||||||
|
command.
|
||||||
|
|
||||||
|
Related commands
|
||||||
|
""""""""""""""""
|
||||||
|
|
||||||
|
:doc:`fix deform <fix_deform>`, :doc:`change_box <change_box>`
|
||||||
|
|
||||||
|
Default
|
||||||
|
"""""""
|
||||||
|
|
||||||
|
The option defaults are normalize/pressure = no.
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
.. _Huang2014:
|
||||||
|
|
||||||
|
**(Huang2014)** X. Huang, "Exploring critical-state behavior using DEM",
|
||||||
|
Doctoral dissertation, Imperial College. (2014). https://doi.org/10.25560/25316
|
||||||
@ -45,7 +45,7 @@ Syntax
|
|||||||
rng_v = integer used to initialize random number generator
|
rng_v = integer used to initialize random number generator
|
||||||
|
|
||||||
* zero or more keyword/value pairs may be appended
|
* zero or more keyword/value pairs may be appended
|
||||||
* keyword = *algo* or *symm* or *couple* or *etypes* or *ffield* or *write_mat* or *write_inv* or *read_mat* or *read_inv*
|
* keyword = *algo* or *symm* or *couple* or *etypes* or *ffield* or *write_mat* or *write_inv* or *read_mat* or *read_inv* or *qtotal* or *eta*
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
@ -68,6 +68,10 @@ Syntax
|
|||||||
filename = file from which to read elastance matrix
|
filename = file from which to read elastance matrix
|
||||||
*read_inv* value = filename
|
*read_inv* value = filename
|
||||||
filename = file from which to read inverted matrix
|
filename = file from which to read inverted matrix
|
||||||
|
*qtotal* value = number or *v_* equal-style variable
|
||||||
|
add overall potential so that all electrode charges add up to *qtotal*
|
||||||
|
*eta* value = d_propname
|
||||||
|
d_propname = a custom double vector defined via fix property/atom
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
""""""""
|
""""""""
|
||||||
@ -249,6 +253,26 @@ be enabled if any electrode particle has the same type as any
|
|||||||
electrolyte particle (which would be unusual in a typical simulation)
|
electrolyte particle (which would be unusual in a typical simulation)
|
||||||
and the fix will issue an error in that case.
|
and the fix will issue an error in that case.
|
||||||
|
|
||||||
|
.. versionadded:: TBD
|
||||||
|
|
||||||
|
The keyword *qtotal* causes *fix electrode/conp* and *fix electrode/thermo*
|
||||||
|
to add an overall potential to all electrodes so that the total charge on
|
||||||
|
the electrodes is a specified amount (which may be an equal-style variable).
|
||||||
|
For example, if a user wanted to simulate a solution of excess cations
|
||||||
|
such that the total electrolyte charge is +2, setting *qtotal -2* would cause
|
||||||
|
the total electrode charge to be -2, so that the simulation box remains overall
|
||||||
|
electroneutral. Since *fix electrode/conq* constrains the total charges of
|
||||||
|
individual electrodes, and since *symm on* constrains the total charge of all
|
||||||
|
electrodes to be zero, either option is incompatible with the *qtotal* keyword
|
||||||
|
(even if *qtotal* is set to zero).
|
||||||
|
|
||||||
|
.. versionadded:: TBD
|
||||||
|
|
||||||
|
The keyword *eta* takes the name of a custom double vector defined via fix
|
||||||
|
property/atom. The values will be used instead of the standard eta value. The
|
||||||
|
property/atom fix must be for vector of double values and use the *ghost on*
|
||||||
|
option.
|
||||||
|
|
||||||
Restart, fix_modify, output, run start/stop, minimize info
|
Restart, fix_modify, output, run start/stop, minimize info
|
||||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
|
||||||
|
|||||||
@ -440,8 +440,11 @@ This fix is part of the MC package. It is only enabled if LAMMPS was
|
|||||||
built with that package. See the :doc:`Build package <Build_package>`
|
built with that package. See the :doc:`Build package <Build_package>`
|
||||||
doc page for more info.
|
doc page for more info.
|
||||||
|
|
||||||
|
This fix style requires an :doc:`atom style <atom_style>` with per atom
|
||||||
|
type masses.
|
||||||
|
|
||||||
Do not set "neigh_modify once yes" or else this fix will never be
|
Do not set "neigh_modify once yes" or else this fix will never be
|
||||||
called. Reneighboring is required.
|
called. Reneighboring is **required**.
|
||||||
|
|
||||||
Only usable for 3D simulations.
|
Only usable for 3D simulations.
|
||||||
|
|
||||||
|
|||||||
@ -8,33 +8,44 @@ Syntax
|
|||||||
|
|
||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix ID group-ID indent K keyword values ...
|
fix ID group-ID indent K gstyle args keyword value ...
|
||||||
|
|
||||||
* ID, group-ID are documented in :doc:`fix <fix>` command
|
* ID, group-ID are documented in :doc:`fix <fix>` command
|
||||||
* indent = style name of this fix command
|
* indent = style name of this fix command
|
||||||
* K = force constant for indenter surface (force/distance\^2 units)
|
* K = force constant for indenter surface (force/distance\^2 units)
|
||||||
* one or more keyword/value pairs may be appended
|
* gstyle = *sphere* or *cylinder* or *cone* or *plane*
|
||||||
* keyword = *sphere* or *cylinder* or *plane* or *side* or *units*
|
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
*sphere* args = x y z R
|
*sphere* args = x y z R
|
||||||
x,y,z = position of center of indenter (distance units)
|
x, y, z = position of center of indenter (distance units)
|
||||||
R = sphere radius of indenter (distance units)
|
R = sphere radius of indenter (distance units)
|
||||||
any of x,y,z,R can be a variable (see below)
|
any of x, y, z, R can be a variable (see below)
|
||||||
*cylinder* args = dim c1 c2 R
|
*cylinder* args = dim c1 c2 R
|
||||||
dim = *x* or *y* or *z* = axis of cylinder
|
dim = *x* or *y* or *z* = axis of cylinder
|
||||||
c1,c2 = coords of cylinder axis in other 2 dimensions (distance units)
|
c1, c2 = coords of cylinder axis in other 2 dimensions (distance units)
|
||||||
R = cylinder radius of indenter (distance units)
|
R = cylinder radius of indenter (distance units)
|
||||||
any of c1,c2,R can be a variable (see below)
|
any of c1,c2,R can be a variable (see below)
|
||||||
|
*cone* args = dim c1 c2 radlo radhi lo hi
|
||||||
|
dim = *x* or *y* or *z* = axis of cone
|
||||||
|
c1, c2 = coords of cone axis in other 2 dimensions (distance units)
|
||||||
|
radlo,radhi = cone radii at lo and hi end (distance units)
|
||||||
|
lo,hi = bounds of cone in dim (distance units)
|
||||||
|
any of c1, c2, radlo, radhi, lo, hi can be a variable (see below)
|
||||||
*plane* args = dim pos side
|
*plane* args = dim pos side
|
||||||
dim = *x* or *y* or *z* = plane perpendicular to this dimension
|
dim = *x* or *y* or *z* = plane perpendicular to this dimension
|
||||||
pos = position of plane in dimension x, y, or z (distance units)
|
pos = position of plane in dimension x, y, or z (distance units)
|
||||||
pos can be a variable (see below)
|
pos can be a variable (see below)
|
||||||
side = *lo* or *hi*
|
side = *lo* or *hi*
|
||||||
|
|
||||||
|
* zero or more keyword/value pairs may be appended
|
||||||
|
* keyword = *side* or *units*
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
*side* value = *in* or *out*
|
*side* value = *in* or *out*
|
||||||
*in* = the indenter acts on particles inside the sphere or cylinder
|
*in* = the indenter acts on particles inside the sphere or cylinder or cone
|
||||||
*out* = the indenter acts on particles outside the sphere or cylinder
|
*out* = the indenter acts on particles outside the sphere or cylinder or cone
|
||||||
*units* value = *lattice* or *box*
|
*units* value = *lattice* or *box*
|
||||||
lattice = the geometry is defined in lattice units
|
lattice = the geometry is defined in lattice units
|
||||||
box = the geometry is defined in simulation box units
|
box = the geometry is defined in simulation box units
|
||||||
@ -53,12 +64,12 @@ Description
|
|||||||
|
|
||||||
Insert an indenter within a simulation box. The indenter repels all
|
Insert an indenter within a simulation box. The indenter repels all
|
||||||
atoms in the group that touch it, so it can be used to push into a
|
atoms in the group that touch it, so it can be used to push into a
|
||||||
material or as an obstacle in a flow. Or it can be used as a
|
material or as an obstacle in a flow. Alternatively, it can be used as a
|
||||||
constraining wall around a simulation; see the discussion of the
|
constraining wall around a simulation; see the discussion of the
|
||||||
*side* keyword below.
|
*side* keyword below.
|
||||||
|
|
||||||
The indenter can either be spherical or cylindrical or planar. You
|
The *gstyle* geometry of the indenter can either be a sphere, a
|
||||||
must set one of those 3 keywords.
|
cylinder, a cone, or a plane.
|
||||||
|
|
||||||
A spherical indenter exerts a force of magnitude
|
A spherical indenter exerts a force of magnitude
|
||||||
|
|
||||||
@ -75,15 +86,20 @@ A cylindrical indenter exerts the same force, except that *r* is the
|
|||||||
distance from the atom to the center axis of the cylinder. The
|
distance from the atom to the center axis of the cylinder. The
|
||||||
cylinder extends infinitely along its axis.
|
cylinder extends infinitely along its axis.
|
||||||
|
|
||||||
Spherical and cylindrical indenters account for periodic boundaries in
|
A conical indenter is similar to a cylindrical indenter except that it
|
||||||
two ways. First, the center point of a spherical indenter (x,y,z) or
|
has a finite length (between *lo* and *hi*), and that two different
|
||||||
axis of a cylindrical indenter (c1,c2) is remapped back into the
|
radii (one at each end, *radlo* and *radhi*) can be defined.
|
||||||
simulation box, if the box is periodic in a particular dimension.
|
|
||||||
This occurs every timestep if the indenter geometry is specified with
|
Spherical, cylindrical, and conical indenters account for periodic
|
||||||
a variable (see below), e.g. it is moving over time. Second, the
|
boundaries in two ways. First, the center point of a spherical
|
||||||
calculation of distance to the indenter center or axis accounts for
|
indenter (x,y,z) or axis of a cylindrical/conical indenter (c1,c2) is
|
||||||
periodic boundaries. Both of these mean that an indenter can
|
remapped back into the simulation box, if the box is periodic in a
|
||||||
effectively move through and straddle one or more periodic boundaries.
|
particular dimension. This occurs every timestep if the indenter
|
||||||
|
geometry is specified with a variable (see below), e.g. it is moving
|
||||||
|
over time. Second, the calculation of distance to the indenter center
|
||||||
|
or axis accounts for periodic boundaries. Both of these mean that an
|
||||||
|
indenter can effectively move through and straddle one or more
|
||||||
|
periodic boundaries.
|
||||||
|
|
||||||
A planar indenter is really an axis-aligned infinite-extent wall
|
A planar indenter is really an axis-aligned infinite-extent wall
|
||||||
exerting the same force on atoms in the system, where *R* is the
|
exerting the same force on atoms in the system, where *R* is the
|
||||||
@ -97,9 +113,13 @@ is specified as *hi*\ .
|
|||||||
|
|
||||||
Any of the 4 quantities defining a spherical indenter's geometry can
|
Any of the 4 quantities defining a spherical indenter's geometry can
|
||||||
be specified as an equal-style :doc:`variable <variable>`, namely *x*,
|
be specified as an equal-style :doc:`variable <variable>`, namely *x*,
|
||||||
*y*, *z*, or *R*\ . Similarly, for a cylindrical indenter, any of *c1*,
|
*y*, *z*, or *R*\ . For a cylindrical indenter, any of the 3
|
||||||
*c2*, or *R*, can be a variable. For a planar indenter, *pos* can be
|
quantities *c1*, *c2*, or *R*, can be a variable. For a conical
|
||||||
a variable. If the value is a variable, it should be specified as
|
indenter, any of the 6 quantities *c1*, *c2*, *radlo*, *radhi*, *lo*,
|
||||||
|
or *hi* can be a variable. For a planar indenter, the single value
|
||||||
|
*pos* can be a variable.
|
||||||
|
|
||||||
|
If any of these values is a variable, it should be specified as
|
||||||
v_name, where name is the variable name. In this case, the variable
|
v_name, where name is the variable name. In this case, the variable
|
||||||
will be evaluated each timestep, and its value used to define the
|
will be evaluated each timestep, and its value used to define the
|
||||||
indenter geometry.
|
indenter geometry.
|
||||||
@ -110,7 +130,8 @@ command keywords for the simulation box parameters and timestep and
|
|||||||
elapsed time. Thus it is easy to specify indenter properties that
|
elapsed time. Thus it is easy to specify indenter properties that
|
||||||
change as a function of time or span consecutive runs in a continuous
|
change as a function of time or span consecutive runs in a continuous
|
||||||
fashion. For the latter, see the *start* and *stop* keywords of the
|
fashion. For the latter, see the *start* and *stop* keywords of the
|
||||||
:doc:`run <run>` command and the *elaplong* keyword of :doc:`thermo_style custom <thermo_style>` for details.
|
:doc:`run <run>` command and the *elaplong* keyword of
|
||||||
|
:doc:`thermo_style custom <thermo_style>` for details.
|
||||||
|
|
||||||
For example, if a spherical indenter's x-position is specified as v_x,
|
For example, if a spherical indenter's x-position is specified as v_x,
|
||||||
then this variable definition will keep it's center at a relative
|
then this variable definition will keep it's center at a relative
|
||||||
@ -141,12 +162,13 @@ rate.
|
|||||||
|
|
||||||
If the *side* keyword is specified as *out*, which is the default,
|
If the *side* keyword is specified as *out*, which is the default,
|
||||||
then particles outside the indenter are pushed away from its outer
|
then particles outside the indenter are pushed away from its outer
|
||||||
surface, as described above. This only applies to spherical or
|
surface, as described above. This only applies to spherical,
|
||||||
cylindrical indenters. If the *side* keyword is specified as *in*,
|
cylindrical, and conical indenters. If the *side* keyword is
|
||||||
the action of the indenter is reversed. Particles inside the indenter
|
specified as *in*, the action of the indenter is reversed. Particles
|
||||||
are pushed away from its inner surface. In other words, the indenter
|
inside the indenter are pushed away from its inner surface. In other
|
||||||
is now a containing wall that traps the particles inside it. If the
|
words, the indenter is now a containing wall that traps the particles
|
||||||
radius shrinks over time, it will squeeze the particles.
|
inside it. If the radius shrinks over time, it will squeeze the
|
||||||
|
particles.
|
||||||
|
|
||||||
The *units* keyword determines the meaning of the distance units used
|
The *units* keyword determines the meaning of the distance units used
|
||||||
to define the indenter geometry. A *box* value selects standard
|
to define the indenter geometry. A *box* value selects standard
|
||||||
@ -166,10 +188,10 @@ lattice spacings in a variable formula.
|
|||||||
|
|
||||||
The force constant *K* is not affected by the *units* keyword. It is
|
The force constant *K* is not affected by the *units* keyword. It is
|
||||||
always in force/distance\^2 units where force and distance are defined
|
always in force/distance\^2 units where force and distance are defined
|
||||||
by the :doc:`units <units>` command. If you wish K to be scaled by the
|
by the :doc:`units <units>` command. If you wish K to be scaled by
|
||||||
lattice spacing, you can define K with a variable whose formula
|
the lattice spacing, you can define K with a variable whose formula
|
||||||
contains *xlat*, *ylat*, *zlat* keywords of the
|
contains *xlat*, *ylat*, *zlat* keywords of the :doc:`thermo_style
|
||||||
:doc:`thermo_style <thermo_style>` command, e.g.
|
<thermo_style>` command, e.g.
|
||||||
|
|
||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
|
|||||||
@ -109,7 +109,7 @@ Note that in this case the specified *Kspring* is in
|
|||||||
force/distance units.
|
force/distance units.
|
||||||
|
|
||||||
With a value of *ideal*, the spring force is computed as suggested in
|
With a value of *ideal*, the spring force is computed as suggested in
|
||||||
ref`(WeinanE) <WeinanE>`
|
:ref:`(WeinanE) <WeinanE>`
|
||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
@ -120,18 +120,18 @@ and :math:`RD_{ideal}` is the ideal *RD* for which all the images are
|
|||||||
equally spaced. I.e. :math:`RD_{ideal} = (i-1) \cdot meanDist` when the
|
equally spaced. I.e. :math:`RD_{ideal} = (i-1) \cdot meanDist` when the
|
||||||
climbing replica is off, where *i* is the replica number). The
|
climbing replica is off, where *i* is the replica number). The
|
||||||
*meanDist* is the average distance between replicas. Note that in this
|
*meanDist* is the average distance between replicas. Note that in this
|
||||||
case the specified *Kspring* is in force units. When the climbing replica
|
case the specified *Kspring* is in force units. When the climbing
|
||||||
is on, :math:`RD_{ideal}` and :math:`meanDist` are calculated separately
|
replica is on, :math:`RD_{ideal}` and :math:`meanDist` are calculated
|
||||||
each side of the climbing image. Note that the *ideal* form of nudging
|
separately each side of the climbing image. Note that the *ideal* form
|
||||||
can often be more effective at keeping the replicas equally spaced before
|
of nudging can often be more effective at keeping the replicas equally
|
||||||
climbing, then equally spaced either side of the climbing image whilst
|
spaced before climbing, then equally spaced either side of the climbing
|
||||||
climbing.
|
image whilst climbing.
|
||||||
|
|
||||||
With a value of *equal* the spring force is computed as for *ideal*
|
With a value of *equal* the spring force is computed as for *ideal* when
|
||||||
when the climbing replica is off, promoting equidistance. When the climbing
|
the climbing replica is off, promoting equidistance. When the climbing
|
||||||
replica is on, the spring force is computed to promote equidistant
|
replica is on, the spring force is computed to promote equidistant
|
||||||
absolute differences in energy, rather than distance, each side of
|
absolute differences in energy, rather than distance, each side of the
|
||||||
the climbing image:
|
climbing image:
|
||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
@ -143,23 +143,22 @@ where *ED* is the cumulative sum of absolute energy differences:
|
|||||||
|
|
||||||
ED = \sum_{i<N} \left|E(R_{i+1}) - E(R_i)\right|,
|
ED = \sum_{i<N} \left|E(R_{i+1}) - E(R_i)\right|,
|
||||||
|
|
||||||
*meanEdist* is the average absolute energy difference between
|
*meanEdist* is the average absolute energy difference between replicas
|
||||||
replicas up to the climbing image or from the climbing image
|
up to the climbing image or from the climbing image to the final image,
|
||||||
to the final image, for images before or after the climbing
|
for images before or after the climbing image
|
||||||
image respectively. :math:`ED_{ideal}` is the corresponding
|
respectively. :math:`ED_{ideal}` is the corresponding cumulative sum of
|
||||||
cumulative sum of average absolute energy differences in
|
average absolute energy differences in each case, in close analogy to
|
||||||
each case, in close analogy to *ideal*. This form of nudging
|
*ideal*. This form of nudging is to aid schemes which integrate forces
|
||||||
is to aid schemes which integrate forces along, or near to,
|
along, or near to, NEB pathways such as :doc:`fix_pafi <fix_pafi>`.
|
||||||
NEB pathways such as :doc:`fix_pafi <fix_pafi>`.
|
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
The keyword *perp* specifies if and how a perpendicular nudging force
|
The keyword *perp* specifies if and how a perpendicular nudging force is
|
||||||
is computed. It adds a spring force perpendicular to the path in
|
computed. It adds a spring force perpendicular to the path in order to
|
||||||
order to prevent the path from becoming too strongly kinked. It can
|
prevent the path from becoming too strongly kinked. It can
|
||||||
significantly improve the convergence of the NEB calculation when the
|
significantly improve the convergence of the NEB calculation when the
|
||||||
resolution is poor. I.e. when few replicas are used; see
|
resolution is poor. I.e. when few replicas are used; see :ref:`(Maras)
|
||||||
:ref:`(Maras) <Maras1>` for details.
|
<Maras1>` for details.
|
||||||
|
|
||||||
The perpendicular spring force is given by
|
The perpendicular spring force is given by
|
||||||
|
|
||||||
@ -181,10 +180,10 @@ force is added.
|
|||||||
|
|
||||||
By default, no additional forces act on the first and last replicas
|
By default, no additional forces act on the first and last replicas
|
||||||
during the NEB relaxation, so these replicas simply relax toward their
|
during the NEB relaxation, so these replicas simply relax toward their
|
||||||
respective local minima. By using the key word *end*, additional
|
respective local minima. By using the key word *end*, additional forces
|
||||||
forces can be applied to the first and/or last replicas, to enable
|
can be applied to the first and/or last replicas, to enable them to
|
||||||
them to relax toward a MEP while constraining their energy E to the
|
relax toward a MEP while constraining their energy E to the target
|
||||||
target energy ETarget.
|
energy ETarget.
|
||||||
|
|
||||||
If :math:`E_{Target} > E`, the interatomic force :math:`F_i` for the
|
If :math:`E_{Target} > E`, the interatomic force :math:`F_i` for the
|
||||||
specified replica becomes:
|
specified replica becomes:
|
||||||
@ -197,33 +196,33 @@ specified replica becomes:
|
|||||||
The "spring" constant on the difference in energies is the specified
|
The "spring" constant on the difference in energies is the specified
|
||||||
*Kspring3* value.
|
*Kspring3* value.
|
||||||
|
|
||||||
When *estyle* is specified as *first*, the force is applied to the
|
When *estyle* is specified as *first*, the force is applied to the first
|
||||||
first replica. When *estyle* is specified as *last*, the force is
|
replica. When *estyle* is specified as *last*, the force is applied to
|
||||||
applied to the last replica. Note that the *end* keyword can be used
|
the last replica. Note that the *end* keyword can be used twice to add
|
||||||
twice to add forces to both the first and last replicas.
|
forces to both the first and last replicas.
|
||||||
|
|
||||||
For both these *estyle* settings, the target energy *ETarget* is set
|
For both these *estyle* settings, the target energy *ETarget* is set
|
||||||
to the initial energy of the replica (at the start of the NEB
|
to the initial energy of the replica (at the start of the NEB
|
||||||
calculation).
|
calculation).
|
||||||
|
|
||||||
If the *estyle* is specified as *last/efirst* or *last/efirst/middle*,
|
If the *estyle* is specified as *last/efirst* or *last/efirst/middle*,
|
||||||
force is applied to the last replica, but the target energy *ETarget*
|
force is applied to the last replica, but the target energy *ETarget* is
|
||||||
is continuously set to the energy of the first replica, as it evolves
|
continuously set to the energy of the first replica, as it evolves
|
||||||
during the NEB relaxation.
|
during the NEB relaxation.
|
||||||
|
|
||||||
The difference between these two *estyle* options is as follows. When
|
The difference between these two *estyle* options is as follows. When
|
||||||
*estyle* is specified as *last/efirst*, no change is made to the
|
*estyle* is specified as *last/efirst*, no change is made to the
|
||||||
inter-replica force applied to the intermediate replicas (neither
|
inter-replica force applied to the intermediate replicas (neither first
|
||||||
first or last). If the initial path is too far from the MEP, an
|
or last). If the initial path is too far from the MEP, an intermediate
|
||||||
intermediate replica may relax "faster" and reach a lower energy than
|
replica may relax "faster" and reach a lower energy than the last
|
||||||
the last replica. In this case the intermediate replica will be
|
replica. In this case the intermediate replica will be relaxing toward
|
||||||
relaxing toward its own local minima. This behavior can be prevented
|
its own local minima. This behavior can be prevented by specifying
|
||||||
by specifying *estyle* as *last/efirst/middle* which will alter the
|
*estyle* as *last/efirst/middle* which will alter the inter-replica
|
||||||
inter-replica force applied to intermediate replicas by removing the
|
force applied to intermediate replicas by removing the contribution of
|
||||||
contribution of the gradient to the inter-replica force. This will
|
the gradient to the inter-replica force. This will only be done if a
|
||||||
only be done if a particular intermediate replica has a lower energy
|
particular intermediate replica has a lower energy than the first
|
||||||
than the first replica. This should effectively prevent the
|
replica. This should effectively prevent the intermediate replicas from
|
||||||
intermediate replicas from over-relaxing.
|
over-relaxing.
|
||||||
|
|
||||||
After converging a NEB calculation using an *estyle* of
|
After converging a NEB calculation using an *estyle* of
|
||||||
*last/efirst/middle*, you should check that all intermediate replicas
|
*last/efirst/middle*, you should check that all intermediate replicas
|
||||||
@ -237,9 +236,10 @@ target energy.
|
|||||||
Restart, fix_modify, output, run start/stop, minimize info
|
Restart, fix_modify, output, run start/stop, minimize info
|
||||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
|
||||||
No information about this fix is written to :doc:`binary restart files <restart>`. None of the :doc:`fix_modify <fix_modify>` options
|
No information about this fix is written to :doc:`binary restart files
|
||||||
are relevant to this fix. No global or per-atom quantities are stored
|
<restart>`. None of the :doc:`fix_modify <fix_modify>` options are
|
||||||
by this fix for access by various :doc:`output commands <Howto_output>`.
|
relevant to this fix. No global or per-atom quantities are stored by
|
||||||
|
this fix for access by various :doc:`output commands <Howto_output>`.
|
||||||
No parameter of this fix can be used with the *start/stop* keywords of
|
No parameter of this fix can be used with the *start/stop* keywords of
|
||||||
the :doc:`run <run>` command.
|
the :doc:`run <run>` command.
|
||||||
|
|
||||||
|
|||||||
@ -44,7 +44,7 @@ Examples
|
|||||||
Description
|
Description
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
.. versionadded:: TBD
|
.. versionadded:: 7Feb2024
|
||||||
|
|
||||||
This fix computes different metrics of the nonaffine displacement of
|
This fix computes different metrics of the nonaffine displacement of
|
||||||
particles. The first metric, *d2min* calculates the :math:`D^2_\mathrm{min}`
|
particles. The first metric, *d2min* calculates the :math:`D^2_\mathrm{min}`
|
||||||
@ -86,8 +86,8 @@ Both of these methods require defining a reference state. With the *fixed* refer
|
|||||||
style, the user picks a specific timestep *nstep* at which particle positions are saved.
|
style, the user picks a specific timestep *nstep* at which particle positions are saved.
|
||||||
If peratom data is accessed from this compute prior to this timestep, it will simply be
|
If peratom data is accessed from this compute prior to this timestep, it will simply be
|
||||||
zeroed. The *update* reference style implies the reference state will be updated every
|
zeroed. The *update* reference style implies the reference state will be updated every
|
||||||
*nstep* timesteps. The *offset* reference only applies to the *d2min* metric and will
|
*nstep* timesteps. The *offset* reference will update the reference state *nstep*
|
||||||
update the reference state *nstep* timesteps before a multiple of *nevery* timesteps.
|
timesteps before a multiple of *nevery* timesteps.
|
||||||
|
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|||||||
@ -22,6 +22,8 @@ Syntax
|
|||||||
*mol* = molecule IDs
|
*mol* = molecule IDs
|
||||||
*q* = charge
|
*q* = charge
|
||||||
*rmass* = per-atom mass
|
*rmass* = per-atom mass
|
||||||
|
*temperature* = internal temperature of atom
|
||||||
|
*heatflow* = internal heat flow of atom
|
||||||
i_name = new integer vector referenced by name
|
i_name = new integer vector referenced by name
|
||||||
d_name = new floating-point vector referenced by name
|
d_name = new floating-point vector referenced by name
|
||||||
i2_name = new integer array referenced by name
|
i2_name = new integer array referenced by name
|
||||||
@ -59,14 +61,18 @@ these properties for each atom in the system when a data file is read.
|
|||||||
This fix augments the set of per-atom properties with new custom
|
This fix augments the set of per-atom properties with new custom
|
||||||
ones. This can be useful in several scenarios.
|
ones. This can be useful in several scenarios.
|
||||||
|
|
||||||
If the atom style does not define molecule IDs, per-atom charge, or
|
If the atom style does not define molecule IDs, per-atom charge,
|
||||||
per-atom mass, they can be added using the *mol*\ , *q* or *rmass*
|
per-atom mass, internal temperature, or internal heat flow, they can
|
||||||
|
be added using the *mol*\ , *q*, *rmass*, *temperature*, or *heatflow*
|
||||||
keywords. This could be useful to define "molecules" to use as rigid
|
keywords. This could be useful to define "molecules" to use as rigid
|
||||||
bodies with the :doc:`fix rigid <fix_rigid>` command, or to carry
|
bodies with the :doc:`fix rigid <fix_rigid>` command, or to carry
|
||||||
around an extra flag with atoms (stored as a molecule ID) that can be
|
around an extra flag with atoms (stored as a molecule ID) that can be
|
||||||
used by various commands like :doc:`compute chunk/atom
|
used by various commands like :doc:`compute chunk/atom
|
||||||
<compute_chunk_atom>` to group atoms without having to use the group
|
<compute_chunk_atom>` to group atoms without having to use the group
|
||||||
command (which is limited to a total of 32 groups including *all*\ ).
|
command (which is limited to a total of 32 groups including *all*\ ).
|
||||||
|
For finite-size particles, an internal temperature and heat flow can
|
||||||
|
be used to model heat conduction as in the
|
||||||
|
:doc:`GRANULAR package <Howto_granular>`.
|
||||||
|
|
||||||
Another application is to use the *rmass* flag in order to have
|
Another application is to use the *rmass* flag in order to have
|
||||||
per-atom masses instead of per-type masses. This could be used to
|
per-atom masses instead of per-type masses. This could be used to
|
||||||
@ -85,9 +91,10 @@ properties that are not needed such as bond lists, which incurs some
|
|||||||
overhead when there are no bonds.
|
overhead when there are no bonds.
|
||||||
|
|
||||||
In the future, we may add additional existing per-atom properties to
|
In the future, we may add additional existing per-atom properties to
|
||||||
fix property/atom, similar to *mol*\ , *q* or *rmass*\ , which
|
fix property/atom, similar to *mol*\ , *q*, *rmass*\ , *temperature*\ ,
|
||||||
"turn-on" specific properties defined by some atom styles, so they can
|
or *heatflow* which "turn-on" specific properties defined by some atom
|
||||||
be easily used by atom styles that do not define them.
|
styles, so they can be easily used by atom styles that do not define
|
||||||
|
them.
|
||||||
|
|
||||||
More generally, the *i_name* and *d_name* options allow one or more
|
More generally, the *i_name* and *d_name* options allow one or more
|
||||||
new custom per-atom vectors to be defined. Likewise the *i2_name* and
|
new custom per-atom vectors to be defined. Likewise the *i2_name* and
|
||||||
|
|||||||
@ -155,6 +155,9 @@ This fix is part of the MC package. It is only enabled if LAMMPS was
|
|||||||
built with that package. See the :doc:`Build package <Build_package>`
|
built with that package. See the :doc:`Build package <Build_package>`
|
||||||
page for more info.
|
page for more info.
|
||||||
|
|
||||||
|
This fix style requires an :doc:`atom style <atom_style>` with per atom
|
||||||
|
type masses.
|
||||||
|
|
||||||
At present the fix provides optimized subroutines for EAM type
|
At present the fix provides optimized subroutines for EAM type
|
||||||
potentials (see above) that calculate potential energy changes due to
|
potentials (see above) that calculate potential energy changes due to
|
||||||
*local* atom type swaps very efficiently. Other potentials are
|
*local* atom type swaps very efficiently. Other potentials are
|
||||||
|
|||||||
@ -96,11 +96,11 @@ each processor, which is acceptable when the overall grid is reasonably
|
|||||||
small. For larger grids you should use fix *ttm/grid* instead.
|
small. For larger grids you should use fix *ttm/grid* instead.
|
||||||
|
|
||||||
Fix *ttm/mod* adds options to account for external heat sources (e.g. at
|
Fix *ttm/mod* adds options to account for external heat sources (e.g. at
|
||||||
a surface) and for specifying parameters that allow the electronic
|
a surface) and for specifying parameters that allow the electronic heat
|
||||||
heat capacity to depend strongly on electronic temperature. It is
|
capacity to depend strongly on electronic temperature. It is more
|
||||||
more expensive computationally than fix *ttm* because it treats the
|
expensive computationally than fix *ttm* because it treats the thermal
|
||||||
thermal diffusion equation as non-linear. More details on fix *ttm/mod*
|
diffusion equation as non-linear. More details on fix *ttm/mod* are
|
||||||
are given below.
|
given below.
|
||||||
|
|
||||||
Heat transfer between the electronic and atomic subsystems is carried
|
Heat transfer between the electronic and atomic subsystems is carried
|
||||||
out via an inhomogeneous Langevin thermostat. Only atoms in the fix
|
out via an inhomogeneous Langevin thermostat. Only atoms in the fix
|
||||||
@ -303,15 +303,15 @@ The current fix ttm/mod implementation allows TTM simulations with a
|
|||||||
vacuum. The vacuum region is defined as the grid cells with zero
|
vacuum. The vacuum region is defined as the grid cells with zero
|
||||||
electronic temperature. The numerical scheme does not allow energy
|
electronic temperature. The numerical scheme does not allow energy
|
||||||
exchange with such cells. Since the material can expand to previously
|
exchange with such cells. Since the material can expand to previously
|
||||||
unoccupied region in some simulations, the vacuum border can be
|
unoccupied region in some simulations, the vacuum border can be allowed
|
||||||
allowed to move. It is controlled by the *surface_movement* parameter
|
to move. It is controlled by the *surface_movement* parameter in the
|
||||||
in the *init_file*. If it is set to 1, then "vacuum" cells can be
|
*init_file*. If it is set to 1, then "vacuum" cells can be changed to
|
||||||
changed to "electron-filled" cells with the temperature *T_e_min* if
|
"electron-filled" cells with the temperature *T_e_min* if atoms move
|
||||||
atoms move into them (currently only implemented for the case of
|
into them (currently only implemented for the case of 1-dimensional
|
||||||
1-dimensional motion of flat surface normal to the X axis). The
|
motion of a flat surface normal to the X axis). The initial locations of
|
||||||
initial borders of vacuum can be set in the *init_file* via *lsurface*
|
the interfaces of the electron density to the vacuum can be set in the
|
||||||
and *rsurface* parameters. In this case, electronic pressure gradient
|
*init_file* via *lsurface* and *rsurface* parameters. In this case,
|
||||||
is calculated as
|
electronic pressure gradient is calculated as
|
||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
|
|||||||
175
doc/src/fix_wall_flow.rst
Normal file
175
doc/src/fix_wall_flow.rst
Normal file
@ -0,0 +1,175 @@
|
|||||||
|
.. index:: fix wall/flow
|
||||||
|
.. index:: fix wall/flow/kk
|
||||||
|
|
||||||
|
fix wall/flow command
|
||||||
|
=====================
|
||||||
|
|
||||||
|
Accelerator Variants: *wall/flow/kk*
|
||||||
|
|
||||||
|
Syntax
|
||||||
|
""""""
|
||||||
|
|
||||||
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
|
fix ID group-ID wall/flow axis vflow T seed N coords ... keyword value
|
||||||
|
|
||||||
|
* ID, group-ID are documented in :doc:`fix <fix>` command
|
||||||
|
* wall/flow = style name of this fix command
|
||||||
|
* axis = flow axis (*x*, *y*, or *z*)
|
||||||
|
* vflow = generated flow velocity in *axis* direction (velocity units)
|
||||||
|
* T = flow temperature (temperature units)
|
||||||
|
* seed = random seed for stochasticity (positive integer)
|
||||||
|
* N = number of walls
|
||||||
|
* coords = list of N wall positions along the *axis* direction in ascending order (distance units)
|
||||||
|
* zero or more keyword/value pairs may be appended
|
||||||
|
* keyword = *units*
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
*units* value = *lattice* or *box*
|
||||||
|
*lattice* = wall positions are defined in lattice units
|
||||||
|
*box* = the wall positions are defined in simulation box units
|
||||||
|
|
||||||
|
Examples
|
||||||
|
""""""""
|
||||||
|
|
||||||
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
|
fix 1 all wall/flow x 0.4 1.5 593894 4 2.0 4.0 6.0 8.0
|
||||||
|
|
||||||
|
Description
|
||||||
|
"""""""""""
|
||||||
|
|
||||||
|
.. versionadded:: TBD
|
||||||
|
|
||||||
|
This fix implements flow boundary conditions (FBC) introduced in
|
||||||
|
:ref:`(Pavlov1) <fbc-Pavlov1>` and :ref:`(Pavlov2) <fbc-Pavlov2>`.
|
||||||
|
The goal is to generate a stationary flow with a shifted Maxwell
|
||||||
|
velocity distribution:
|
||||||
|
|
||||||
|
.. math::
|
||||||
|
|
||||||
|
f_a(v_a) \propto \exp{\left(-\frac{m (v_a-v_{\text{flow}})^2}{2 kB T}\right)}
|
||||||
|
|
||||||
|
where :math:`v_a` is the component of velocity along the specified
|
||||||
|
*axis* argument (a = x,y,z), :math:`v_{\text{flow}}` is the flow
|
||||||
|
velocity specified as the *vflow* argument, *T* is the specified flow
|
||||||
|
temperature, *m* is the particle mass, and *kB* is the Boltzmann
|
||||||
|
constant.
|
||||||
|
|
||||||
|
This is achieved by defining a series of *N* transparent walls along
|
||||||
|
the flow *axis* direction. Each wall is at the specified position
|
||||||
|
listed in the *coords* argument. Note that an additional transparent
|
||||||
|
wall is defined by the code at the boundary of the (periodic)
|
||||||
|
simulation domain in the *axis* direction. So there are effectively
|
||||||
|
N+1 walls.
|
||||||
|
|
||||||
|
Each time a particle in the specified group passes through one of the
|
||||||
|
transparent walls, its velocity is re-assigned. Particles not in the
|
||||||
|
group do not interact with the wall. This can be used, for example, to
|
||||||
|
add obstacles composed of atoms, or to simulate a solution of complex
|
||||||
|
molecules in a one-atom liquid (note that the fix has been tested for
|
||||||
|
one-atom systems only).
|
||||||
|
|
||||||
|
Conceptually, the velocity re-assignment represents creation of a new
|
||||||
|
particle within the system with simultaneous removal of the particle
|
||||||
|
which passed through the wall. The velocity components in directions
|
||||||
|
parallel to the wall are re-assigned according to the standard Maxwell
|
||||||
|
velocity distribution for the specified temperature *T*. The velocity
|
||||||
|
component perpendicular to the wall is re-assigned according to the
|
||||||
|
shifted Maxwell distribution defined above:
|
||||||
|
|
||||||
|
.. math::
|
||||||
|
|
||||||
|
f_{\text{a generated}}(v_a) \propto v_a f_a(v_a)
|
||||||
|
|
||||||
|
It can be shown that for an ideal-gas scenario this procedure makes
|
||||||
|
the velocity distribution of particles between walls exactly as
|
||||||
|
desired.
|
||||||
|
|
||||||
|
Since in most cases simulated systems are not an ideal gas, multiple
|
||||||
|
walls can be defined, since a single wall may not be sufficient for
|
||||||
|
maintaining a stationary flow without "congestion" which can manifest
|
||||||
|
itself as regions in the flow with increased particle density located
|
||||||
|
upstream from static obstacles.
|
||||||
|
|
||||||
|
For the same reason, the actual temperature and velocity of the
|
||||||
|
generated flow may differ from what is requested. The degree of
|
||||||
|
discrepancy is determined by how different from an ideal gas the
|
||||||
|
simulated system is. Therefore, a calibration procedure may be
|
||||||
|
required for such a system as described in :ref:`(Pavlov)
|
||||||
|
<fbc-Pavlov2>`.
|
||||||
|
|
||||||
|
Note that the interactions between particles on different sides of a
|
||||||
|
transparent wall are not disabled or neglected. Likewise particle
|
||||||
|
positions are not altered by the velocity reassignment. This removes
|
||||||
|
the need to modify the force field to work correctly in cases when a
|
||||||
|
particle is close to a wall.
|
||||||
|
|
||||||
|
For example, if particle positions were uniformly redistributed across
|
||||||
|
the surface of a wall, two particles could end up too close to each
|
||||||
|
other, potentially causing the simulation to explode. However due to
|
||||||
|
this compromise, some collective phenomena such as regions with
|
||||||
|
increased/decreased density or collective movements are not fully
|
||||||
|
removed when particles cross a wall. This unwanted consequence can
|
||||||
|
also be potentially mitigated by using more multiple walls.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
When the specified flow has a high velocity, a lost atoms error can
|
||||||
|
occur (see :doc:`error messages <Errors_messages>`). If this
|
||||||
|
happens, you should ensure the checks for neighbor list rebuilds,
|
||||||
|
set via the :doc:`neigh_modify <neigh_modify>` command, are as
|
||||||
|
conservative as possible (every timestep if needed). Those are the
|
||||||
|
default settings.
|
||||||
|
|
||||||
|
Restart, fix_modify, output, run start/stop, minimize info
|
||||||
|
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
|
||||||
|
No information about this fix is written to :doc:`binary restart files
|
||||||
|
<restart>`.
|
||||||
|
|
||||||
|
None of the :doc:`fix_modify <fix_modify>` options are relevant to
|
||||||
|
this fix.
|
||||||
|
|
||||||
|
No global or per-atom quantities are stored by this fix for access by
|
||||||
|
various :doc:`output commands <Howto_output>`.
|
||||||
|
|
||||||
|
No parameter of this fix can be used with the *start/stop* keywords of
|
||||||
|
the :doc:`run <run>` command.
|
||||||
|
|
||||||
|
This fix is not invoked during :doc:`energy minimization <minimize>`.
|
||||||
|
|
||||||
|
Restrictions
|
||||||
|
""""""""""""
|
||||||
|
|
||||||
|
Fix *wall_flow* is part of the EXTRA-FIX package. It is only enabled
|
||||||
|
if LAMMPS was built with that package. See the :doc:`Build package
|
||||||
|
<Build_package>` page for more info.
|
||||||
|
|
||||||
|
Flow boundary conditions should not be used with rigid bodies such as
|
||||||
|
those defined by a "fix rigid" command.
|
||||||
|
|
||||||
|
This fix can only be used with periodic boundary conditions along the
|
||||||
|
flow axis. The size of the box in this direction must not change. Also,
|
||||||
|
the fix is designed to work only in an orthogonal simulation box.
|
||||||
|
|
||||||
|
Related commands
|
||||||
|
""""""""""""""""
|
||||||
|
|
||||||
|
:doc:`fix wall/reflect <fix_wall>` command
|
||||||
|
|
||||||
|
Default
|
||||||
|
"""""""
|
||||||
|
|
||||||
|
The default for the units keyword is lattice.
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
.. _fbc-Pavlov1:
|
||||||
|
|
||||||
|
**(Pavlov1)** Pavlov, Kolotinskii, Stegailov, "GPU-Based Molecular Dynamics of Turbulent Liquid Flows with OpenMM", Proceedings of PPAM-2022, LNCS (Springer), vol. 13826, pp. 346-358 (2023)
|
||||||
|
|
||||||
|
.. _fbc-Pavlov2:
|
||||||
|
|
||||||
|
**(Pavlov2)** Pavlov, Galigerov, Kolotinskii, Nikolskiy, Stegailov, "GPU-based Molecular Dynamics of Fluid Flows: Reaching for Turbulence", Int. J. High Perf. Comp. Appl., (2024)
|
||||||
@ -195,8 +195,11 @@ doc page for more info.
|
|||||||
Do not set "neigh_modify once yes" or else this fix will never be
|
Do not set "neigh_modify once yes" or else this fix will never be
|
||||||
called. Reneighboring is **required**.
|
called. Reneighboring is **required**.
|
||||||
|
|
||||||
Can be run in parallel, but aspects of the GCMC part will not scale well
|
This fix style requires an :doc:`atom style <atom_style>` with per atom
|
||||||
in parallel. Only usable for 3D simulations.
|
type masses.
|
||||||
|
|
||||||
|
Can be run in parallel, but some aspects of the insertion procedure
|
||||||
|
will not scale well in parallel. Only usable for 3D simulations.
|
||||||
|
|
||||||
|
|
||||||
Related commands
|
Related commands
|
||||||
|
|||||||
@ -10,7 +10,7 @@ Syntax
|
|||||||
|
|
||||||
info args
|
info args
|
||||||
|
|
||||||
* args = one or more of the following keywords: *out*, *all*, *system*, *memory*, *communication*, *computes*, *dumps*, *fixes*, *groups*, *regions*, *variables*, *coeffs*, *styles*, *time*, *accelerator*, or *configuration*
|
* args = one or more of the following keywords: *out*, *all*, *system*, *memory*, *communication*, *computes*, *dumps*, *fixes*, *groups*, *regions*, *variables*, *coeffs*, *styles*, *time*, *accelerator*, *fft* or *configuration*
|
||||||
* *out* values = *screen*, *log*, *append* filename, *overwrite* filename
|
* *out* values = *screen*, *log*, *append* filename, *overwrite* filename
|
||||||
* *styles* values = *all*, *angle*, *atom*, *bond*, *compute*, *command*, *dump*, *dihedral*, *fix*, *improper*, *integrate*, *kspace*, *minimize*, *pair*, *region*
|
* *styles* values = *all*, *angle*, *atom*, *bond*, *compute*, *command*, *dump*, *dihedral*, *fix*, *improper*, *integrate*, *kspace*, *minimize*, *pair*, *region*
|
||||||
|
|
||||||
@ -92,6 +92,13 @@ The *accelerator* category prints out information about compile time
|
|||||||
settings of included accelerator support for the GPU, KOKKOS, INTEL,
|
settings of included accelerator support for the GPU, KOKKOS, INTEL,
|
||||||
and OPENMP packages.
|
and OPENMP packages.
|
||||||
|
|
||||||
|
.. versionadded:: 7Feb2024
|
||||||
|
|
||||||
|
The *fft* category prints out information about the included 3d-FFT
|
||||||
|
support. This lists the 3d-FFT engine, FFT precision, FFT library
|
||||||
|
used by the FFT engine. If the KOKKOS package is included, the settings
|
||||||
|
used for the KOKKOS package are displayed as well.
|
||||||
|
|
||||||
The *styles* category prints the list of styles available in the
|
The *styles* category prints the list of styles available in the
|
||||||
current LAMMPS binary. It supports one of the following options
|
current LAMMPS binary. It supports one of the following options
|
||||||
to control which category of styles is printed out:
|
to control which category of styles is printed out:
|
||||||
|
|||||||
@ -450,7 +450,10 @@ relative RMS error.
|
|||||||
For the KOKKOS package, the *pppm/kk* style performs charge
|
For the KOKKOS package, the *pppm/kk* style performs charge
|
||||||
assignment and force interpolation calculations, along with the FFTs
|
assignment and force interpolation calculations, along with the FFTs
|
||||||
themselves, on the GPU or (optionally) threaded on the CPU when
|
themselves, on the GPU or (optionally) threaded on the CPU when
|
||||||
using OpenMP and FFTW3.
|
using OpenMP and FFTW3. The specific FFT library is selected using
|
||||||
|
the FFT_KOKKOS CMake parameter. See the
|
||||||
|
:doc:`Build settings <Build_settings>` doc page for how to select a
|
||||||
|
3rd-party FFT library.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
|||||||
@ -126,14 +126,50 @@ molecule (header keyword = inertia).
|
|||||||
Format of a molecule file
|
Format of a molecule file
|
||||||
"""""""""""""""""""""""""
|
"""""""""""""""""""""""""
|
||||||
|
|
||||||
The format of an individual molecule file is similar but
|
The format of an individual molecule file looks similar but is
|
||||||
(not identical) to the data file read by the :doc:`read_data <read_data>`
|
different than that of a data file read by the :doc:`read_data <read_data>`
|
||||||
commands, and is as follows.
|
commands. Here is a simple example for a TIP3P water molecule:
|
||||||
|
|
||||||
|
.. code-block::
|
||||||
|
|
||||||
|
# Water molecule. TIP3P geometry
|
||||||
|
# header section:
|
||||||
|
3 atoms
|
||||||
|
2 bonds
|
||||||
|
1 angles
|
||||||
|
|
||||||
|
# body section:
|
||||||
|
Coords
|
||||||
|
|
||||||
|
1 0.00000 -0.06556 0.00000
|
||||||
|
2 0.75695 0.52032 0.00000
|
||||||
|
3 -0.75695 0.52032 0.00000
|
||||||
|
|
||||||
|
Types
|
||||||
|
|
||||||
|
1 1 # O
|
||||||
|
2 2 # H
|
||||||
|
3 2 # H
|
||||||
|
|
||||||
|
Charges
|
||||||
|
|
||||||
|
1 -0.834
|
||||||
|
2 0.417
|
||||||
|
3 0.417
|
||||||
|
|
||||||
|
Bonds
|
||||||
|
|
||||||
|
1 1 1 2
|
||||||
|
2 1 1 3
|
||||||
|
|
||||||
|
Angles
|
||||||
|
|
||||||
|
1 1 2 1 3
|
||||||
|
|
||||||
A molecule file has a header and a body. The header appears first. The
|
A molecule file has a header and a body. The header appears first. The
|
||||||
first line of the header and thus of the molecule file is *always* skipped;
|
first line of the header and thus of the molecule file is *always*
|
||||||
it typically contains a description of the file or a comment from the software
|
skipped; it typically contains a description of the file or a comment
|
||||||
that created the file.
|
from the software that created the file.
|
||||||
|
|
||||||
Then lines are read one line at a time. Lines can have a trailing
|
Then lines are read one line at a time. Lines can have a trailing
|
||||||
comment starting with '#' that is ignored. There *must* be at least one
|
comment starting with '#' that is ignored. There *must* be at least one
|
||||||
@ -158,25 +194,62 @@ appear if the value(s) are different than the default, except when
|
|||||||
defining a *body* particle, which requires setting the number of
|
defining a *body* particle, which requires setting the number of
|
||||||
*atoms* to 1, and setting the *inertia* in a specific section (see below).
|
*atoms* to 1, and setting the *inertia* in a specific section (see below).
|
||||||
|
|
||||||
* N *atoms* = # of atoms N in molecule, default = 0
|
.. list-table::
|
||||||
* Nb *bonds* = # of bonds Nb in molecule, default = 0
|
:header-rows: 1
|
||||||
* Na *angles* = # of angles Na in molecule, default = 0
|
:widths: auto
|
||||||
* Nd *dihedrals* = # of dihedrals Nd in molecule, default = 0
|
|
||||||
* Ni *impropers* = # of impropers Ni in molecule, default = 0
|
|
||||||
* Nf *fragments* = # of fragments Nf in molecule, default = 0
|
|
||||||
* Ninteger Ndouble *body* = # of integer and floating-point values
|
|
||||||
in body particle, default = 0
|
|
||||||
* Mtotal *mass* = total mass of molecule
|
|
||||||
* Xc Yc Zc *com* = coordinates of center-of-mass of molecule
|
|
||||||
* Ixx Iyy Izz Ixy Ixz Iyz *inertia* = 6 components of inertia tensor of molecule
|
|
||||||
|
|
||||||
For *mass*, *com*, and *inertia*, the default is for LAMMPS to
|
* - Number(s)
|
||||||
calculate this quantity itself if needed, assuming the molecules
|
- Keyword
|
||||||
consist of a set of point particles or finite-size particles (with a
|
- Meaning
|
||||||
non-zero diameter) that do not overlap. If finite-size particles in
|
- Default Value
|
||||||
the molecule do overlap, LAMMPS will not account for the overlap
|
* - N
|
||||||
effects when calculating any of these 3 quantities, so you should
|
- atoms
|
||||||
pre-compute them yourself and list the values in the file.
|
- # of atoms N in molecule
|
||||||
|
- 0
|
||||||
|
* - Nb
|
||||||
|
- bonds
|
||||||
|
- # of bonds Nb in molecule
|
||||||
|
- 0
|
||||||
|
* - Na
|
||||||
|
- angles
|
||||||
|
- # of angles Na in molecule
|
||||||
|
- 0
|
||||||
|
* - Nd
|
||||||
|
- dihedrals
|
||||||
|
- # of dihedrals Nd in molecule
|
||||||
|
- 0
|
||||||
|
* - Ni
|
||||||
|
- impropers
|
||||||
|
- # of impropers Ni in molecule
|
||||||
|
- 0
|
||||||
|
* - Nf
|
||||||
|
- fragments
|
||||||
|
- # of fragments Nf in molecule
|
||||||
|
- 0
|
||||||
|
* - Ninteger Ndouble
|
||||||
|
- body
|
||||||
|
- # of integer and floating-point values in body particle
|
||||||
|
- 0
|
||||||
|
* - Mtotal
|
||||||
|
- mass
|
||||||
|
- total mass of molecule
|
||||||
|
- computed
|
||||||
|
* - Xc Yc Zc
|
||||||
|
- com
|
||||||
|
- coordinates of center-of-mass of molecule
|
||||||
|
- computed
|
||||||
|
* - Ixx Iyy Izz Ixy Ixz Iyz
|
||||||
|
- inertia
|
||||||
|
- 6 components of inertia tensor of molecule
|
||||||
|
- computed
|
||||||
|
|
||||||
|
For *mass*, *com*, and *inertia*, the default is for LAMMPS to calculate
|
||||||
|
this quantity itself if needed, assuming the molecules consist of a set
|
||||||
|
of point particles or finite-size particles (with a non-zero diameter)
|
||||||
|
that do **not** overlap. If finite-size particles in the molecule
|
||||||
|
**do** overlap, LAMMPS will not account for the overlap effects when
|
||||||
|
calculating any of these 3 quantities, so you should pre-compute them
|
||||||
|
yourself and list the values in the file.
|
||||||
|
|
||||||
The mass and center-of-mass coordinates (Xc,Yc,Zc) are
|
The mass and center-of-mass coordinates (Xc,Yc,Zc) are
|
||||||
self-explanatory. The 6 moments of inertia (ixx,iyy,izz,ixy,ixz,iyz)
|
self-explanatory. The 6 moments of inertia (ixx,iyy,izz,ixy,ixz,iyz)
|
||||||
@ -188,7 +261,7 @@ internally.
|
|||||||
|
|
||||||
These are the allowed section keywords for the body of the file.
|
These are the allowed section keywords for the body of the file.
|
||||||
|
|
||||||
* *Coords, Types, Molecules, Fragments, Charges, Diameters, Masses* = atom-property sections
|
* *Coords, Types, Molecules, Fragments, Charges, Diameters, Dipoles, Masses* = atom-property sections
|
||||||
* *Bonds, Angles, Dihedrals, Impropers* = molecular topology sections
|
* *Bonds, Angles, Dihedrals, Impropers* = molecular topology sections
|
||||||
* *Special Bond Counts, Special Bonds* = special neighbor info
|
* *Special Bond Counts, Special Bonds* = special neighbor info
|
||||||
* *Shake Flags, Shake Atoms, Shake Bond Types* = SHAKE info
|
* *Shake Flags, Shake Atoms, Shake Bond Types* = SHAKE info
|
||||||
@ -303,6 +376,21 @@ not listed, the default diameter of each atom in the molecule is 1.0.
|
|||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
.. versionadded:: 7Feb2024
|
||||||
|
|
||||||
|
*Dipoles* section:
|
||||||
|
|
||||||
|
* one line per atom
|
||||||
|
* line syntax: ID mux muy muz
|
||||||
|
* mux,muy,muz = x-, y-, and z-component of point dipole vector of atom
|
||||||
|
|
||||||
|
This section is only allowed for :doc:`atom styles <atom_style>` that
|
||||||
|
support particles with point dipoles, e.g. atom_style dipole. If not
|
||||||
|
listed, the default dipole component of each atom in the molecule is set
|
||||||
|
to 0.0.
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
*Masses* section:
|
*Masses* section:
|
||||||
|
|
||||||
* one line per atom
|
* one line per atom
|
||||||
|
|||||||
@ -10,7 +10,7 @@ Syntax
|
|||||||
|
|
||||||
neb etol ftol N1 N2 Nevery file-style arg keyword values
|
neb etol ftol N1 N2 Nevery file-style arg keyword values
|
||||||
|
|
||||||
* etol = stopping tolerance for energy (energy units)
|
* etol = stopping tolerance for energy (dimensionless)
|
||||||
* ftol = stopping tolerance for force (force units)
|
* ftol = stopping tolerance for force (force units)
|
||||||
* N1 = max # of iterations (timesteps) to run initial NEB
|
* N1 = max # of iterations (timesteps) to run initial NEB
|
||||||
* N2 = max # of iterations (timesteps) to run barrier-climbing NEB
|
* N2 = max # of iterations (timesteps) to run barrier-climbing NEB
|
||||||
@ -89,10 +89,11 @@ potentials, and the starting configuration when the neb command is
|
|||||||
issued should be the same for every replica.
|
issued should be the same for every replica.
|
||||||
|
|
||||||
In a NEB calculation each replica is connected to other replicas by
|
In a NEB calculation each replica is connected to other replicas by
|
||||||
inter-replica nudging forces. These forces are imposed by the :doc:`fix neb <fix_neb>` command, which must be used in conjunction with the
|
inter-replica nudging forces. These forces are imposed by the
|
||||||
neb command. The group used to define the fix neb command defines the
|
:doc:`fix neb <fix_neb>` command, which must be used in conjunction
|
||||||
NEB atoms which are the only ones that inter-replica springs are
|
with the neb command. The group used to define the fix neb command
|
||||||
applied to. If the group does not include all atoms, then non-NEB
|
defines the NEB atoms which are the only ones that inter-replica springs
|
||||||
|
are applied to. If the group does not include all atoms, then non-NEB
|
||||||
atoms have no inter-replica springs and the forces they feel and their
|
atoms have no inter-replica springs and the forces they feel and their
|
||||||
motion is computed in the usual way due only to other atoms within
|
motion is computed in the usual way due only to other atoms within
|
||||||
their replica. Conceptually, the non-NEB atoms provide a background
|
their replica. Conceptually, the non-NEB atoms provide a background
|
||||||
@ -445,7 +446,7 @@ Related commands
|
|||||||
""""""""""""""""
|
""""""""""""""""
|
||||||
|
|
||||||
:doc:`prd <prd>`, :doc:`temper <temper>`, :doc:`fix langevin <fix_langevin>`,
|
:doc:`prd <prd>`, :doc:`temper <temper>`, :doc:`fix langevin <fix_langevin>`,
|
||||||
:doc:`fix viscous <fix_viscous>`
|
:doc:`fix viscous <fix_viscous>`, :doc:`fix neb <fix_neb>`
|
||||||
|
|
||||||
Default
|
Default
|
||||||
"""""""
|
"""""""
|
||||||
|
|||||||
@ -74,7 +74,7 @@ Syntax
|
|||||||
*no_affinity* values = none
|
*no_affinity* values = none
|
||||||
*kokkos* args = keyword value ...
|
*kokkos* args = keyword value ...
|
||||||
zero or more keyword/value pairs may be appended
|
zero or more keyword/value pairs may be appended
|
||||||
keywords = *neigh* or *neigh/qeq* or *neigh/thread* or *neigh/transpose* or *newton* or *binsize* or *comm* or *comm/exchange* or *comm/forward* or *comm/pair/forward* or *comm/fix/forward* or *comm/reverse* or *comm/pair/reverse* or *sort* or *gpu/aware* or *pair/only*
|
keywords = *neigh* or *neigh/qeq* or *neigh/thread* or *neigh/transpose* or *newton* or *binsize* or *comm* or *comm/exchange* or *comm/forward* or *comm/pair/forward* or *comm/fix/forward* or *comm/reverse* or *comm/pair/reverse* or *sort* or *atom/map* or *gpu/aware* or *pair/only*
|
||||||
*neigh* value = *full* or *half*
|
*neigh* value = *full* or *half*
|
||||||
full = full neighbor list
|
full = full neighbor list
|
||||||
half = half neighbor list built in thread-safe manner
|
half = half neighbor list built in thread-safe manner
|
||||||
@ -108,6 +108,9 @@ Syntax
|
|||||||
*sort* value = *no* or *device*
|
*sort* value = *no* or *device*
|
||||||
*no* = perform atom sorting in non-KOKKOS mode
|
*no* = perform atom sorting in non-KOKKOS mode
|
||||||
*device* = perform atom sorting on device (e.g. on GPU)
|
*device* = perform atom sorting on device (e.g. on GPU)
|
||||||
|
*atom/map* value = *no* or *device*
|
||||||
|
*no* = build atom map in non-KOKKOS mode
|
||||||
|
*device* = build atom map on device (e.g. on GPU)
|
||||||
*gpu/aware* = *off* or *on*
|
*gpu/aware* = *off* or *on*
|
||||||
*off* = do not use GPU-aware MPI
|
*off* = do not use GPU-aware MPI
|
||||||
*on* = use GPU-aware MPI (default)
|
*on* = use GPU-aware MPI (default)
|
||||||
@ -566,15 +569,19 @@ performing the exchange pack/unpack on the host CPU can give speedup
|
|||||||
since it reduces the number of CUDA kernel launches.
|
since it reduces the number of CUDA kernel launches.
|
||||||
|
|
||||||
The *sort* keyword determines whether the host or device performs atom
|
The *sort* keyword determines whether the host or device performs atom
|
||||||
sorting, see the :doc:`atom_modify sort <atom_modify>` command. The
|
sorting, see the :doc:`atom_modify sort <atom_modify>` command. The value
|
||||||
value options for the *sort* keyword are *no* or *device* similar to the
|
options for the *sort* keyword are *no* or *device* similar to the *comm*
|
||||||
*comm* keywords above. If a value of *host* is used it will be
|
keywords above. If a value of *host* is used it will be automatically be
|
||||||
automatically be changed to *no* since the *sort* keyword does not
|
changed to *no* since the *sort* keyword does not support *host* mode. Not
|
||||||
support *host* mode. The value of *no* will also always be used when
|
all fix styles with extra atom data support *device* mode and in that case
|
||||||
running on the CPU, i.e. setting the value to *device* will have no
|
a warning will be given and atom sorting will run in *no* mode instead.
|
||||||
effect if the simulation is running on the CPU. Not all fix styles with
|
|
||||||
extra atom data support *device* mode and in that case a warning will be
|
.. versionadded:: TBD
|
||||||
given and atom sorting will run in *no* mode instead.
|
|
||||||
|
The *atom/map* keyword determines whether the host or device builds the
|
||||||
|
atom_map, see the :doc:`atom_modify map <atom_modify>` command. The
|
||||||
|
value options for the *atom/map* keyword are identical to the *sort*
|
||||||
|
keyword above.
|
||||||
|
|
||||||
The *gpu/aware* keyword chooses whether GPU-aware MPI will be used. When
|
The *gpu/aware* keyword chooses whether GPU-aware MPI will be used. When
|
||||||
this keyword is set to *on*, buffers in GPU memory are passed directly
|
this keyword is set to *on*, buffers in GPU memory are passed directly
|
||||||
@ -593,12 +600,13 @@ for OpenMPI 1.8 (or later versions), Mvapich2 1.9 (or later) when the
|
|||||||
Spectrum MPI when the "-gpu" flag is used.
|
Spectrum MPI when the "-gpu" flag is used.
|
||||||
|
|
||||||
The *pair/only* keyword can change how the KOKKOS suffix "kk" is applied
|
The *pair/only* keyword can change how the KOKKOS suffix "kk" is applied
|
||||||
when using an accelerator device. By default device acceleration is
|
when using an accelerator device. By default device acceleration is always
|
||||||
always used for all available styles. With *pair/only* set to *on* the
|
used for all available styles. With *pair/only* set to *on* the suffix
|
||||||
suffix setting will choose device acceleration only for pair styles and
|
setting will choose device acceleration only for pair styles and run all
|
||||||
run all other force computations on the host CPU.
|
other force computations on the host CPU. The *comm* flags, along with the
|
||||||
The *comm* flags will also automatically be changed to *no*\ . This can
|
*sort* and *atom/map* keywords will also automatically be changed to *no*\ .
|
||||||
result in better performance for certain configurations and system sizes.
|
This can result in better performance for certain configurations and
|
||||||
|
system sizes.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
@ -684,18 +692,18 @@ Restrictions
|
|||||||
This command cannot be used after the simulation box is defined by a
|
This command cannot be used after the simulation box is defined by a
|
||||||
:doc:`read_data <read_data>` or :doc:`create_box <create_box>` command.
|
:doc:`read_data <read_data>` or :doc:`create_box <create_box>` command.
|
||||||
|
|
||||||
The gpu style of this command can only be invoked if LAMMPS was built
|
The *gpu* style of this command can only be invoked if LAMMPS was built
|
||||||
with the GPU package. See the :doc:`Build package <Build_package>` doc
|
with the GPU package. See the :doc:`Build package <Build_package>` doc
|
||||||
page for more info.
|
page for more info.
|
||||||
|
|
||||||
The intel style of this command can only be invoked if LAMMPS was
|
The *intel* style of this command can only be invoked if LAMMPS was
|
||||||
built with the INTEL package. See the :doc:`Build package <Build_package>` page for more info.
|
built with the INTEL package. See the :doc:`Build package <Build_package>` page for more info.
|
||||||
|
|
||||||
The kk style of this command can only be invoked if LAMMPS was built
|
The *kokkos* style of this command can only be invoked if LAMMPS was built
|
||||||
with the KOKKOS package. See the :doc:`Build package <Build_package>`
|
with the KOKKOS package. See the :doc:`Build package <Build_package>`
|
||||||
doc page for more info.
|
doc page for more info.
|
||||||
|
|
||||||
The omp style of this command can only be invoked if LAMMPS was built
|
The *omp* style of this command can only be invoked if LAMMPS was built
|
||||||
with the OPENMP package. See the :doc:`Build package <Build_package>`
|
with the OPENMP package. See the :doc:`Build package <Build_package>`
|
||||||
doc page for more info.
|
doc page for more info.
|
||||||
|
|
||||||
@ -704,19 +712,27 @@ Related commands
|
|||||||
|
|
||||||
:doc:`suffix <suffix>`, :doc:`-pk command-line switch <Run_options>`
|
:doc:`suffix <suffix>`, :doc:`-pk command-line switch <Run_options>`
|
||||||
|
|
||||||
Default
|
Defaults
|
||||||
"""""""
|
""""""""
|
||||||
|
|
||||||
For the GPU package, the default is Ngpu = 0 and the option defaults are neigh
|
For the GPU package, the default parameters and settings are:
|
||||||
= yes, newton = off, binsize = 0.0, split = 1.0, gpuID = 0 to Ngpu-1, tpa = 1,
|
|
||||||
omp = 0, and platform=-1. These settings are made automatically if the "-sf
|
|
||||||
gpu" :doc:`command-line switch <Run_options>` is used. If it is not used, you
|
|
||||||
must invoke the package gpu command in your input script or via the "-pk gpu"
|
|
||||||
:doc:`command-line switch <Run_options>`.
|
|
||||||
|
|
||||||
For the INTEL package, the default is Nphi = 1 and the option defaults are omp
|
.. parsed-literal::
|
||||||
= 0, mode = mixed, lrt = no, balance = -1, tpc = 4, tptask = 240, pppm_table =
|
|
||||||
yes. The default ghost option is determined by the pair style being used.
|
Ngpu = 0, neigh = yes, newton = off, binsize = 0.0, split = 1.0, gpuID = 0 to Ngpu-1, tpa = 1, omp = 0, platform=-1.
|
||||||
|
|
||||||
|
These settings are made automatically if the "-sf gpu"
|
||||||
|
:doc:`command-line switch <Run_options>` is used. If it is not used,
|
||||||
|
you must invoke the package gpu command in your input script or via the
|
||||||
|
"-pk gpu" :doc:`command-line switch <Run_options>`.
|
||||||
|
|
||||||
|
For the INTEL package, the default parameters and settings are:
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
Nphi = 1, omp = 0, mode = mixed, lrt = no, balance = -1, tpc = 4, tptask = 240, pppm_table = yes
|
||||||
|
|
||||||
|
The default ghost option is determined by the pair style being used.
|
||||||
This value is output to the screen in the offload report at the end of each
|
This value is output to the screen in the offload report at the end of each
|
||||||
run. Note that all of these settings, except "omp" and "mode", are ignored if
|
run. Note that all of these settings, except "omp" and "mode", are ignored if
|
||||||
LAMMPS was not built with Xeon Phi co-processor support. These settings are
|
LAMMPS was not built with Xeon Phi co-processor support. These settings are
|
||||||
@ -724,20 +740,35 @@ made automatically if the "-sf intel" :doc:`command-line switch <Run_options>`
|
|||||||
is used. If it is not used, you must invoke the package intel command in your
|
is used. If it is not used, you must invoke the package intel command in your
|
||||||
input script or via the "-pk intel" :doc:`command-line switch <Run_options>`.
|
input script or via the "-pk intel" :doc:`command-line switch <Run_options>`.
|
||||||
|
|
||||||
For the KOKKOS package, the option defaults for GPUs are neigh = full,
|
For the KOKKOS package when using GPUs, the option defaults are:
|
||||||
neigh/qeq = full, newton = off, binsize for GPUs = 2x LAMMPS default value,
|
|
||||||
comm = device, sort = device, neigh/transpose = off, gpu/aware = on. When
|
|
||||||
LAMMPS can safely detect that GPU-aware MPI is not available, the default value
|
|
||||||
of gpu/aware becomes "off". For CPUs or Xeon Phis, the option defaults are
|
|
||||||
neigh = half, neigh/qeq = half, newton = on, binsize = 0.0, comm = no, and sort
|
|
||||||
= no. For GPUs, option neigh/thread = on when there are 16k atoms or less on an MPI
|
|
||||||
rank, otherwise it is "off". These settings are made automatically by the
|
|
||||||
required "-k on" :doc:`command-line switch <Run_options>`. You can change them
|
|
||||||
by using the package kokkos command in your input script or via the :doc:`-pk
|
|
||||||
kokkos command-line switch <Run_options>`.
|
|
||||||
|
|
||||||
For the OMP package, the default is Nthreads = 0 and the option defaults are
|
.. parsed-literal::
|
||||||
neigh = yes. These settings are made automatically if the "-sf omp"
|
|
||||||
:doc:`command-line switch <Run_options>` is used. If it is not used, you must
|
neigh = full, neigh/qeq = full, newton = off, binsize = 2x LAMMPS default value, comm = device, sort = device, atom/map = device, neigh/transpose = off, gpu/aware = on
|
||||||
invoke the package omp command in your input script or via the "-pk omp"
|
|
||||||
:doc:`command-line switch <Run_options>`.
|
For GPUs, option neigh/thread = on when there are 16k atoms or less on
|
||||||
|
an MPI rank, otherwise it is "off". When LAMMPS can safely detect that
|
||||||
|
GPU-aware MPI is not available, the default value of gpu/aware becomes
|
||||||
|
"off".
|
||||||
|
|
||||||
|
For the KOKKOS package when using CPUs or Xeon Phis, the option defaults are:
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
neigh = half, neigh/qeq = half, newton = on, binsize = 0.0, comm = no, sort = no, atom/map = no
|
||||||
|
|
||||||
|
These settings are made automatically by
|
||||||
|
the required "-k on" :doc:`command-line switch <Run_options>`. You can
|
||||||
|
change them by using the package kokkos command in your input script or
|
||||||
|
via the :doc:`-pk kokkos command-line switch <Run_options>`.
|
||||||
|
|
||||||
|
For the OMP package, the defaults are
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
Nthreads = 0, neigh = yes
|
||||||
|
|
||||||
|
These settings are made automatically if the "-sf omp"
|
||||||
|
:doc:`command-line switch <Run_options>` is used. If it is not used,
|
||||||
|
you must invoke the package omp command in your input script or via the
|
||||||
|
"-pk omp" :doc:`command-line switch <Run_options>`.
|
||||||
|
|||||||
@ -156,7 +156,7 @@ pair_coeff command:
|
|||||||
The first 2 arguments must be \* \* so as to span all LAMMPS atom types.
|
The first 2 arguments must be \* \* so as to span all LAMMPS atom types.
|
||||||
The first three C arguments map LAMMPS atom types 1,2,3 to the C
|
The first three C arguments map LAMMPS atom types 1,2,3 to the C
|
||||||
element in the AIREBO file. The final H argument maps LAMMPS atom
|
element in the AIREBO file. The final H argument maps LAMMPS atom
|
||||||
type 4 to the H element in the SW file. If a mapping value is
|
type 4 to the H element in the AIREBO file. If a mapping value is
|
||||||
specified as NULL, the mapping is not performed. This can be used
|
specified as NULL, the mapping is not performed. This can be used
|
||||||
when a *airebo* potential is used as part of the *hybrid* pair style.
|
when a *airebo* potential is used as part of the *hybrid* pair style.
|
||||||
The NULL values are placeholders for atom types that will be used with
|
The NULL values are placeholders for atom types that will be used with
|
||||||
@ -222,12 +222,12 @@ enabled if LAMMPS was built with that package. See the :doc:`Build package <Bui
|
|||||||
These pair potentials require the :doc:`newton <newton>` setting to be
|
These pair potentials require the :doc:`newton <newton>` setting to be
|
||||||
"on" for pair interactions.
|
"on" for pair interactions.
|
||||||
|
|
||||||
The CH.airebo and CH.airebo-m potential files provided with LAMMPS
|
The CH.airebo and CH.airebo-m potential files provided with LAMMPS (see
|
||||||
(see the potentials directory) are parameterized for metal :doc:`units <units>`.
|
the potentials directory) are parameterized for metal :doc:`units
|
||||||
You can use the AIREBO, AIREBO-M or REBO potential with any LAMMPS units,
|
<units>`. You can use the pair styles with *any* LAMMPS units, but you
|
||||||
but you would need to create your own AIREBO or AIREBO-M potential file
|
would need to create your own AIREBO or AIREBO-M potential file with
|
||||||
with coefficients listed in the appropriate units, if your simulation
|
coefficients listed in the appropriate units, if your simulation does
|
||||||
does not use "metal" units.
|
not use "metal" units.
|
||||||
|
|
||||||
The pair styles provided here **only** support potential files parameterized
|
The pair styles provided here **only** support potential files parameterized
|
||||||
for the elements carbon and hydrogen (designated with "C" and "H" in the
|
for the elements carbon and hydrogen (designated with "C" and "H" in the
|
||||||
|
|||||||
@ -16,6 +16,7 @@
|
|||||||
.. index:: pair_style lj/charmm/coul/msm/omp
|
.. index:: pair_style lj/charmm/coul/msm/omp
|
||||||
.. index:: pair_style lj/charmmfsw/coul/charmmfsh
|
.. index:: pair_style lj/charmmfsw/coul/charmmfsh
|
||||||
.. index:: pair_style lj/charmmfsw/coul/long
|
.. index:: pair_style lj/charmmfsw/coul/long
|
||||||
|
.. index:: pair_style lj/charmmfsw/coul/long/kk
|
||||||
|
|
||||||
pair_style lj/charmm/coul/charmm command
|
pair_style lj/charmm/coul/charmm command
|
||||||
========================================
|
========================================
|
||||||
@ -43,6 +44,8 @@ pair_style lj/charmmfsw/coul/charmmfsh command
|
|||||||
pair_style lj/charmmfsw/coul/long command
|
pair_style lj/charmmfsw/coul/long command
|
||||||
=========================================
|
=========================================
|
||||||
|
|
||||||
|
Accelerator Variants: *lj/charmmfsw/coul/long/kk*
|
||||||
|
|
||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
@ -281,7 +284,9 @@ page for more info.
|
|||||||
Related commands
|
Related commands
|
||||||
""""""""""""""""
|
""""""""""""""""
|
||||||
|
|
||||||
:doc:`pair_coeff <pair_coeff>`
|
:doc:`pair_coeff <pair_coeff>`, :doc:`angle_style charmm <angle_charmm>`,
|
||||||
|
:doc:`dihedral_style charmm <dihedral_charmm>`,
|
||||||
|
:doc:`dihedral_style charmmfsw <dihedral_charmm>`, :doc:`fix cmap <fix_cmap>`
|
||||||
|
|
||||||
Default
|
Default
|
||||||
"""""""
|
"""""""
|
||||||
|
|||||||
@ -138,8 +138,12 @@ This pair style can only be used via the *pair* keyword of the
|
|||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|
||||||
This style is part of the MC package. It is only enabled if LAMMPS
|
This pair style is part of the MC package. It is only enabled if LAMMPS
|
||||||
was built with that package. See the :doc:`Build package <Build_package>` page for more info.
|
was built with that package. See the :doc:`Build package
|
||||||
|
<Build_package>` page for more info.
|
||||||
|
|
||||||
|
This pair style requires an :doc:`atom style <atom_style>` with per
|
||||||
|
atom type masses.
|
||||||
|
|
||||||
Related commands
|
Related commands
|
||||||
""""""""""""""""
|
""""""""""""""""
|
||||||
|
|||||||
@ -72,7 +72,7 @@ interactions between particles which depend on the distance and have a
|
|||||||
cutoff. The potential function must be provided as an expression string
|
cutoff. The potential function must be provided as an expression string
|
||||||
using "r" as the distance variable. With pair style *lepton/coul* one
|
using "r" as the distance variable. With pair style *lepton/coul* one
|
||||||
may additionally reference the charges of the two atoms of the pair with
|
may additionally reference the charges of the two atoms of the pair with
|
||||||
"qi" and "qj", respectively. With pair style *lepton/coul* one may
|
"qi" and "qj", respectively. With pair style *lepton/sphere* one may
|
||||||
instead reference the radii of the two atoms of the pair with "radi" and
|
instead reference the radii of the two atoms of the pair with "radi" and
|
||||||
"radj", respectively; this is half of the diameter that can be set in
|
"radj", respectively; this is half of the diameter that can be set in
|
||||||
:doc:`data files <read_data>` or the :doc:`set command <set>`.
|
:doc:`data files <read_data>` or the :doc:`set command <set>`.
|
||||||
@ -166,8 +166,8 @@ mixing. Thus, expressions for *all* I,J pairs must be specified
|
|||||||
explicitly.
|
explicitly.
|
||||||
|
|
||||||
Only pair style *lepton* supports the :doc:`pair_modify shift <pair_modify>`
|
Only pair style *lepton* supports the :doc:`pair_modify shift <pair_modify>`
|
||||||
option for shifting the energy of the pair interaction so that it is
|
option for shifting the potential energy of the pair interaction so that
|
||||||
0 at the cutoff, pair styles *lepton/coul* and *lepton/sphere* do *not*.
|
it is 0 at the cutoff, pair styles *lepton/coul* and *lepton/sphere* do *not*.
|
||||||
|
|
||||||
The :doc:`pair_modify table <pair_modify>` options are not relevant for
|
The :doc:`pair_modify table <pair_modify>` options are not relevant for
|
||||||
the these pair styles.
|
the these pair styles.
|
||||||
|
|||||||
@ -427,8 +427,8 @@ package. They are only enabled if LAMMPS was built with that package.
|
|||||||
See the :doc:`Build package <Build_package>` page for more info.
|
See the :doc:`Build package <Build_package>` page for more info.
|
||||||
|
|
||||||
The maximum number of elements, that can be read from the MEAM library
|
The maximum number of elements, that can be read from the MEAM library
|
||||||
file, is determined at compile time. The default is 5. If you need
|
file, is determined at compile time. The default is 8. If you need
|
||||||
support for more elements, you have to change the the constant 'maxelt'
|
support for more elements, you have to change the the constant 'MAXELT'
|
||||||
at the beginning of the file ``src/MEAM/meam.h`` and update/recompile
|
at the beginning of the file ``src/MEAM/meam.h`` and update/recompile
|
||||||
LAMMPS. There is no limit on the number of atoms types.
|
LAMMPS. There is no limit on the number of atoms types.
|
||||||
|
|
||||||
|
|||||||
150
doc/src/pair_rebomos.rst
Normal file
150
doc/src/pair_rebomos.rst
Normal file
@ -0,0 +1,150 @@
|
|||||||
|
.. index:: pair_style rebomos
|
||||||
|
.. index:: pair_style rebomos/omp
|
||||||
|
|
||||||
|
pair_style rebomos command
|
||||||
|
==========================
|
||||||
|
|
||||||
|
Accelerator Variants: *rebomos/omp*
|
||||||
|
|
||||||
|
Syntax
|
||||||
|
""""""
|
||||||
|
|
||||||
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
|
pair_style rebomos
|
||||||
|
|
||||||
|
* rebomos = name of this pair style
|
||||||
|
|
||||||
|
Examples
|
||||||
|
""""""""
|
||||||
|
|
||||||
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
|
pair_style rebomos
|
||||||
|
pair_coeff * * ../potentials/MoS.rebomos Mo S
|
||||||
|
|
||||||
|
Example input scripts available: examples/threebody/
|
||||||
|
|
||||||
|
Description
|
||||||
|
"""""""""""
|
||||||
|
|
||||||
|
.. versionadded:: TBD
|
||||||
|
|
||||||
|
The *rebomos* pair style computes the interactions between molybdenum
|
||||||
|
and sulfur atoms :ref:`(Stewart) <Stewart>` utilizing an adaptive
|
||||||
|
interatomic reactive empirical bond order potential that is similar in
|
||||||
|
form to the AIREBO potential :ref:`(Stuart) <Stuart2>`. The potential
|
||||||
|
is based on an earlier parameterizations for :math:`\text{MoS}_2`
|
||||||
|
developed by :ref:`(Liang) <Liang>`.
|
||||||
|
|
||||||
|
The REBOMoS potential consists of two terms:
|
||||||
|
|
||||||
|
.. math::
|
||||||
|
|
||||||
|
E & = \frac{1}{2} \sum_i \sum_{j \neq i}
|
||||||
|
\left[ E^{\text{REBO}}_{ij} + E^{\text{LJ}}_{ij} \right] \\
|
||||||
|
|
||||||
|
The :math:`E^{\text{REBO}}` term describes the covalently bonded
|
||||||
|
interactions between Mo and S atoms while the :math:`E^{\text{LJ}}` term
|
||||||
|
describes longer range dispersion forces between layers. A cubic spline
|
||||||
|
function is applied to smoothly switch between covalent bonding at short
|
||||||
|
distances to dispersion interactions at longer distances. This allows
|
||||||
|
the model to capture bond formation and breaking events which may occur
|
||||||
|
between adjacent MoS2 layers, edges, defects, and more.
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
Only a single pair_coeff command is used with the *rebomos* pair style
|
||||||
|
which specifies an REBOMoS potential file with parameters for Mo and S.
|
||||||
|
These are mapped to LAMMPS atom types by specifying N additional
|
||||||
|
arguments after the filename in the pair_coeff command, where N is the
|
||||||
|
number of LAMMPS atom types:
|
||||||
|
|
||||||
|
* filename
|
||||||
|
* :math:`N` element names = mapping of REBOMoS elements to atom types
|
||||||
|
|
||||||
|
See the :doc:`pair_coeff <pair_coeff>` page for alternate ways
|
||||||
|
to specify the path for the potential file.
|
||||||
|
|
||||||
|
As an example, if your LAMMPS simulation has three atom types and you want
|
||||||
|
the first two to be Mo, and the third to be S, you would use the following
|
||||||
|
pair_coeff command:
|
||||||
|
|
||||||
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
|
pair_coeff * * MoS.rebomos Mo Mo S
|
||||||
|
|
||||||
|
The first 2 arguments must be \* \* so as to span all LAMMPS atom types.
|
||||||
|
The first two Mo arguments map LAMMPS atom types 1 and 2 to the Mo
|
||||||
|
element in the REBOMoS file. The final S argument maps LAMMPS atom type
|
||||||
|
3 to the S element in the REBOMoS file. If a mapping value is specified
|
||||||
|
as NULL, the mapping is not performed. This can be used when a
|
||||||
|
*rebomos* potential is used as part of the *hybrid* pair style. The
|
||||||
|
NULL values are placeholders for atom types that will be used with other
|
||||||
|
potentials.
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
.. include:: accel_styles.rst
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
Mixing, shift, table, tail correction, restart, rRESPA info
|
||||||
|
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
|
||||||
|
This pair style does not support the :doc:`pair_modify <pair_modify>`
|
||||||
|
mix, shift, table, and tail options.
|
||||||
|
|
||||||
|
This pair style does not write their information to :doc:`binary restart
|
||||||
|
files <restart>`, since it is stored in potential files. Thus, you need
|
||||||
|
to re-specify the pair_style and pair_coeff commands in an input script
|
||||||
|
that reads a restart file.
|
||||||
|
|
||||||
|
This pair styles can only be used via the *pair* keyword of the
|
||||||
|
:doc:`run_style respa <run_style>` command. It does not support the
|
||||||
|
*inner*, *middle*, *outer* keywords.
|
||||||
|
|
||||||
|
Restrictions
|
||||||
|
""""""""""""
|
||||||
|
|
||||||
|
This pair style is part of the MANYBODY package. It is only enabled if
|
||||||
|
LAMMPS was built with that package. See the :doc:`Build package
|
||||||
|
<Build_package>` page for more info.
|
||||||
|
|
||||||
|
These pair potentials require the :doc:`newton <newton>` setting to be
|
||||||
|
"on" for pair interactions.
|
||||||
|
|
||||||
|
The MoS.rebomos potential file provided with LAMMPS (see the potentials
|
||||||
|
directory) is parameterized for metal :doc:`units <units>`. You can use
|
||||||
|
the *rebomos* pair style with any LAMMPS units setting, but you would
|
||||||
|
need to create your own REBOMoS potential file with coefficients listed
|
||||||
|
in the appropriate units.
|
||||||
|
|
||||||
|
The pair style provided here **only** supports potential files parameterized
|
||||||
|
for the elements molybdenum and sulfur (designated with "Mo" and "S" in the
|
||||||
|
*pair_coeff* command. Using potential files for other elements will trigger
|
||||||
|
an error.
|
||||||
|
|
||||||
|
Related commands
|
||||||
|
""""""""""""""""
|
||||||
|
|
||||||
|
:doc:`pair_coeff <pair_coeff>`, :doc:`pair style rebo <pair_airebo>`
|
||||||
|
|
||||||
|
Default
|
||||||
|
"""""""
|
||||||
|
|
||||||
|
none
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
.. _Stewart:
|
||||||
|
|
||||||
|
**(Steward)** Stewart, Spearot, Modelling Simul. Mater. Sci. Eng. 21, 045003, (2013).
|
||||||
|
|
||||||
|
.. _Stuart2:
|
||||||
|
|
||||||
|
**(Stuart)** Stuart, Tutein, Harrison, J Chem Phys, 112, 6472-6486, (2000).
|
||||||
|
|
||||||
|
.. _Liang:
|
||||||
|
|
||||||
|
**(Liang)** Liang, Phillpot, Sinnott Phys. Rev. B79 245110, (2009), Erratum: Phys. Rev. B85 199903(E), (2012)
|
||||||
@ -333,6 +333,7 @@ accelerated styles exist.
|
|||||||
* :doc:`rann <pair_rann>` -
|
* :doc:`rann <pair_rann>` -
|
||||||
* :doc:`reaxff <pair_reaxff>` - ReaxFF potential
|
* :doc:`reaxff <pair_reaxff>` - ReaxFF potential
|
||||||
* :doc:`rebo <pair_airebo>` - second generation REBO potential of Brenner
|
* :doc:`rebo <pair_airebo>` - second generation REBO potential of Brenner
|
||||||
|
* :doc:`rebomos <pair_rebomos>` - REBOMoS potential for MoS2
|
||||||
* :doc:`resquared <pair_resquared>` - Everaers RE-Squared ellipsoidal potential
|
* :doc:`resquared <pair_resquared>` - Everaers RE-Squared ellipsoidal potential
|
||||||
* :doc:`saip/metal <pair_saip_metal>` - interlayer potential for hetero-junctions formed with hexagonal 2D materials and metal surfaces
|
* :doc:`saip/metal <pair_saip_metal>` - interlayer potential for hetero-junctions formed with hexagonal 2D materials and metal surfaces
|
||||||
* :doc:`sdpd/taitwater/isothermal <pair_sdpd_taitwater_isothermal>` - smoothed dissipative particle dynamics for water at isothermal conditions
|
* :doc:`sdpd/taitwater/isothermal <pair_sdpd_taitwater_isothermal>` - smoothed dissipative particle dynamics for water at isothermal conditions
|
||||||
|
|||||||
@ -25,6 +25,8 @@ Syntax
|
|||||||
*numa* params = none
|
*numa* params = none
|
||||||
*custom* params = infile
|
*custom* params = infile
|
||||||
infile = file containing grid layout
|
infile = file containing grid layout
|
||||||
|
*numa_nodes* arg = Nn
|
||||||
|
Nn = number of numa domains per node
|
||||||
*map* arg = *cart* or *cart/reorder* or *xyz* or *xzy* or *yxz* or *yzx* or *zxy* or *zyx*
|
*map* arg = *cart* or *cart/reorder* or *xyz* or *xzy* or *yxz* or *yzx* or *zxy* or *zyx*
|
||||||
cart = use MPI_Cart() methods to map processors to 3d grid with reorder = 0
|
cart = use MPI_Cart() methods to map processors to 3d grid with reorder = 0
|
||||||
cart/reorder = use MPI_Cart() methods to map processors to 3d grid with reorder = 1
|
cart/reorder = use MPI_Cart() methods to map processors to 3d grid with reorder = 1
|
||||||
@ -159,24 +161,28 @@ surface-to-volume ratio of each processor's subdomain.
|
|||||||
|
|
||||||
The *numa* style operates similar to the *twolevel* keyword except
|
The *numa* style operates similar to the *twolevel* keyword except
|
||||||
that it auto-detects which cores are running on which nodes.
|
that it auto-detects which cores are running on which nodes.
|
||||||
Currently, it does this in only 2 levels, but it may be extended in
|
It will also subdivide the cores into numa domains. Currently, the
|
||||||
the future to account for socket topology and other non-uniform memory
|
number of numa domains is not autodetected and must be specified using
|
||||||
access (NUMA) costs. It also uses a different algorithm than the
|
the *numa_nodes* keyword; otherwise, the default value is used. The
|
||||||
*twolevel* keyword for doing the two-level factorization of the
|
*numa* style uses a different algorithm than the *twolevel* keyword for
|
||||||
simulation box into a 3d processor grid to minimize off-node
|
doing the two-level factorization of the simulation box into a 3d
|
||||||
communication, and it does its own MPI-based mapping of nodes and
|
processor grid to minimize off-node communication and communication
|
||||||
|
across numa domains. It does its own MPI-based mapping of nodes and
|
||||||
cores to the regular 3d grid. Thus it may produce a different layout
|
cores to the regular 3d grid. Thus it may produce a different layout
|
||||||
of the processors than the *twolevel* options.
|
of the processors than the *twolevel* options.
|
||||||
|
|
||||||
The *numa* style will give an error if the number of MPI processes is
|
The *numa* style will give an error if the number of MPI processes is
|
||||||
not divisible by the number of cores used per node, or any of the Px
|
not divisible by the number of cores used per node, or any of the Px
|
||||||
or Py of Pz values is greater than 1.
|
or Py or Pz values is greater than 1.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Unlike the *twolevel* style, the *numa* style does not require
|
Unlike the *twolevel* style, the *numa* style does not require
|
||||||
any particular ordering of MPI ranks i norder to work correctly. This
|
any particular ordering of MPI ranks in order to work correctly. This
|
||||||
is because it auto-detects which processes are running on which nodes.
|
is because it auto-detects which processes are running on which nodes.
|
||||||
|
However, it assumes that the lowest ranks are in the first numa
|
||||||
|
domain, and so forth. MPI rank orderings that do not preserve this
|
||||||
|
property might result in more intranode communication between CPUs.
|
||||||
|
|
||||||
The *custom* style uses the file *infile* to define both the 3d
|
The *custom* style uses the file *infile* to define both the 3d
|
||||||
factorization and the mapping of processors to the grid.
|
factorization and the mapping of processors to the grid.
|
||||||
@ -207,6 +213,14 @@ any order, but no processor ID should appear more than once.
|
|||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
The *numa_nodes* keyword is used to specifiy the number of numa domains
|
||||||
|
per node. It is currently only used by the *numa* style for two-level
|
||||||
|
factorization to reduce the amount of MPI communications between CPUs.
|
||||||
|
A good setting for this will typically be equal to the number of CPU
|
||||||
|
sockets per node.
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
The *map* keyword affects how the P processor IDs (from 0 to P-1) are
|
The *map* keyword affects how the P processor IDs (from 0 to P-1) are
|
||||||
mapped to the 3d grid of processors. It is only used by the
|
mapped to the 3d grid of processors. It is only used by the
|
||||||
*onelevel* and *twolevel* grid settings.
|
*onelevel* and *twolevel* grid settings.
|
||||||
@ -356,5 +370,5 @@ Related commands
|
|||||||
Default
|
Default
|
||||||
"""""""
|
"""""""
|
||||||
|
|
||||||
The option defaults are Px Py Pz = \* \* \*, grid = onelevel, and map =
|
The option defaults are Px Py Pz = \* \* \*, grid = onelevel, map =
|
||||||
cart.
|
cart, and numa_nodes = 2.
|
||||||
|
|||||||
@ -706,7 +706,7 @@ library. Ceil() is the smallest integer not less than its argument.
|
|||||||
Floor() if the largest integer not greater than its argument. Round()
|
Floor() if the largest integer not greater than its argument. Round()
|
||||||
is the nearest integer to its argument.
|
is the nearest integer to its argument.
|
||||||
|
|
||||||
.. versionadded:: TBD
|
.. versionadded:: 7Feb2024
|
||||||
|
|
||||||
The ternary(x,y,z) function is the equivalent of the ternary operator
|
The ternary(x,y,z) function is the equivalent of the ternary operator
|
||||||
(? and :) in C or C++. It takes 3 arguments. The first argument is a
|
(? and :) in C or C++. It takes 3 arguments. The first argument is a
|
||||||
@ -1155,7 +1155,7 @@ variable by using the :doc:`compute property/atom
|
|||||||
Custom atom properties
|
Custom atom properties
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
.. versionadded:: TBD
|
.. versionadded:: 7Feb2024
|
||||||
|
|
||||||
Custom atom properties refer to per-atom integer and floating point
|
Custom atom properties refer to per-atom integer and floating point
|
||||||
vectors or arrays that have been added via the :doc:`fix property/atom
|
vectors or arrays that have been added via the :doc:`fix property/atom
|
||||||
|
|||||||
@ -125,6 +125,7 @@ antisymmetry
|
|||||||
anton
|
anton
|
||||||
Antonelli
|
Antonelli
|
||||||
api
|
api
|
||||||
|
apolar
|
||||||
Apoorva
|
Apoorva
|
||||||
Appl
|
Appl
|
||||||
Appshaw
|
Appshaw
|
||||||
@ -799,6 +800,7 @@ dlabel
|
|||||||
dlambda
|
dlambda
|
||||||
DLAMMPS
|
DLAMMPS
|
||||||
dll
|
dll
|
||||||
|
dlm
|
||||||
dlopen
|
dlopen
|
||||||
dm
|
dm
|
||||||
dmax
|
dmax
|
||||||
@ -1016,6 +1018,7 @@ Ercolessi
|
|||||||
Erdmann
|
Erdmann
|
||||||
erf
|
erf
|
||||||
erfc
|
erfc
|
||||||
|
erforce
|
||||||
Erhart
|
Erhart
|
||||||
erorate
|
erorate
|
||||||
erose
|
erose
|
||||||
@ -1767,6 +1770,7 @@ Kolafa
|
|||||||
Kollman
|
Kollman
|
||||||
kolmogorov
|
kolmogorov
|
||||||
Kolmogorov
|
Kolmogorov
|
||||||
|
Kolotinskii
|
||||||
Kondor
|
Kondor
|
||||||
konglt
|
konglt
|
||||||
Koning
|
Koning
|
||||||
@ -2236,8 +2240,10 @@ Mohd
|
|||||||
Mohles
|
Mohles
|
||||||
mol
|
mol
|
||||||
Mol
|
Mol
|
||||||
|
molatom
|
||||||
molfile
|
molfile
|
||||||
Molfile
|
Molfile
|
||||||
|
molindex
|
||||||
MolPairStyle
|
MolPairStyle
|
||||||
moltemplate
|
moltemplate
|
||||||
momb
|
momb
|
||||||
@ -2261,6 +2267,7 @@ morris
|
|||||||
Morriss
|
Morriss
|
||||||
morse
|
morse
|
||||||
Morteza
|
Morteza
|
||||||
|
MoS
|
||||||
Mosayebi
|
Mosayebi
|
||||||
Moseler
|
Moseler
|
||||||
Moskalev
|
Moskalev
|
||||||
@ -2570,6 +2577,7 @@ ns
|
|||||||
Ns
|
Ns
|
||||||
Nsample
|
Nsample
|
||||||
Nskip
|
Nskip
|
||||||
|
nspecial
|
||||||
Nspecies
|
Nspecies
|
||||||
nsq
|
nsq
|
||||||
Nstart
|
Nstart
|
||||||
@ -2768,6 +2776,7 @@ PEigenDense
|
|||||||
Peng
|
Peng
|
||||||
peptide
|
peptide
|
||||||
peratom
|
peratom
|
||||||
|
Perf
|
||||||
Pergamon
|
Pergamon
|
||||||
pergrid
|
pergrid
|
||||||
peri
|
peri
|
||||||
@ -3064,6 +3073,7 @@ reaxff
|
|||||||
ReaxFF
|
ReaxFF
|
||||||
REAXFF
|
REAXFF
|
||||||
rebo
|
rebo
|
||||||
|
rebomos
|
||||||
recurse
|
recurse
|
||||||
recursing
|
recursing
|
||||||
Ree
|
Ree
|
||||||
@ -3591,6 +3601,7 @@ tesselation
|
|||||||
tesselations
|
tesselations
|
||||||
Tetot
|
Tetot
|
||||||
tex
|
tex
|
||||||
|
textrm
|
||||||
tfac
|
tfac
|
||||||
tfmc
|
tfmc
|
||||||
tfMC
|
tfMC
|
||||||
@ -3791,6 +3802,7 @@ unimodal
|
|||||||
uninstall
|
uninstall
|
||||||
unitarg
|
unitarg
|
||||||
unitless
|
unitless
|
||||||
|
unittest
|
||||||
Universite
|
Universite
|
||||||
unix
|
unix
|
||||||
unmaintained
|
unmaintained
|
||||||
@ -3877,7 +3889,10 @@ Verlet
|
|||||||
versa
|
versa
|
||||||
Verstraelen
|
Verstraelen
|
||||||
ves
|
ves
|
||||||
|
vf
|
||||||
vflag
|
vflag
|
||||||
|
vflow
|
||||||
|
vfrac
|
||||||
vhi
|
vhi
|
||||||
vibrational
|
vibrational
|
||||||
Vij
|
Vij
|
||||||
|
|||||||
@ -1,104 +1,104 @@
|
|||||||
# SRD diffusion demo - dimer particles
|
# SRD diffusion demo - dimer particles
|
||||||
|
|
||||||
units lj
|
units lj
|
||||||
atom_style sphere
|
atom_style sphere
|
||||||
atom_modify map array first big
|
atom_modify map array first big
|
||||||
dimension 2
|
dimension 2
|
||||||
|
|
||||||
# read in clusters of rigid bodies
|
# read in clusters of rigid bodies
|
||||||
|
|
||||||
fix molprop all property/atom mol
|
fix molprop all property/atom mol ghost yes
|
||||||
read_data data.dimer fix molprop NULL Molecules
|
read_data data.dimer fix molprop NULL Molecules
|
||||||
|
|
||||||
|
set type 1 mass 1.0
|
||||||
|
group big type 1
|
||||||
|
velocity big create 1.44 87287 loop geom
|
||||||
|
|
||||||
set type 1 mass 1.0
|
|
||||||
group big type 1
|
|
||||||
velocity big create 1.44 87287 loop geom
|
|
||||||
|
|
||||||
# equilibrate big particles
|
# equilibrate big particles
|
||||||
|
|
||||||
pair_style soft 1.12
|
pair_style soft 1.12
|
||||||
pair_coeff 1 1 0.0
|
pair_coeff 1 1 0.0
|
||||||
pair_coeff 2 2 0.0 0.0
|
pair_coeff 2 2 0.0 0.0
|
||||||
pair_coeff 1 2 0.0 0.0
|
pair_coeff 1 2 0.0 0.0
|
||||||
|
|
||||||
variable prefactor equal ramp(0,60)
|
variable prefactor equal ramp(0,60)
|
||||||
fix soft all adapt 1 pair soft a * * v_prefactor
|
fix soft all adapt 1 pair soft a * * v_prefactor
|
||||||
|
|
||||||
fix 1 big rigid molecule
|
fix 1 big rigid molecule
|
||||||
fix 2 all enforce2d
|
fix 2 all enforce2d
|
||||||
|
|
||||||
#dump 1 all atom 10 dump.dimer.equil
|
#dump 1 all atom 10 dump.dimer.equil
|
||||||
|
|
||||||
thermo 100
|
thermo 100
|
||||||
run 1000
|
run 1000
|
||||||
|
|
||||||
#undump 1
|
#undump 1
|
||||||
unfix soft
|
unfix soft
|
||||||
unfix 1
|
unfix 1
|
||||||
unfix 2
|
unfix 2
|
||||||
|
|
||||||
# add small particles as hi density lattice
|
# add small particles as hi density lattice
|
||||||
|
|
||||||
region plane block INF INF INF INF -0.001 0.001 units box
|
region plane block INF INF INF INF -0.001 0.001 units box
|
||||||
lattice sq 85.0
|
lattice sq 85.0
|
||||||
create_atoms 2 region plane
|
create_atoms 2 region plane
|
||||||
|
|
||||||
set type 2 mass 0.1
|
set type 2 mass 0.1
|
||||||
group small type 2
|
group small type 2
|
||||||
velocity small create 1.0 593849 loop geom
|
velocity small create 1.0 593849 loop geom
|
||||||
|
|
||||||
# delete overlaps
|
# delete overlaps
|
||||||
# must set 1-2 cutoff to non-zero value
|
# must set 1-2 cutoff to non-zero value
|
||||||
|
|
||||||
pair_style lj/cut 2.5
|
pair_style lj/cut 2.5
|
||||||
pair_coeff 1 1 1.0 1.0
|
pair_coeff 1 1 1.0 1.0
|
||||||
pair_coeff 2 2 0.0 1.0 0.0
|
pair_coeff 2 2 0.0 1.0 0.0
|
||||||
pair_coeff 1 2 0.0 1.0 0.5
|
pair_coeff 1 2 0.0 1.0 0.5
|
||||||
|
|
||||||
delete_atoms overlap 0.5 small big
|
delete_atoms overlap 0.5 small big
|
||||||
|
|
||||||
# SRD run
|
# SRD run
|
||||||
|
|
||||||
reset_timestep 0
|
reset_timestep 0
|
||||||
|
|
||||||
neighbor 0.3 multi
|
neighbor 0.3 multi
|
||||||
neigh_modify delay 0 every 1 check yes
|
neigh_modify delay 0 every 1 check yes
|
||||||
|
|
||||||
comm_modify mode multi group big vel yes
|
comm_modify mode multi group big vel yes
|
||||||
neigh_modify include big
|
neigh_modify include big
|
||||||
|
|
||||||
# no pairwise interactions with small particles
|
# no pairwise interactions with small particles
|
||||||
|
|
||||||
pair_style lj/cut 2.5
|
pair_style lj/cut 2.5
|
||||||
pair_coeff 1 1 1.0 1.0
|
pair_coeff 1 1 1.0 1.0
|
||||||
pair_coeff 2 2 0.0 1.0 0.0
|
pair_coeff 2 2 0.0 1.0 0.0
|
||||||
pair_coeff 1 2 0.0 1.0 0.0
|
pair_coeff 1 2 0.0 1.0 0.0
|
||||||
|
|
||||||
# use fix SRD to push small particles out from inside big ones
|
# use fix SRD to push small particles out from inside big ones
|
||||||
# if comment out, big particles won't see SRD particles
|
# if comment out, big particles won't see SRD particles
|
||||||
|
|
||||||
timestep 0.001
|
timestep 0.001
|
||||||
|
|
||||||
fix 1 big rigid molecule
|
fix 1 big rigid molecule
|
||||||
fix 2 small srd 20 big 1.0 0.25 49894 shift yes 54979 &
|
fix 2 small srd 20 big 1.0 0.25 49894 shift yes 54979 &
|
||||||
search 0.2 collision slip inside ignore overlap yes
|
search 0.2 collision slip inside ignore overlap yes
|
||||||
fix 3 all enforce2d
|
fix 3 all enforce2d
|
||||||
|
|
||||||
# diagnostics
|
# diagnostics
|
||||||
|
|
||||||
compute tbig big temp/sphere
|
compute tbig big temp/sphere
|
||||||
variable pebig equal pe*atoms/count(big)
|
variable pebig equal pe*atoms/count(big)
|
||||||
variable ebig equal etotal*atoms/count(big)
|
variable ebig equal etotal*atoms/count(big)
|
||||||
thermo_style custom step temp f_2[8] etotal v_pebig v_ebig press &
|
thermo_style custom step temp f_2[8] etotal v_pebig v_ebig press &
|
||||||
f_2[1] f_2[2] f_2[3] f_2[4] f_2[5] &
|
f_2[1] f_2[2] f_2[3] f_2[4] f_2[5] &
|
||||||
f_2[6] f_2[7] f_2[8] f_2[9] f_2[10] f_2[11] f_2[12]
|
f_2[6] f_2[7] f_2[8] f_2[9] f_2[10] f_2[11] f_2[12]
|
||||||
|
|
||||||
thermo_modify temp tbig
|
thermo_modify temp tbig
|
||||||
thermo 1000
|
thermo 1000
|
||||||
|
|
||||||
#dump 1 all atom 1000 dump.dimer
|
#dump 1 all atom 1000 dump.dimer
|
||||||
|
|
||||||
#dump 1 all image 1000 image.*.jpg type type zoom 1.6
|
#dump 1 all image 1000 image.*.jpg type type zoom 1.6
|
||||||
#dump_modify 1 pad 6 adiam 1 1 adiam 2 0.2
|
#dump_modify 1 pad 6 adiam 1 1 adiam 2 0.2
|
||||||
|
|
||||||
run 100000
|
run 10000
|
||||||
|
|||||||
@ -1,105 +1,105 @@
|
|||||||
# SRD viscosity demo - dimer particles
|
# SRD viscosity demo - dimer particles
|
||||||
|
|
||||||
units lj
|
units lj
|
||||||
atom_style sphere
|
atom_style sphere
|
||||||
atom_modify map array first big
|
atom_modify map array first big
|
||||||
dimension 2
|
dimension 2
|
||||||
|
|
||||||
# read in clusters of rigid bodies
|
# read in clusters of rigid bodies
|
||||||
|
|
||||||
fix molprop all property/atom mol
|
fix molprop all property/atom mol ghost yes
|
||||||
read_data data.dimer fix molprop NULL Molecules
|
read_data data.dimer fix molprop NULL Molecules
|
||||||
|
|
||||||
set type 1 mass 1.0
|
set type 1 mass 1.0
|
||||||
group big type 1
|
group big type 1
|
||||||
velocity big create 1.44 87287 loop geom
|
velocity big create 1.44 87287 loop geom
|
||||||
|
|
||||||
# equilibrate big particles
|
# equilibrate big particles
|
||||||
|
|
||||||
pair_style soft 1.12
|
pair_style soft 1.12
|
||||||
pair_coeff 1 1 0.0
|
pair_coeff 1 1 0.0
|
||||||
pair_coeff 2 2 0.0 0.0
|
pair_coeff 2 2 0.0 0.0
|
||||||
pair_coeff 1 2 0.0 0.0
|
pair_coeff 1 2 0.0 0.0
|
||||||
|
|
||||||
variable prefactor equal ramp(0,60)
|
variable prefactor equal ramp(0,60)
|
||||||
fix soft all adapt 1 pair soft a * * v_prefactor
|
fix soft all adapt 1 pair soft a * * v_prefactor
|
||||||
|
|
||||||
fix 1 big rigid molecule
|
fix 1 big rigid molecule
|
||||||
fix 2 all enforce2d
|
fix 2 all enforce2d
|
||||||
|
|
||||||
#dump 1 all atom 10 dump.dimer.equil
|
#dump 1 all atom 10 dump.dimer.equil
|
||||||
|
|
||||||
thermo 100
|
thermo 100
|
||||||
run 1000
|
run 1000
|
||||||
|
|
||||||
#undump 1
|
#undump 1
|
||||||
unfix soft
|
unfix soft
|
||||||
unfix 1
|
unfix 1
|
||||||
unfix 2
|
unfix 2
|
||||||
|
|
||||||
# add small particles as hi density lattice
|
# add small particles as hi density lattice
|
||||||
|
|
||||||
region plane block INF INF INF INF -0.001 0.001 units box
|
region plane block INF INF INF INF -0.001 0.001 units box
|
||||||
lattice sq 85.0
|
lattice sq 85.0
|
||||||
create_atoms 2 region plane
|
create_atoms 2 region plane
|
||||||
|
|
||||||
set type 2 mass 0.1
|
set type 2 mass 0.1
|
||||||
group small type 2
|
group small type 2
|
||||||
velocity small create 1.0 593849 loop geom
|
velocity small create 1.0 593849 loop geom
|
||||||
|
|
||||||
# delete overlaps
|
# delete overlaps
|
||||||
# must set 1-2 cutoff to non-zero value
|
# must set 1-2 cutoff to non-zero value
|
||||||
|
|
||||||
pair_style lj/cut 2.5
|
pair_style lj/cut 2.5
|
||||||
pair_coeff 1 1 1.0 1.0
|
pair_coeff 1 1 1.0 1.0
|
||||||
pair_coeff 2 2 0.0 1.0 0.0
|
pair_coeff 2 2 0.0 1.0 0.0
|
||||||
pair_coeff 1 2 0.0 1.0 0.5
|
pair_coeff 1 2 0.0 1.0 0.5
|
||||||
|
|
||||||
delete_atoms overlap 0.5 small big
|
delete_atoms overlap 0.5 small big
|
||||||
|
|
||||||
# SRD run
|
# SRD run
|
||||||
|
|
||||||
reset_timestep 0
|
reset_timestep 0
|
||||||
|
|
||||||
neighbor 0.3 multi
|
neighbor 0.3 multi
|
||||||
neigh_modify delay 0 every 1 check yes
|
neigh_modify delay 0 every 1 check yes
|
||||||
|
|
||||||
comm_modify mode multi group big vel yes
|
comm_modify mode multi group big vel yes
|
||||||
neigh_modify include big
|
neigh_modify include big
|
||||||
|
|
||||||
# no pairwise interactions with small particles
|
# no pairwise interactions with small particles
|
||||||
|
|
||||||
pair_style lj/cut 2.5
|
pair_style lj/cut 2.5
|
||||||
pair_coeff 1 1 1.0 1.0
|
pair_coeff 1 1 1.0 1.0
|
||||||
pair_coeff 2 2 0.0 1.0 0.0
|
pair_coeff 2 2 0.0 1.0 0.0
|
||||||
pair_coeff 1 2 0.0 1.0 0.0
|
pair_coeff 1 2 0.0 1.0 0.0
|
||||||
|
|
||||||
# use fix SRD to push small particles out from inside big ones
|
# use fix SRD to push small particles out from inside big ones
|
||||||
# if comment out, big particles won't see SRD particles
|
# if comment out, big particles won't see SRD particles
|
||||||
|
|
||||||
timestep 0.001
|
timestep 0.001
|
||||||
|
|
||||||
fix 1 big rigid molecule
|
fix 1 big rigid molecule
|
||||||
fix 2 small srd 20 big 1.0 0.25 49894 shift yes 54979 &
|
fix 2 small srd 20 big 1.0 0.25 49894 shift yes 54979 &
|
||||||
search 0.2 collision slip inside ignore overlap yes
|
search 0.2 collision slip inside ignore overlap yes
|
||||||
fix 3 small viscosity 10 x y 50
|
fix 3 small viscosity 10 x y 50
|
||||||
fix 4 all enforce2d
|
fix 4 all enforce2d
|
||||||
|
|
||||||
# diagnostics
|
# diagnostics
|
||||||
|
|
||||||
compute tbig big temp/sphere
|
compute tbig big temp/sphere
|
||||||
variable pebig equal pe*atoms/count(big)
|
variable pebig equal pe*atoms/count(big)
|
||||||
variable ebig equal etotal*atoms/count(big)
|
variable ebig equal etotal*atoms/count(big)
|
||||||
thermo_style custom step temp f_2[8] etotal v_pebig v_ebig press &
|
thermo_style custom step temp f_2[8] etotal v_pebig v_ebig press &
|
||||||
f_2[1] f_2[2] f_2[3] f_2[4] f_2[5] &
|
f_2[1] f_2[2] f_2[3] f_2[4] f_2[5] &
|
||||||
f_2[6] f_2[7] f_2[8] f_2[9] f_2[10] f_2[11] f_2[12]
|
f_2[6] f_2[7] f_2[8] f_2[9] f_2[10] f_2[11] f_2[12]
|
||||||
|
|
||||||
thermo_modify temp tbig
|
thermo_modify temp tbig
|
||||||
thermo 1000
|
thermo 1000
|
||||||
|
|
||||||
#dump 1 all atom 500 dump.dimer.mp
|
#dump 1 all atom 500 dump.dimer.mp
|
||||||
|
|
||||||
#dump 1 all image 500 image.*.jpg type type zoom 1.6
|
#dump 1 all image 500 image.*.jpg type type zoom 1.6
|
||||||
#dump_modify 1 pad 6 adiam 1 1 adiam 2 0.2
|
#dump_modify 1 pad 6 adiam 1 1 adiam 2 0.2
|
||||||
|
|
||||||
run 50000
|
run 25000
|
||||||
|
|||||||
@ -1,286 +0,0 @@
|
|||||||
LAMMPS (1 Feb 2014)
|
|
||||||
# SRD diffusion demo - dimer particles
|
|
||||||
|
|
||||||
units lj
|
|
||||||
atom_style sphere
|
|
||||||
atom_modify map array first big
|
|
||||||
dimension 2
|
|
||||||
|
|
||||||
# read in clusters of rigid bodies
|
|
||||||
|
|
||||||
fix molprop all property/atom mol
|
|
||||||
read_data data.dimer fix molprop NULL Molecules
|
|
||||||
orthogonal box = (-9.34165 -9.34165 -0.5) to (9.34165 9.34165 0.5)
|
|
||||||
4 by 2 by 1 MPI processor grid
|
|
||||||
reading atoms ...
|
|
||||||
200 atoms
|
|
||||||
|
|
||||||
set type 1 mass 1.0
|
|
||||||
200 settings made for mass
|
|
||||||
group big type 1
|
|
||||||
200 atoms in group big
|
|
||||||
velocity big create 1.44 87287 loop geom
|
|
||||||
|
|
||||||
# equilibrate big particles
|
|
||||||
|
|
||||||
pair_style soft 1.12
|
|
||||||
pair_coeff 1 1 0.0
|
|
||||||
pair_coeff 2 2 0.0 0.0
|
|
||||||
pair_coeff 1 2 0.0 0.0
|
|
||||||
|
|
||||||
variable prefactor equal ramp(0,60)
|
|
||||||
fix soft all adapt 1 pair soft a * * v_prefactor
|
|
||||||
|
|
||||||
fix 1 big rigid molecule
|
|
||||||
100 rigid bodies with 200 atoms
|
|
||||||
fix 2 all enforce2d
|
|
||||||
|
|
||||||
#dump 1 all atom 10 dump.dimer.equil
|
|
||||||
|
|
||||||
thermo 100
|
|
||||||
run 1000
|
|
||||||
Memory usage per processor = 3.1029 Mbytes
|
|
||||||
Step Temp E_pair E_mol TotEng Press
|
|
||||||
0 3.4028231 0 0 0.83369167 -0.55065517
|
|
||||||
100 9.5167872 2.392105 0 4.7237178 2.8319556
|
|
||||||
200 13.564465 3.0352634 0 6.3585572 3.6388732
|
|
||||||
300 13.133051 4.3835112 0 7.6011086 4.060051
|
|
||||||
400 14.584346 5.5141254 0 9.0872901 4.4231056
|
|
||||||
500 15.331515 6.6554832 0 10.411704 4.847642
|
|
||||||
600 16.953755 7.4794317 0 11.633102 5.2020696
|
|
||||||
700 16.503256 8.8572339 0 12.900532 5.6694613
|
|
||||||
800 17.006131 9.877343 0 14.043845 5.5483363
|
|
||||||
900 17.305927 11.081594 0 15.321546 6.2908201
|
|
||||||
1000 18.122491 12.126462 0 16.566472 5.7536055
|
|
||||||
Loop time of 0.185949 on 8 procs for 1000 steps with 200 atoms
|
|
||||||
|
|
||||||
Pair time (%) = 0.00187448 (1.00806)
|
|
||||||
Neigh time (%) = 0.000561714 (0.30208)
|
|
||||||
Comm time (%) = 0.0652371 (35.0833)
|
|
||||||
Outpt time (%) = 0.00209856 (1.12857)
|
|
||||||
Other time (%) = 0.116177 (62.4779)
|
|
||||||
|
|
||||||
Nlocal: 25 ave 30 max 20 min
|
|
||||||
Histogram: 1 0 1 1 0 0 3 1 0 1
|
|
||||||
Nghost: 28.375 ave 36 max 22 min
|
|
||||||
Histogram: 1 0 1 2 1 0 2 0 0 1
|
|
||||||
Neighs: 33.125 ave 45 max 22 min
|
|
||||||
Histogram: 1 0 2 1 0 1 1 0 1 1
|
|
||||||
|
|
||||||
Total # of neighbors = 265
|
|
||||||
Ave neighs/atom = 1.325
|
|
||||||
Neighbor list builds = 99
|
|
||||||
Dangerous builds = 96
|
|
||||||
|
|
||||||
#undump 1
|
|
||||||
unfix soft
|
|
||||||
unfix 1
|
|
||||||
unfix 2
|
|
||||||
|
|
||||||
# add small particles as hi density lattice
|
|
||||||
|
|
||||||
region plane block INF INF INF INF -0.001 0.001 units box
|
|
||||||
lattice sq 85.0
|
|
||||||
Lattice spacing in x,y,z = 0.108465 0.108465 0.108465
|
|
||||||
create_atoms 2 region plane
|
|
||||||
Created 29929 atoms
|
|
||||||
|
|
||||||
set type 2 mass 0.1
|
|
||||||
29929 settings made for mass
|
|
||||||
group small type 2
|
|
||||||
29929 atoms in group small
|
|
||||||
velocity small create 1.0 593849 loop geom
|
|
||||||
|
|
||||||
# delete overlaps
|
|
||||||
# must set 1-2 cutoff to non-zero value
|
|
||||||
|
|
||||||
pair_style lj/cut 2.5
|
|
||||||
pair_coeff 1 1 1.0 1.0
|
|
||||||
pair_coeff 2 2 0.0 1.0 0.0
|
|
||||||
pair_coeff 1 2 0.0 1.0 0.5
|
|
||||||
|
|
||||||
delete_atoms overlap 0.5 small big
|
|
||||||
Deleted 12759 atoms, new total = 17370
|
|
||||||
|
|
||||||
# SRD run
|
|
||||||
|
|
||||||
reset_timestep 0
|
|
||||||
|
|
||||||
neighbor 0.3 bin
|
|
||||||
neigh_modify delay 0 every 1 check yes
|
|
||||||
|
|
||||||
communicate multi group big vel yes
|
|
||||||
neigh_modify include big
|
|
||||||
|
|
||||||
# no pairwise interactions with small particles
|
|
||||||
|
|
||||||
pair_style lj/cut 2.5
|
|
||||||
pair_coeff 1 1 1.0 1.0
|
|
||||||
pair_coeff 2 2 0.0 1.0 0.0
|
|
||||||
pair_coeff 1 2 0.0 1.0 0.0
|
|
||||||
|
|
||||||
# use fix SRD to push small particles out from inside big ones
|
|
||||||
# if comment out, big particles won't see SRD particles
|
|
||||||
|
|
||||||
timestep 0.001
|
|
||||||
|
|
||||||
fix 1 big rigid molecule
|
|
||||||
100 rigid bodies with 200 atoms
|
|
||||||
fix 2 small srd 20 big 1.0 0.25 49894 shift yes 54979 search 0.2 collision slip inside ignore overlap yes
|
|
||||||
fix 3 all enforce2d
|
|
||||||
|
|
||||||
# diagnostics
|
|
||||||
|
|
||||||
compute tbig big temp/sphere
|
|
||||||
variable pebig equal pe*atoms/count(big)
|
|
||||||
variable ebig equal etotal*atoms/count(big)
|
|
||||||
thermo_style custom step temp f_2[8] etotal v_pebig v_ebig press f_2[1] f_2[2] f_2[3] f_2[4] f_2[5] f_2[6] f_2[7] f_2[8] f_2[9] f_2[10] f_2[11] f_2[12]
|
|
||||||
|
|
||||||
thermo_modify temp tbig
|
|
||||||
WARNING: Temperature for thermo pressure is not for group all (../thermo.cpp:439)
|
|
||||||
thermo 1000
|
|
||||||
|
|
||||||
#dump 1 all atom 1000 dump.dimer
|
|
||||||
|
|
||||||
#dump 1 all image 1000 image.*.jpg type type zoom 1.6
|
|
||||||
#dump_modify 1 pad 6 adiam 1 1 adiam 2 0.2
|
|
||||||
|
|
||||||
run 100000
|
|
||||||
SRD info:
|
|
||||||
SRD/big particles = 17170 200
|
|
||||||
big particle diameter max/min = 1 1
|
|
||||||
SRD temperature & lamda = 1 0.0632456
|
|
||||||
SRD max distance & max velocity = 0.252982 12.6491
|
|
||||||
SRD grid counts: 75 75 1
|
|
||||||
SRD grid size: request, actual (xyz) = 0.25, 0.249111 0.249111 1
|
|
||||||
SRD per actual grid cell = 5.5499
|
|
||||||
SRD viscosity = 0.235551
|
|
||||||
big/SRD mass density ratio = 0.142367
|
|
||||||
# of rescaled SRD velocities = 0
|
|
||||||
ave/max small velocity = 4.20347 7.72323
|
|
||||||
ave/max big velocity = 2.64047 6.60911
|
|
||||||
Memory usage per processor = 7.0395 Mbytes
|
|
||||||
Step Temp 2[8] TotEng pebig ebig Press 2[1] 2[2] 2[3] 2[4] 2[5] 2[6] 2[7] 2[8] 2[9] 2[10] 2[11] 2[12]
|
|
||||||
0 6.9744766 0 0.30175295 21.011259 26.207244 2.7219331 0 0 0 0 0 0 0 0 0 0 0 0
|
|
||||||
1000 1.1941672 3369 0.24718395 20.578272 21.467926 9.8944086 13658 56 56 2 664 40320 5625 3369 1.1358997 0 4 0
|
|
||||||
2000 1.3247909 3390 0.24717547 20.48022 21.467189 6.5341926 13389 48 48 3 1988 40320 5625 3390 1.1814916 0 144 0
|
|
||||||
3000 1.386904 3355 0.24769415 20.478993 21.512237 6.1207029 13507 45 45 0 2871 40320 5625 3355 1.1657697 0 144 0
|
|
||||||
4000 1.1567347 3376 0.24573733 20.48052 21.342287 3.5540965 13475 46 46 0 3731 40320 5625 3376 1.1485984 0 144 0
|
|
||||||
5000 1.2565155 3376 0.24620928 20.447172 21.383276 2.5808161 13267 55 55 0 4559 40320 5625 3376 1.1778096 0 144 0
|
|
||||||
6000 1.1489985 3375 0.24520477 20.440031 21.296035 7.8204262 13362 59 59 0 5354 40320 5625 3375 1.1530517 0 144 0
|
|
||||||
7000 1.1608248 3399 0.24587989 20.489854 21.354669 7.9622779 13333 59 59 2 6254 40320 5625 3399 1.1809325 0 144 0
|
|
||||||
8000 1.1749441 3374 0.24700359 20.576929 21.452262 6.7498405 13495 64 64 0 7134 40320 5625 3374 1.1445035 0 144 0
|
|
||||||
9000 1.1285085 3405 0.24536183 20.468936 21.309675 5.8959937 13333 60 60 0 8008 40320 5625 3405 1.162836 0 144 0
|
|
||||||
10000 1.1462675 3425 0.24564758 20.480523 21.334492 7.0047543 13487 45 45 0 8967 40320 5625 3425 1.1881074 0 144 0
|
|
||||||
11000 1.2854766 3388 0.246088 20.415062 21.372742 7.8508136 13491 60 60 1 9833 40320 5625 3388 1.1698514 0 144 0
|
|
||||||
12000 1.2926536 3360 0.24602616 20.404345 21.367372 7.9286141 13142 64 64 1 11029 40320 5625 3360 1.1658039 0 161 0
|
|
||||||
13000 1.2289767 3412 0.24595657 20.44574 21.361328 2.2809592 13162 56 56 1 12018 40320 5625 3412 1.1665531 0 161 0
|
|
||||||
14000 1.3518235 3380 0.24629055 20.383226 21.390334 8.0062608 13310 59 59 7 13146 40320 5625 3380 1.1733296 0 161 0
|
|
||||||
15000 1.2971143 3355 0.24671134 20.46053 21.42688 9.7871945 12967 60 60 3 14084 40320 5625 3355 1.1703643 0 161 0
|
|
||||||
16000 1.4160948 3384 0.2478594 20.471598 21.526589 7.3141215 13123 56 56 1 14929 40320 5625 3384 1.1666782 0 161 0
|
|
||||||
17000 1.3172038 3391 0.247377 20.503375 21.484692 6.1541908 12957 54 54 0 15778 40320 5625 3391 1.1639931 0 161 0
|
|
||||||
18000 0.98748293 3369 0.2443499 20.486114 21.221789 4.0981146 13355 50 50 1 17031 40320 5625 3369 1.2083414 0 192 0
|
|
||||||
19000 1.4619261 3367 0.24867817 20.508564 21.597699 11.68547 13519 58 58 0 18334 40320 5625 3367 1.1667505 0 192 0
|
|
||||||
20000 1.44087 3391 0.24747923 20.420123 21.493571 4.0409936 13594 67 67 0 19303 40320 5625 3391 1.1869387 0 192 0
|
|
||||||
21000 1.1155365 3377 0.24474418 20.424957 21.256032 8.4985692 13423 52 52 0 20245 40320 5625 3377 1.1726608 0 192 0
|
|
||||||
22000 1.2045785 3382 0.24466159 20.351448 21.248859 7.0518674 13271 62 62 0 21128 40320 5625 3382 1.1658557 0 192 0
|
|
||||||
23000 1.2634616 3378 0.24571326 20.398918 21.340197 6.8382109 13246 61 61 1 22067 40320 5625 3378 1.170196 0 192 0
|
|
||||||
24000 1.365723 3375 0.24749053 20.477089 21.494552 5.9584152 13017 46 46 1 23017 40320 5625 3375 1.1841192 0 192 0
|
|
||||||
25000 1.1421045 3367 0.24497142 20.4249 21.275768 10.381661 13049 66 66 1 23907 40320 5625 3367 1.1856767 0 192 0
|
|
||||||
26000 1.4008939 3340 0.24678624 20.389719 21.433385 7.3799658 12971 53 53 5 24850 40320 5625 3340 1.1713233 0 192 0
|
|
||||||
27000 1.1835022 3379 0.24522732 20.416284 21.297993 7.2251705 12717 46 46 1 25723 40320 5625 3379 1.1798333 0 192 0
|
|
||||||
28000 1.0496668 3398 0.24461816 20.463086 21.245087 6.5485338 13385 60 60 0 26990 40320 5625 3398 1.1765205 0 192 0
|
|
||||||
29000 1.1779927 3453 0.24501083 20.401586 21.27919 4.8540048 13157 77 77 2 28023 40320 5625 3453 1.1741595 0 192 0
|
|
||||||
30000 1.2277637 3375 0.24554215 20.410652 21.325336 10.087705 12939 72 72 1 28855 40320 5625 3375 1.1627414 0 192 0
|
|
||||||
31000 1.1575066 3397 0.24504213 20.419566 21.281909 6.4849648 12977 66 66 0 29745 40320 5625 3397 1.1575018 0 192 0
|
|
||||||
32000 1.1752733 3381 0.2451073 20.41199 21.287569 7.2784509 12971 48 48 0 30561 40320 5625 3381 1.1790395 0 192 0
|
|
||||||
33000 1.1743895 3370 0.24485514 20.390748 21.265669 9.084299 12810 64 64 0 31342 40320 5625 3370 1.1429061 0 192 0
|
|
||||||
34000 1.2975876 3377 0.24608262 20.405573 21.372276 10.624304 12610 60 60 1 32140 40320 5625 3377 1.1685718 0 192 0
|
|
||||||
35000 1.7701252 3356 0.2497356 20.370794 21.689537 7.107766 12983 45 45 8 33862 40320 5625 3356 1.1720964 0 242 0
|
|
||||||
36000 1.2711521 3393 0.24675748 20.483878 21.430887 8.7087273 13175 60 60 0 34920 40320 5625 3393 1.1796212 0 242 0
|
|
||||||
37000 1.1140649 3373 0.24450996 20.405711 21.23569 8.0025138 12964 50 50 1 35770 40320 5625 3373 1.1772234 0 242 0
|
|
||||||
38000 1.3128798 3379 0.24583813 20.372946 21.351041 5.0554655 12939 56 56 1 36679 40320 5625 3379 1.1702949 0 242 0
|
|
||||||
39000 1.2093703 3365 0.24536578 20.409037 21.310018 5.6243735 12873 62 62 3 37511 40320 5625 3365 1.1751064 0 242 0
|
|
||||||
40000 1.2095402 3365 0.24485106 20.364207 21.265315 3.9565189 12876 54 54 1 38503 40320 5625 3365 1.1637516 0 242 0
|
|
||||||
41000 1.1146238 3350 0.24476111 20.427107 21.257502 6.5033046 12656 53 53 0 39313 40320 5625 3350 1.1553197 0 242 0
|
|
||||||
42000 1.2302245 3370 0.24452048 20.320087 21.236604 10.7363 12676 52 52 1 40108 40320 5625 3370 1.1492163 0 242 0
|
|
||||||
43000 1.2749689 3404 0.24511103 20.338041 21.287893 9.18604 13057 72 72 1 41014 40320 5625 3404 1.1572511 0 242 0
|
|
||||||
44000 1.1989211 3385 0.24450633 20.342179 21.235375 7.6714085 13086 52 53 1 41840 40320 5625 3385 1.1530041 0 242 0
|
|
||||||
45000 1.6465972 3370 0.249994 20.485264 21.711979 7.4908607 12894 58 58 7 43545 40320 5625 3370 1.1978571 0 361 0
|
|
||||||
46000 1.3082316 3412 0.24665637 20.447473 21.422106 8.9900563 13136 53 53 4 44510 40320 5625 3412 1.1686573 0 361 0
|
|
||||||
47000 1.2163258 3355 0.24493724 20.366636 21.272799 6.9309438 13020 56 56 0 45414 40320 5625 3355 1.1620943 0 361 0
|
|
||||||
48000 1.349966 3362 0.24683156 20.431596 21.437321 8.8527164 13044 64 64 1 46260 40320 5625 3362 1.1683452 0 361 0
|
|
||||||
49000 1.3903769 3347 0.24726403 20.439051 21.474881 5.9250552 13103 58 59 2 49229 40320 5625 3347 1.1924538 0 578 0
|
|
||||||
50000 1.2737918 3349 0.24563843 20.384723 21.333698 7.2419874 12892 41 41 1 50225 40320 5625 3349 1.1803233 0 578 0
|
|
||||||
51000 1.2229799 3355 0.24504936 20.371417 21.282537 8.5556146 12912 63 63 0 51096 40320 5625 3355 1.1333843 0 578 0
|
|
||||||
52000 1.2326547 3386 0.24596384 20.443632 21.361959 6.1757404 12790 66 66 1 52114 40320 5625 3386 1.1685608 0 578 0
|
|
||||||
53000 1.3695441 3389 0.24696147 20.428294 21.448604 8.7464732 12997 60 60 1 53115 40320 5625 3389 1.1631228 0 578 0
|
|
||||||
54000 1.0711204 3400 0.24322154 20.325806 21.12379 8.7228921 13005 56 56 0 53913 40320 5625 3400 1.1250986 0 578 0
|
|
||||||
55000 1.3412565 3360 0.24617922 20.381429 21.380665 6.9489559 12960 46 46 0 55249 40320 5625 3360 1.176467 0 578 0
|
|
||||||
56000 1.3910761 3355 0.2467942 20.397725 21.434077 6.6762734 12966 65 65 2 56653 40320 5625 3355 1.1715559 0 578 0
|
|
||||||
57000 1.1177307 3388 0.24424738 20.380176 21.212885 5.5073089 13153 62 62 1 57550 40320 5625 3388 1.1576307 0 578 0
|
|
||||||
58000 1.3136279 3365 0.24661231 20.439627 21.418279 9.1390284 12799 52 52 1 58366 40320 5625 3365 1.159026 0 578 0
|
|
||||||
59000 1.2667621 3374 0.24556104 20.383238 21.326976 3.4246418 13127 54 54 1 59170 40320 5625 3374 1.1461442 0 578 0
|
|
||||||
60000 1.1903121 3326 0.24492127 20.384629 21.271412 6.9439977 13078 47 47 2 60105 40320 5625 3326 1.1665886 0 578 0
|
|
||||||
61000 1.209313 3362 0.2455341 20.423699 21.324637 9.1212002 13225 61 61 4 61358 40320 5625 3362 1.1725894 0 578 0
|
|
||||||
62000 1.1720074 3366 0.24476301 20.384522 21.257667 7.7592884 13187 53 54 2 62257 40320 5625 3366 1.1599665 0 578 0
|
|
||||||
63000 1.2155508 3386 0.24486685 20.361101 21.266686 5.7864126 13090 42 42 0 63137 40320 5625 3386 1.1724234 0 578 0
|
|
||||||
64000 1.1967326 3379 0.2451834 20.402613 21.294179 4.8815049 13033 48 48 4 64152 40320 5625 3379 1.1818756 0 578 0
|
|
||||||
65000 1.1732378 3386 0.24500733 20.404824 21.278887 11.381026 12998 59 59 0 65071 40320 5625 3386 1.1625543 0 578 0
|
|
||||||
66000 1.1960739 3385 0.24407516 20.306852 21.197927 12.17249 12994 61 61 0 65941 40320 5625 3385 1.1826516 0 578 0
|
|
||||||
67000 1.3468331 3366 0.24657491 20.41164 21.415031 7.8115623 12894 62 62 1 66788 40320 5625 3366 1.1750424 0 578 0
|
|
||||||
68000 1.0742924 3369 0.24347736 20.345661 21.146009 9.5240252 13065 68 68 2 67665 40320 5625 3369 1.1561575 0 578 0
|
|
||||||
69000 1.1411254 3380 0.2450544 20.432836 21.282975 8.0392218 13134 49 49 1 68471 40320 5625 3380 1.1405485 0 578 0
|
|
||||||
70000 1.1585312 3388 0.24435206 20.358871 21.221977 7.5303626 13113 59 59 0 69320 40320 5625 3388 1.1726416 0 578 0
|
|
||||||
71000 1.3418857 3382 0.24598802 20.364355 21.36406 9.2840877 13265 68 68 0 70522 40320 5625 3382 1.1696767 0 578 0
|
|
||||||
72000 1.1547857 3388 0.24328952 20.26938 21.129695 7.9643121 13270 50 50 1 71384 40320 5625 3388 1.1647353 0 578 0
|
|
||||||
73000 1.1114283 3385 0.24397276 20.36102 21.189034 13.168935 13110 62 62 0 72335 40320 5625 3385 1.1625358 0 578 0
|
|
||||||
74000 1.6120075 3370 0.25009739 20.520013 21.720959 12.065782 12902 51 51 9 73743 40320 5625 3370 1.1873738 0 578 0
|
|
||||||
75000 1.3271087 3353 0.24600453 20.376798 21.365493 7.5902315 13076 51 51 1 74746 40320 5625 3353 1.1706259 0 578 0
|
|
||||||
76000 1.1908626 3386 0.2451628 20.405197 21.292389 6.8084086 13124 58 58 1 75702 40320 5625 3386 1.1765809 0 578 0
|
|
||||||
77000 1.042536 3391 0.24320847 20.345966 21.122655 6.4883579 12846 57 57 0 76930 40320 5625 3391 1.1769829 0 578 0
|
|
||||||
78000 1.3791243 3355 0.24628683 20.362563 21.390011 9.2397346 12897 56 56 12 78068 40320 5625 3355 1.1905167 0 578 0
|
|
||||||
79000 1.2058397 3391 0.2453076 20.406614 21.304965 9.7949819 13020 51 51 1 79065 40320 5625 3391 1.1777257 0 578 0
|
|
||||||
80000 1.0634737 3383 0.24440921 20.434652 21.22694 7.5296946 12973 61 61 2 80029 40320 5625 3383 1.1648017 0 578 0
|
|
||||||
81000 1.3768966 3373 0.24730623 20.452758 21.478546 7.1508584 13297 56 56 1 81172 40320 5625 3373 1.1740603 0 578 0
|
|
||||||
82000 1.3348382 3375 0.24680945 20.440946 21.4354 9.3251946 12822 56 56 2 82447 40320 5625 3375 1.1573749 0 578 0
|
|
||||||
83000 1.2042501 3393 0.24484972 20.368032 21.265198 7.5283729 12990 51 51 0 83344 40320 5625 3393 1.1833162 0 578 0
|
|
||||||
84000 1.1985223 3405 0.24537841 20.418216 21.311115 7.848856 13189 60 60 0 84147 40320 5625 3405 1.173911 0 578 0
|
|
||||||
85000 1.1811593 3391 0.24418657 20.32764 21.207604 8.3169438 13303 51 51 0 85022 40320 5625 3391 1.1586027 0 578 0
|
|
||||||
86000 1.2595689 3385 0.24556774 20.389179 21.327558 8.3808674 12966 56 56 1 85962 40320 5625 3385 1.1617838 0 578 0
|
|
||||||
87000 1.1419322 3356 0.24399697 20.340397 21.191137 6.8911116 13166 63 63 0 86753 40320 5625 3356 1.1729274 0 578 0
|
|
||||||
88000 1.275219 3380 0.24586129 20.403015 21.353053 6.838563 12963 56 56 0 87729 40320 5625 3380 1.1511968 0 578 0
|
|
||||||
89000 1.2794858 3366 0.24507826 20.33183 21.285047 9.3370019 12889 64 64 1 88575 40320 5625 3366 1.1660311 0 578 0
|
|
||||||
90000 1.0549593 3402 0.24289618 20.309589 21.095533 4.9944605 13076 59 59 1 89560 40320 5625 3402 1.1744335 0 578 0
|
|
||||||
91000 1.214812 3402 0.24442304 20.323106 21.228141 7.5681019 13229 44 44 1 90440 40320 5625 3402 1.1696689 0 578 0
|
|
||||||
92000 1.2019714 3374 0.24469176 20.356011 21.25148 7.6728432 13331 64 64 2 91243 40320 5625 3374 1.1678246 0 578 0
|
|
||||||
93000 1.0964004 3364 0.24364709 20.343931 21.16075 5.9650235 13086 55 55 0 92088 40320 5625 3364 1.1570838 0 578 0
|
|
||||||
94000 1.1722133 3393 0.24332541 20.259513 21.132812 7.1743779 13206 66 66 0 92858 40320 5625 3393 1.154328 0 578 0
|
|
||||||
95000 1.2413711 3373 0.24549874 20.396744 21.321566 8.131371 12967 61 61 1 93789 40320 5625 3373 1.1635681 0 578 0
|
|
||||||
96000 1.1702409 3363 0.24528289 20.430989 21.302819 11.399295 12776 63 63 0 94571 40320 5625 3363 1.1367365 0 578 0
|
|
||||||
97000 1.0696537 3368 0.242673 20.279258 21.07615 8.537175 13054 55 55 0 95403 40320 5625 3368 1.1648141 0 578 0
|
|
||||||
98000 1.1635952 3369 0.24486659 20.399785 21.266664 8.6714443 12750 70 70 0 96296 40320 5625 3369 1.1686272 0 578 0
|
|
||||||
99000 1.1286255 3397 0.24343772 20.30174 21.142566 6.7153212 12810 44 45 1 97021 40320 5625 3397 1.137818 0 578 0
|
|
||||||
100000 1.2847818 3367 0.24509282 20.329149 21.286312 8.7486629 13260 64 64 0 97855 40320 5625 3367 1.1597138 0 578 0
|
|
||||||
Loop time of 20.8136 on 8 procs for 100000 steps with 17370 atoms
|
|
||||||
|
|
||||||
Pair time (%) = 0.322913 (1.55145)
|
|
||||||
Neigh time (%) = 1.11753 (5.36921)
|
|
||||||
Comm time (%) = 1.72335 (8.27991)
|
|
||||||
Outpt time (%) = 0.00594518 (0.0285638)
|
|
||||||
Other time (%) = 17.6439 (84.7709)
|
|
||||||
|
|
||||||
Nlocal: 2171.25 ave 2428 max 1747 min
|
|
||||||
Histogram: 1 0 0 0 1 1 2 1 0 2
|
|
||||||
Nghost: 61.25 ave 69 max 54 min
|
|
||||||
Histogram: 1 1 0 1 1 1 0 2 0 1
|
|
||||||
Neighs: 175.625 ave 225 max 132 min
|
|
||||||
Histogram: 1 1 1 1 1 0 1 0 0 2
|
|
||||||
|
|
||||||
Total # of neighbors = 1405
|
|
||||||
Ave neighs/atom = 0.0808866
|
|
||||||
Neighbor list builds = 5156
|
|
||||||
Dangerous builds = 1
|
|
||||||
|
|
||||||
Please see the log.cite file for references relevant to this simulation
|
|
||||||
|
|
||||||
@ -1,237 +0,0 @@
|
|||||||
LAMMPS (1 Feb 2014)
|
|
||||||
# SRD viscosity demo - dimer particles
|
|
||||||
|
|
||||||
units lj
|
|
||||||
atom_style sphere
|
|
||||||
atom_modify map array first big
|
|
||||||
dimension 2
|
|
||||||
|
|
||||||
# read in clusters of rigid bodies
|
|
||||||
|
|
||||||
fix molprop all property/atom mol
|
|
||||||
read_data data.dimer fix molprop NULL Molecules
|
|
||||||
orthogonal box = (-9.34165 -9.34165 -0.5) to (9.34165 9.34165 0.5)
|
|
||||||
4 by 2 by 1 MPI processor grid
|
|
||||||
reading atoms ...
|
|
||||||
200 atoms
|
|
||||||
|
|
||||||
set type 1 mass 1.0
|
|
||||||
200 settings made for mass
|
|
||||||
group big type 1
|
|
||||||
200 atoms in group big
|
|
||||||
velocity big create 1.44 87287 loop geom
|
|
||||||
|
|
||||||
# equilibrate big particles
|
|
||||||
|
|
||||||
pair_style soft 1.12
|
|
||||||
pair_coeff 1 1 0.0
|
|
||||||
pair_coeff 2 2 0.0 0.0
|
|
||||||
pair_coeff 1 2 0.0 0.0
|
|
||||||
|
|
||||||
variable prefactor equal ramp(0,60)
|
|
||||||
fix soft all adapt 1 pair soft a * * v_prefactor
|
|
||||||
|
|
||||||
fix 1 big rigid molecule
|
|
||||||
100 rigid bodies with 200 atoms
|
|
||||||
fix 2 all enforce2d
|
|
||||||
|
|
||||||
#dump 1 all atom 10 dump.dimer.equil
|
|
||||||
|
|
||||||
thermo 100
|
|
||||||
run 1000
|
|
||||||
Memory usage per processor = 3.1029 Mbytes
|
|
||||||
Step Temp E_pair E_mol TotEng Press
|
|
||||||
0 3.4028231 0 0 0.83369167 -0.55065517
|
|
||||||
100 9.5167872 2.392105 0 4.7237178 2.8319556
|
|
||||||
200 13.564465 3.0352634 0 6.3585572 3.6388732
|
|
||||||
300 13.133051 4.3835112 0 7.6011086 4.060051
|
|
||||||
400 14.584346 5.5141254 0 9.0872901 4.4231056
|
|
||||||
500 15.331515 6.6554832 0 10.411704 4.847642
|
|
||||||
600 16.953755 7.4794317 0 11.633102 5.2020696
|
|
||||||
700 16.503256 8.8572339 0 12.900532 5.6694613
|
|
||||||
800 17.006131 9.877343 0 14.043845 5.5483363
|
|
||||||
900 17.305927 11.081594 0 15.321546 6.2908201
|
|
||||||
1000 18.122491 12.126462 0 16.566472 5.7536055
|
|
||||||
Loop time of 0.0603173 on 8 procs for 1000 steps with 200 atoms
|
|
||||||
|
|
||||||
Pair time (%) = 0.00182396 (3.02395)
|
|
||||||
Neigh time (%) = 0.000557959 (0.92504)
|
|
||||||
Comm time (%) = 0.0127766 (21.1823)
|
|
||||||
Outpt time (%) = 0.000280827 (0.465583)
|
|
||||||
Other time (%) = 0.0448779 (74.4031)
|
|
||||||
|
|
||||||
Nlocal: 25 ave 30 max 20 min
|
|
||||||
Histogram: 1 0 1 1 0 0 3 1 0 1
|
|
||||||
Nghost: 28.375 ave 36 max 22 min
|
|
||||||
Histogram: 1 0 1 2 1 0 2 0 0 1
|
|
||||||
Neighs: 33.125 ave 45 max 22 min
|
|
||||||
Histogram: 1 0 2 1 0 1 1 0 1 1
|
|
||||||
|
|
||||||
Total # of neighbors = 265
|
|
||||||
Ave neighs/atom = 1.325
|
|
||||||
Neighbor list builds = 99
|
|
||||||
Dangerous builds = 96
|
|
||||||
|
|
||||||
#undump 1
|
|
||||||
unfix soft
|
|
||||||
unfix 1
|
|
||||||
unfix 2
|
|
||||||
|
|
||||||
# add small particles as hi density lattice
|
|
||||||
|
|
||||||
region plane block INF INF INF INF -0.001 0.001 units box
|
|
||||||
lattice sq 85.0
|
|
||||||
Lattice spacing in x,y,z = 0.108465 0.108465 0.108465
|
|
||||||
create_atoms 2 region plane
|
|
||||||
Created 29929 atoms
|
|
||||||
|
|
||||||
set type 2 mass 0.1
|
|
||||||
29929 settings made for mass
|
|
||||||
group small type 2
|
|
||||||
29929 atoms in group small
|
|
||||||
velocity small create 1.0 593849 loop geom
|
|
||||||
|
|
||||||
# delete overlaps
|
|
||||||
# must set 1-2 cutoff to non-zero value
|
|
||||||
|
|
||||||
pair_style lj/cut 2.5
|
|
||||||
pair_coeff 1 1 1.0 1.0
|
|
||||||
pair_coeff 2 2 0.0 1.0 0.0
|
|
||||||
pair_coeff 1 2 0.0 1.0 0.5
|
|
||||||
|
|
||||||
delete_atoms overlap 0.5 small big
|
|
||||||
Deleted 12759 atoms, new total = 17370
|
|
||||||
|
|
||||||
# SRD run
|
|
||||||
|
|
||||||
reset_timestep 0
|
|
||||||
|
|
||||||
neighbor 0.3 bin
|
|
||||||
neigh_modify delay 0 every 1 check yes
|
|
||||||
|
|
||||||
communicate multi group big vel yes
|
|
||||||
neigh_modify include big
|
|
||||||
|
|
||||||
# no pairwise interactions with small particles
|
|
||||||
|
|
||||||
pair_style lj/cut 2.5
|
|
||||||
pair_coeff 1 1 1.0 1.0
|
|
||||||
pair_coeff 2 2 0.0 1.0 0.0
|
|
||||||
pair_coeff 1 2 0.0 1.0 0.0
|
|
||||||
|
|
||||||
# use fix SRD to push small particles out from inside big ones
|
|
||||||
# if comment out, big particles won't see SRD particles
|
|
||||||
|
|
||||||
timestep 0.001
|
|
||||||
|
|
||||||
fix 1 big rigid molecule
|
|
||||||
100 rigid bodies with 200 atoms
|
|
||||||
fix 2 small srd 20 big 1.0 0.25 49894 shift yes 54979 search 0.2 collision slip inside ignore overlap yes
|
|
||||||
fix 3 small viscosity 10 x y 50
|
|
||||||
fix 4 all enforce2d
|
|
||||||
|
|
||||||
# diagnostics
|
|
||||||
|
|
||||||
compute tbig big temp/sphere
|
|
||||||
variable pebig equal pe*atoms/count(big)
|
|
||||||
variable ebig equal etotal*atoms/count(big)
|
|
||||||
thermo_style custom step temp f_2[8] etotal v_pebig v_ebig press f_2[1] f_2[2] f_2[3] f_2[4] f_2[5] f_2[6] f_2[7] f_2[8] f_2[9] f_2[10] f_2[11] f_2[12]
|
|
||||||
|
|
||||||
thermo_modify temp tbig
|
|
||||||
WARNING: Temperature for thermo pressure is not for group all (../thermo.cpp:439)
|
|
||||||
thermo 1000
|
|
||||||
|
|
||||||
#dump 1 all atom 500 dump.dimer.mp
|
|
||||||
|
|
||||||
#dump 1 all image 500 image.*.jpg type type zoom 1.6
|
|
||||||
#dump_modify 1 pad 6 adiam 1 1 adiam 2 0.2
|
|
||||||
|
|
||||||
run 50000
|
|
||||||
SRD info:
|
|
||||||
SRD/big particles = 17170 200
|
|
||||||
big particle diameter max/min = 1 1
|
|
||||||
SRD temperature & lamda = 1 0.0632456
|
|
||||||
SRD max distance & max velocity = 0.252982 12.6491
|
|
||||||
SRD grid counts: 75 75 1
|
|
||||||
SRD grid size: request, actual (xyz) = 0.25, 0.249111 0.249111 1
|
|
||||||
SRD per actual grid cell = 5.5499
|
|
||||||
SRD viscosity = 0.235551
|
|
||||||
big/SRD mass density ratio = 0.142367
|
|
||||||
# of rescaled SRD velocities = 0
|
|
||||||
ave/max small velocity = 4.20347 7.72323
|
|
||||||
ave/max big velocity = 2.64047 6.60911
|
|
||||||
Memory usage per processor = 7.0395 Mbytes
|
|
||||||
Step Temp 2[8] TotEng pebig ebig Press 2[1] 2[2] 2[3] 2[4] 2[5] 2[6] 2[7] 2[8] 2[9] 2[10] 2[11] 2[12]
|
|
||||||
0 6.9744766 0 0.30175295 21.011259 26.207244 2.7219331 0 0 0 0 0 0 0 0 0 0 0 0
|
|
||||||
1000 1.906187 3319 0.25279446 20.53509 21.955199 9.3471734 14560 77 77 9 6051 40320 5625 3319 1.2073941 0 1062 0
|
|
||||||
2000 1.6009081 3420 0.25060769 20.572601 21.765278 12.835365 13521 63 63 1 7515 40320 5625 3420 1.1621445 0 1062 0
|
|
||||||
3000 1.8288965 3342 0.25195284 20.519576 21.882104 7.1720562 13550 62 62 1 8561 40320 5625 3342 1.1411375 0 1062 0
|
|
||||||
4000 1.8940522 3383 0.25185767 20.462769 21.873838 7.3011842 13210 55 55 0 9536 40320 5625 3383 1.1541274 0 1062 0
|
|
||||||
5000 1.7848964 3377 0.25063675 20.438054 21.767801 5.7235852 13258 60 60 1 10628 40320 5625 3377 1.1401366 0 1062 0
|
|
||||||
6000 2.0436442 3393 0.2528503 20.437534 21.960048 4.3266887 13369 65 65 1 11693 40320 5625 3393 1.1363335 0 1062 0
|
|
||||||
7000 2.0248598 3377 0.25304247 20.468218 21.976738 9.1535003 13126 69 69 2 12819 40320 5625 3377 1.1556137 0 1062 0
|
|
||||||
8000 1.9627172 3397 0.25201977 20.425693 21.887917 7.9563872 13216 58 58 3 14113 40320 5625 3397 1.144738 0 1062 0
|
|
||||||
9000 2.4805409 3385 0.25688024 20.462046 22.310049 6.0178529 13031 42 42 1 15329 40320 5625 3385 1.1667813 0 1062 0
|
|
||||||
10000 2.534712 3377 0.25802283 20.520922 22.409283 5.8494568 12804 49 50 1 16835 40320 5625 3377 1.1559636 0 1062 0
|
|
||||||
11000 2.4295377 3368 0.25671703 20.485869 22.295874 7.0797587 13097 56 56 2 18180 40320 5625 3368 1.1634145 0 1062 0
|
|
||||||
12000 2.5699389 3377 0.25784825 20.479516 22.39412 10.440503 13263 63 63 5 19848 40320 5625 3377 1.1714081 0 1062 0
|
|
||||||
13000 2.5416625 3359 0.25893582 20.595038 22.488576 6.823793 12926 57 57 1 21307 40320 5625 3359 1.1478982 0 1062 0
|
|
||||||
14000 2.9400702 3353 0.26140738 20.512878 22.703231 10.592709 12848 67 67 0 22782 40320 5625 3353 1.1642018 0 1062 0
|
|
||||||
15000 2.7315042 3364 0.26050572 20.589951 22.624922 7.6633608 12640 49 49 0 24273 40320 5625 3364 1.1532394 0 1062 0
|
|
||||||
16000 2.7176527 3389 0.25840703 20.418 22.442651 8.0150175 13019 59 59 1 25970 40320 5625 3389 1.1555937 0 1062 0
|
|
||||||
17000 2.883266 3355 0.26040537 20.468173 22.616206 6.053208 12916 54 54 1 27532 40320 5625 3355 1.1363169 0 1062 0
|
|
||||||
18000 2.8072496 3369 0.26013039 20.500924 22.592325 5.7179969 12989 45 45 0 29011 40320 5625 3369 1.1341799 0 1062 0
|
|
||||||
19000 2.8007066 3372 0.2602809 20.51887 22.605396 8.9063895 12817 59 59 1 30504 40320 5625 3372 1.1253001 0 1062 0
|
|
||||||
20000 3.0147455 3352 0.26233709 20.537991 22.783977 10.01786 13099 63 63 2 32100 40320 5625 3352 1.1263738 0 1062 0
|
|
||||||
21000 2.5502874 3354 0.25762968 20.475174 22.375138 7.4525361 12917 55 55 3 33904 40320 5625 3354 1.1432482 0 1062 0
|
|
||||||
22000 2.5643661 3357 0.25754499 20.45733 22.367782 9.5567227 12893 58 58 0 35500 40320 5625 3357 1.1309581 0 1062 0
|
|
||||||
23000 2.8451307 3387 0.26090715 20.540164 22.659786 7.8308779 12735 65 65 2 37080 40320 5625 3387 1.1666359 0 1062 0
|
|
||||||
24000 2.6241046 3341 0.25916876 20.553849 22.508807 9.7905794 12815 54 54 1 38864 40320 5625 3341 1.1422596 0 1062 0
|
|
||||||
25000 2.6054468 3374 0.25897446 20.550874 22.491932 9.4099539 13094 59 59 4 40505 40320 5625 3374 1.1887482 0 1062 0
|
|
||||||
26000 3.1370949 3356 0.26301193 20.50545 22.842586 9.930938 12785 59 59 0 42126 40320 5625 3356 1.1539158 0 1062 0
|
|
||||||
27000 2.757373 3361 0.26029623 20.552484 22.606727 7.4336931 12687 59 59 2 43728 40320 5625 3361 1.1408006 0 1062 0
|
|
||||||
28000 2.9939441 3393 0.26250984 20.568491 22.79898 9.201853 12802 66 66 0 45174 40320 5625 3393 1.1429688 0 1062 0
|
|
||||||
29000 3.1611971 3376 0.26252235 20.444974 22.800066 8.2146139 13042 48 48 0 46696 40320 5625 3376 1.1370708 0 1062 0
|
|
||||||
30000 2.2624796 3374 0.25475303 20.439753 22.125301 9.3304907 13249 53 53 1 48164 40320 5625 3374 1.1062325 0 1062 0
|
|
||||||
31000 2.6864602 3393 0.2607928 20.648442 22.649855 7.6108593 13028 58 58 0 49556 40320 5625 3393 1.1154125 0 1062 0
|
|
||||||
32000 2.8404087 3377 0.26037369 20.497351 22.613455 6.9017135 13055 63 63 1 51004 40320 5625 3377 1.1320087 0 1062 0
|
|
||||||
33000 2.8467378 3365 0.26095982 20.543541 22.664361 7.194747 13306 58 58 0 52481 40320 5625 3365 1.1312548 0 1062 0
|
|
||||||
34000 3.0833296 3382 0.26259198 20.509033 22.806114 7.44833 12988 59 60 1 54049 40320 5625 3382 1.1447344 0 1062 0
|
|
||||||
35000 3.1068536 3382 0.26441995 20.650266 22.964872 9.3804156 13139 54 54 0 55749 40320 5625 3382 1.1272861 0 1062 0
|
|
||||||
36000 2.6998442 3369 0.25864735 20.452138 22.463522 6.3327985 13317 52 52 0 57348 40320 5625 3369 1.1312386 0 1062 0
|
|
||||||
37000 2.600171 3376 0.25882039 20.541424 22.478551 9.3909788 12841 57 57 0 58880 40320 5625 3376 1.1319429 0 1062 0
|
|
||||||
38000 2.3962821 3367 0.25728672 20.560122 22.345352 7.4364329 13039 66 66 0 60627 40320 5625 3367 1.1468141 0 1062 0
|
|
||||||
39000 2.8548804 3422 0.26044489 20.492753 22.619638 6.0832552 13249 50 50 0 62327 40320 5625 3422 1.1442726 0 1062 0
|
|
||||||
40000 2.7721124 3375 0.25927374 20.452701 22.517924 10.368128 13197 55 55 1 63903 40320 5625 3375 1.140807 0 1062 0
|
|
||||||
41000 3.0463159 3378 0.26123216 20.418508 22.688013 10.179554 13030 64 64 0 65629 40320 5625 3378 1.1277894 0 1062 0
|
|
||||||
42000 2.9625288 3388 0.26205988 20.552817 22.759901 8.8326646 12958 64 64 0 67242 40320 5625 3388 1.159201 0 1062 0
|
|
||||||
43000 2.7524867 3347 0.2592403 20.464417 22.51502 10.30221 12815 65 65 2 68734 40320 5625 3347 1.1444123 0 1062 0
|
|
||||||
44000 2.8779981 3354 0.26009923 20.44551 22.589618 12.127509 12743 67 67 3 70309 40320 5625 3354 1.1467915 0 1062 0
|
|
||||||
45000 2.7833999 3365 0.25968205 20.479753 22.553386 8.6942365 12909 46 47 0 71846 40320 5625 3365 1.1480348 0 1062 0
|
|
||||||
46000 2.6564678 3370 0.25935897 20.546258 22.525327 9.2618375 12923 61 61 1 73491 40320 5625 3370 1.1528284 0 1062 0
|
|
||||||
47000 2.821625 3414 0.25999655 20.47859 22.5807 7.5359036 12861 55 55 2 75201 40320 5625 3414 1.1395745 0 1062 0
|
|
||||||
48000 2.9301623 3351 0.26139433 20.519127 22.702098 9.5177842 13037 49 49 2 76819 40320 5625 3351 1.1472505 0 1062 0
|
|
||||||
49000 2.528824 3390 0.25834586 20.553364 22.437338 8.953785 13127 49 49 0 78450 40320 5625 3390 1.1495903 0 1062 0
|
|
||||||
50000 3.0054471 3375 0.261046 20.432787 22.671845 7.9749959 13089 56 56 2 80717 40320 5625 3375 1.1574724 0 1062 0
|
|
||||||
Loop time of 10.5055 on 8 procs for 50000 steps with 17370 atoms
|
|
||||||
|
|
||||||
Pair time (%) = 0.156617 (1.49081)
|
|
||||||
Neigh time (%) = 0.556925 (5.30126)
|
|
||||||
Comm time (%) = 0.902042 (8.58637)
|
|
||||||
Outpt time (%) = 0.00305247 (0.0290559)
|
|
||||||
Other time (%) = 8.88688 (84.5925)
|
|
||||||
|
|
||||||
Nlocal: 2171.25 ave 2567 max 1849 min
|
|
||||||
Histogram: 2 0 0 1 1 2 1 0 0 1
|
|
||||||
Nghost: 62.625 ave 71 max 57 min
|
|
||||||
Histogram: 2 0 1 0 2 2 0 0 0 1
|
|
||||||
Neighs: 168.25 ave 232 max 120 min
|
|
||||||
Histogram: 1 0 1 2 2 1 0 0 0 1
|
|
||||||
|
|
||||||
Total # of neighbors = 1346
|
|
||||||
Ave neighs/atom = 0.0774899
|
|
||||||
Neighbor list builds = 2599
|
|
||||||
Dangerous builds = 17
|
|
||||||
|
|
||||||
Please see the log.cite file for references relevant to this simulation
|
|
||||||
|
|
||||||
312
examples/ASPHERE/dimer/log.1Feb24.dimer.g++.1
Normal file
312
examples/ASPHERE/dimer/log.1Feb24.dimer.g++.1
Normal file
@ -0,0 +1,312 @@
|
|||||||
|
LAMMPS (21 Nov 2023 - Development - patch_21Nov2023-665-g17f869bf5e)
|
||||||
|
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||||
|
using 1 OpenMP thread(s) per MPI task
|
||||||
|
# SRD diffusion demo - dimer particles
|
||||||
|
|
||||||
|
units lj
|
||||||
|
atom_style sphere
|
||||||
|
atom_modify map array first big
|
||||||
|
dimension 2
|
||||||
|
|
||||||
|
# read in clusters of rigid bodies
|
||||||
|
|
||||||
|
fix molprop all property/atom mol ghost yes
|
||||||
|
read_data data.dimer fix molprop NULL Molecules
|
||||||
|
Reading data file ...
|
||||||
|
orthogonal box = (-9.341652 -9.341652 -0.5) to (9.341652 9.341652 0.5)
|
||||||
|
1 by 1 by 1 MPI processor grid
|
||||||
|
reading atoms ...
|
||||||
|
200 atoms
|
||||||
|
read_data CPU = 0.001 seconds
|
||||||
|
|
||||||
|
set type 1 mass 1.0
|
||||||
|
Setting atom values ...
|
||||||
|
200 settings made for mass
|
||||||
|
group big type 1
|
||||||
|
200 atoms in group big
|
||||||
|
velocity big create 1.44 87287 loop geom
|
||||||
|
|
||||||
|
# equilibrate big particles
|
||||||
|
|
||||||
|
pair_style soft 1.12
|
||||||
|
pair_coeff 1 1 0.0
|
||||||
|
pair_coeff 2 2 0.0 0.0
|
||||||
|
pair_coeff 1 2 0.0 0.0
|
||||||
|
|
||||||
|
variable prefactor equal ramp(0,60)
|
||||||
|
fix soft all adapt 1 pair soft a * * v_prefactor
|
||||||
|
|
||||||
|
fix 1 big rigid molecule
|
||||||
|
100 rigid bodies with 200 atoms
|
||||||
|
fix 2 all enforce2d
|
||||||
|
|
||||||
|
#dump 1 all atom 10 dump.dimer.equil
|
||||||
|
|
||||||
|
thermo 100
|
||||||
|
run 1000
|
||||||
|
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
|
||||||
|
Neighbor list info ...
|
||||||
|
update: every = 1 steps, delay = 0 steps, check = yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 1.42
|
||||||
|
ghost atom cutoff = 1.42
|
||||||
|
binsize = 0.71, bins = 27 27 2
|
||||||
|
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||||
|
(1) pair soft, perpetual
|
||||||
|
attributes: half, newton on
|
||||||
|
pair build: half/bin/atomonly/newton
|
||||||
|
stencil: half/bin/2d
|
||||||
|
bin: standard
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 5.557 | 5.557 | 5.557 Mbytes
|
||||||
|
Step Temp E_pair E_mol TotEng Press
|
||||||
|
0 3.4028231 0 0 0.83369167 -0.55065517
|
||||||
|
100 9.5167872 2.392105 0 4.7237178 2.8319556
|
||||||
|
200 13.564465 3.0352634 0 6.3585572 3.6388732
|
||||||
|
300 13.133051 4.3835112 0 7.6011086 4.060051
|
||||||
|
400 14.576837 5.5141059 0 9.0854309 4.422762
|
||||||
|
500 15.227825 6.6472106 0 10.378028 4.8598912
|
||||||
|
600 16.93219 7.454865 0 11.603251 5.2908894
|
||||||
|
700 16.573769 8.7323442 0 12.792918 5.3544684
|
||||||
|
800 17.482599 9.7221047 0 14.005341 5.6200973
|
||||||
|
900 18.548144 10.739353 0 15.283649 4.7817995
|
||||||
|
1000 18.068079 12.058417 0 16.485096 6.5773091
|
||||||
|
Loop time of 0.0511113 on 1 procs for 1000 steps with 200 atoms
|
||||||
|
|
||||||
|
Performance: 8452141.519 tau/day, 19565.142 timesteps/s, 3.913 Matom-step/s
|
||||||
|
99.6% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
|
MPI task timing breakdown:
|
||||||
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Pair | 0.0095507 | 0.0095507 | 0.0095507 | 0.0 | 18.69
|
||||||
|
Neigh | 0.0042239 | 0.0042239 | 0.0042239 | 0.0 | 8.26
|
||||||
|
Comm | 0.002203 | 0.002203 | 0.002203 | 0.0 | 4.31
|
||||||
|
Output | 8.8531e-05 | 8.8531e-05 | 8.8531e-05 | 0.0 | 0.17
|
||||||
|
Modify | 0.03336 | 0.03336 | 0.03336 | 0.0 | 65.27
|
||||||
|
Other | | 0.001685 | | | 3.30
|
||||||
|
|
||||||
|
Nlocal: 200 ave 200 max 200 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Nghost: 64 ave 64 max 64 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Neighs: 275 ave 275 max 275 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
|
||||||
|
Total # of neighbors = 275
|
||||||
|
Ave neighs/atom = 1.375
|
||||||
|
Neighbor list builds = 193
|
||||||
|
Dangerous builds = 0
|
||||||
|
|
||||||
|
#undump 1
|
||||||
|
unfix soft
|
||||||
|
unfix 1
|
||||||
|
unfix 2
|
||||||
|
|
||||||
|
# add small particles as hi density lattice
|
||||||
|
|
||||||
|
region plane block INF INF INF INF -0.001 0.001 units box
|
||||||
|
lattice sq 85.0
|
||||||
|
Lattice spacing in x,y,z = 0.10846523 0.10846523 0.10846523
|
||||||
|
create_atoms 2 region plane
|
||||||
|
Created 29929 atoms
|
||||||
|
using lattice units in orthogonal box = (-9.341652 -9.341652 -0.5) to (9.341652 9.341652 0.5)
|
||||||
|
create_atoms CPU = 0.007 seconds
|
||||||
|
|
||||||
|
set type 2 mass 0.1
|
||||||
|
Setting atom values ...
|
||||||
|
29929 settings made for mass
|
||||||
|
group small type 2
|
||||||
|
29929 atoms in group small
|
||||||
|
velocity small create 1.0 593849 loop geom
|
||||||
|
|
||||||
|
# delete overlaps
|
||||||
|
# must set 1-2 cutoff to non-zero value
|
||||||
|
|
||||||
|
pair_style lj/cut 2.5
|
||||||
|
pair_coeff 1 1 1.0 1.0
|
||||||
|
pair_coeff 2 2 0.0 1.0 0.0
|
||||||
|
pair_coeff 1 2 0.0 1.0 0.5
|
||||||
|
|
||||||
|
delete_atoms overlap 0.5 small big
|
||||||
|
System init for delete_atoms ...
|
||||||
|
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
|
||||||
|
Neighbor list info ...
|
||||||
|
update: every = 1 steps, delay = 0 steps, check = yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 2.8
|
||||||
|
ghost atom cutoff = 2.8
|
||||||
|
binsize = 1.4, bins = 14 14 1
|
||||||
|
2 neighbor lists, perpetual/occasional/extra = 1 1 0
|
||||||
|
(1) command delete_atoms, occasional
|
||||||
|
attributes: full, newton on
|
||||||
|
pair build: full/bin/atomonly
|
||||||
|
stencil: full/bin/2d
|
||||||
|
bin: standard
|
||||||
|
(2) pair lj/cut, perpetual
|
||||||
|
attributes: half, newton on
|
||||||
|
pair build: half/bin/atomonly/newton
|
||||||
|
stencil: half/bin/2d
|
||||||
|
bin: standard
|
||||||
|
WARNING: Delete_atoms cutoff > minimum neighbor cutoff (src/delete_atoms.cpp:312)
|
||||||
|
Deleted 12776 atoms, new total = 17353
|
||||||
|
|
||||||
|
# SRD run
|
||||||
|
|
||||||
|
reset_timestep 0
|
||||||
|
|
||||||
|
neighbor 0.3 multi
|
||||||
|
neigh_modify delay 0 every 1 check yes
|
||||||
|
|
||||||
|
comm_modify mode multi group big vel yes
|
||||||
|
neigh_modify include big
|
||||||
|
|
||||||
|
# no pairwise interactions with small particles
|
||||||
|
|
||||||
|
pair_style lj/cut 2.5
|
||||||
|
pair_coeff 1 1 1.0 1.0
|
||||||
|
pair_coeff 2 2 0.0 1.0 0.0
|
||||||
|
pair_coeff 1 2 0.0 1.0 0.0
|
||||||
|
|
||||||
|
# use fix SRD to push small particles out from inside big ones
|
||||||
|
# if comment out, big particles won't see SRD particles
|
||||||
|
|
||||||
|
timestep 0.001
|
||||||
|
|
||||||
|
fix 1 big rigid molecule
|
||||||
|
100 rigid bodies with 200 atoms
|
||||||
|
fix 2 small srd 20 big 1.0 0.25 49894 shift yes 54979 search 0.2 collision slip inside ignore overlap yes
|
||||||
|
fix 3 all enforce2d
|
||||||
|
|
||||||
|
# diagnostics
|
||||||
|
|
||||||
|
compute tbig big temp/sphere
|
||||||
|
variable pebig equal pe*atoms/count(big)
|
||||||
|
variable ebig equal etotal*atoms/count(big)
|
||||||
|
thermo_style custom step temp f_2[8] etotal v_pebig v_ebig press f_2[1] f_2[2] f_2[3] f_2[4] f_2[5] f_2[6] f_2[7] f_2[8] f_2[9] f_2[10] f_2[11] f_2[12]
|
||||||
|
|
||||||
|
thermo_modify temp tbig
|
||||||
|
WARNING: Temperature for thermo pressure is not for group all (src/thermo.cpp:530)
|
||||||
|
thermo 1000
|
||||||
|
|
||||||
|
#dump 1 all atom 1000 dump.dimer
|
||||||
|
|
||||||
|
#dump 1 all image 1000 image.*.jpg type type zoom 1.6
|
||||||
|
#dump_modify 1 pad 6 adiam 1 1 adiam 2 0.2
|
||||||
|
|
||||||
|
run 10000
|
||||||
|
|
||||||
|
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||||
|
|
||||||
|
Your simulation uses code contributions which should be cited:
|
||||||
|
|
||||||
|
- neighbor multi command: doi:10.1016/j.cpc.2008.03.005, doi:10.1007/s40571-020-00361-2
|
||||||
|
|
||||||
|
@Article{Intveld08,
|
||||||
|
author = {in 't Veld, P. J. and S. J.~Plimpton and G. S. Grest},
|
||||||
|
title = {Accurate and Efficient Methods for Modeling Colloidal
|
||||||
|
Mixtures in an Explicit Solvent using Molecular Dynamics},
|
||||||
|
journal = {Comput.\ Phys.\ Commut.},
|
||||||
|
year = 2008,
|
||||||
|
volume = 179,
|
||||||
|
pages = {320--329}
|
||||||
|
}
|
||||||
|
|
||||||
|
@article{Shire2020,
|
||||||
|
author = {Shire, Tom and Hanley, Kevin J. and Stratford, Kevin},
|
||||||
|
title = {{DEM} Simulations of Polydisperse Media: Efficient Contact
|
||||||
|
Detection Applied to Investigate the Quasi-Static Limit},
|
||||||
|
journal = {Computational Particle Mechanics},
|
||||||
|
year = {2020}
|
||||||
|
@article{Monti2022,
|
||||||
|
author = {Monti, Joseph M. and Clemmer, Joel T. and Srivastava,
|
||||||
|
Ishan and Silbert, Leonardo E. and Grest, Gary S.
|
||||||
|
and Lechman, Jeremy B.},
|
||||||
|
title = {Large-scale frictionless jamming with power-law particle
|
||||||
|
size distributions},
|
||||||
|
journal = {Phys. Rev. E},
|
||||||
|
volume = {106}
|
||||||
|
issue = {3}
|
||||||
|
year = {2022}
|
||||||
|
}
|
||||||
|
|
||||||
|
- fix srd command: doi:10.1063/1.3419070
|
||||||
|
|
||||||
|
@Article{Petersen10,
|
||||||
|
author = {M. K. Petersen and J. B. Lechman and S. J. Plimpton and
|
||||||
|
G. S. Grest and in 't Veld, P. J. and P. R. Schunk},
|
||||||
|
title = {Mesoscale Hydrodynamics via Stochastic Rotation
|
||||||
|
Dynamics: Comparison with {L}ennard-{J}ones Fluid},
|
||||||
|
journal = {J.~Chem.\ Phys.},
|
||||||
|
year = 2010,
|
||||||
|
volume = 132,
|
||||||
|
pages = 174106
|
||||||
|
}
|
||||||
|
|
||||||
|
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||||
|
|
||||||
|
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
|
||||||
|
SRD info:
|
||||||
|
SRD/big particles = 17153 200
|
||||||
|
big particle diameter max/min = 1 1
|
||||||
|
SRD temperature & lamda = 1 0.063245553
|
||||||
|
SRD max distance & max velocity = 0.25298221 12.649111
|
||||||
|
SRD grid counts: 75 75 1
|
||||||
|
SRD grid size: request, actual (xyz) = 0.25, 0.24911072 0.24911072 1
|
||||||
|
SRD per actual grid cell = 5.544404
|
||||||
|
SRD viscosity = 0.23553122
|
||||||
|
big/SRD mass density ratio = 0.14250828
|
||||||
|
# of rescaled SRD velocities = 0
|
||||||
|
ave/max small velocity = 4.191188 7.6900178
|
||||||
|
ave/max big velocity = 2.6813242 7.1846104
|
||||||
|
Neighbor list info ...
|
||||||
|
update: every = 1 steps, delay = 0 steps, check = yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 2.8
|
||||||
|
ghost atom cutoff = 2.8
|
||||||
|
binsize = 18.683304, bins = 1 1 1
|
||||||
|
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||||
|
(1) pair lj/cut, perpetual
|
||||||
|
attributes: half, newton on
|
||||||
|
pair build: half/multi/atomonly/newton
|
||||||
|
stencil: half/multi/2d
|
||||||
|
bin: multi
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 26.77 | 26.77 | 26.77 Mbytes
|
||||||
|
Step Temp f_2[8] TotEng v_pebig v_ebig Press f_2[1] f_2[2] f_2[3] f_2[4] f_2[5] f_2[6] f_2[7] f_2[8] f_2[9] f_2[10] f_2[11] f_2[12]
|
||||||
|
0 6.8392143 0 0.297476 20.71529 25.810505 4.0555741 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
1000 1.2285566 3375 0.24673495 20.492683 21.407958 5.237464 13477 54 54 1 652 16900 5625 3375 1.1653557 0 15 0
|
||||||
|
2000 1.3561011 3395 0.24763991 20.476182 21.486477 9.2878509 13435 67 67 0 1504 16900 5625 3395 1.1651182 0 15 0
|
||||||
|
3000 1.2445369 3352 0.24713723 20.515681 21.442861 8.0289529 13186 62 63 2 2379 16900 5625 3352 1.1746721 0 15 0
|
||||||
|
4000 1.1058201 3389 0.24596239 20.51709 21.340926 10.003266 13466 66 66 0 3264 16900 5625 3389 1.1671415 0 15 0
|
||||||
|
5000 1.0584198 3407 0.24539623 20.503281 21.291804 9.1119405 13254 64 64 0 4189 16900 5625 3407 1.1687685 0 15 0
|
||||||
|
6000 1.3335611 3360 0.24737788 20.470239 21.463742 8.6885126 13281 62 62 1 5031 16900 5625 3360 1.1568996 0 15 0
|
||||||
|
7000 1.1384759 3401 0.24570869 20.47075 21.318914 9.1801119 13059 47 47 1 5878 16900 5625 3401 1.182474 0 15 0
|
||||||
|
8000 1.2982334 3397 0.24667224 20.435333 21.402517 6.5904007 13405 56 56 0 6729 16900 5625 3397 1.169017 0 24 0
|
||||||
|
9000 1.0456752 3381 0.24504517 20.482316 21.261344 10.497413 13205 81 81 2 7706 16900 5625 3381 1.1694675 0 24 0
|
||||||
|
10000 1.2222547 3394 0.24653264 20.479825 21.390405 8.7495888 13296 68 68 1 8581 16900 5625 3394 1.1613437 0 24 0
|
||||||
|
Loop time of 7.18514 on 1 procs for 10000 steps with 17353 atoms
|
||||||
|
|
||||||
|
Performance: 120248.165 tau/day, 1391.761 timesteps/s, 24.151 Matom-step/s
|
||||||
|
99.8% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
|
MPI task timing breakdown:
|
||||||
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Pair | 0.14497 | 0.14497 | 0.14497 | 0.0 | 2.02
|
||||||
|
Neigh | 0.031835 | 0.031835 | 0.031835 | 0.0 | 0.44
|
||||||
|
Comm | 0.094201 | 0.094201 | 0.094201 | 0.0 | 1.31
|
||||||
|
Output | 0.00082765 | 0.00082765 | 0.00082765 | 0.0 | 0.01
|
||||||
|
Modify | 6.8507 | 6.8507 | 6.8507 | 0.0 | 95.35
|
||||||
|
Other | | 0.06259 | | | 0.87
|
||||||
|
|
||||||
|
Nlocal: 17353 ave 17353 max 17353 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Nghost: 128 ave 128 max 128 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Neighs: 1334 ave 1334 max 1334 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
|
||||||
|
Total # of neighbors = 1334
|
||||||
|
Ave neighs/atom = 0.076874316
|
||||||
|
Neighbor list builds = 500
|
||||||
|
Dangerous builds = 0
|
||||||
|
Total wall time: 0:00:07
|
||||||
312
examples/ASPHERE/dimer/log.1Feb24.dimer.g++.4
Normal file
312
examples/ASPHERE/dimer/log.1Feb24.dimer.g++.4
Normal file
@ -0,0 +1,312 @@
|
|||||||
|
LAMMPS (21 Nov 2023 - Development - patch_21Nov2023-665-g17f869bf5e)
|
||||||
|
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||||
|
using 1 OpenMP thread(s) per MPI task
|
||||||
|
# SRD diffusion demo - dimer particles
|
||||||
|
|
||||||
|
units lj
|
||||||
|
atom_style sphere
|
||||||
|
atom_modify map array first big
|
||||||
|
dimension 2
|
||||||
|
|
||||||
|
# read in clusters of rigid bodies
|
||||||
|
|
||||||
|
fix molprop all property/atom mol ghost yes
|
||||||
|
read_data data.dimer fix molprop NULL Molecules
|
||||||
|
Reading data file ...
|
||||||
|
orthogonal box = (-9.341652 -9.341652 -0.5) to (9.341652 9.341652 0.5)
|
||||||
|
2 by 2 by 1 MPI processor grid
|
||||||
|
reading atoms ...
|
||||||
|
200 atoms
|
||||||
|
read_data CPU = 0.001 seconds
|
||||||
|
|
||||||
|
set type 1 mass 1.0
|
||||||
|
Setting atom values ...
|
||||||
|
200 settings made for mass
|
||||||
|
group big type 1
|
||||||
|
200 atoms in group big
|
||||||
|
velocity big create 1.44 87287 loop geom
|
||||||
|
|
||||||
|
# equilibrate big particles
|
||||||
|
|
||||||
|
pair_style soft 1.12
|
||||||
|
pair_coeff 1 1 0.0
|
||||||
|
pair_coeff 2 2 0.0 0.0
|
||||||
|
pair_coeff 1 2 0.0 0.0
|
||||||
|
|
||||||
|
variable prefactor equal ramp(0,60)
|
||||||
|
fix soft all adapt 1 pair soft a * * v_prefactor
|
||||||
|
|
||||||
|
fix 1 big rigid molecule
|
||||||
|
100 rigid bodies with 200 atoms
|
||||||
|
fix 2 all enforce2d
|
||||||
|
|
||||||
|
#dump 1 all atom 10 dump.dimer.equil
|
||||||
|
|
||||||
|
thermo 100
|
||||||
|
run 1000
|
||||||
|
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
|
||||||
|
Neighbor list info ...
|
||||||
|
update: every = 1 steps, delay = 0 steps, check = yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 1.42
|
||||||
|
ghost atom cutoff = 1.42
|
||||||
|
binsize = 0.71, bins = 27 27 2
|
||||||
|
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||||
|
(1) pair soft, perpetual
|
||||||
|
attributes: half, newton on
|
||||||
|
pair build: half/bin/atomonly/newton
|
||||||
|
stencil: half/bin/2d
|
||||||
|
bin: standard
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 5.553 | 5.553 | 5.553 Mbytes
|
||||||
|
Step Temp E_pair E_mol TotEng Press
|
||||||
|
0 3.4028231 0 0 0.83369167 -0.55065517
|
||||||
|
100 9.5167872 2.392105 0 4.7237178 2.8319556
|
||||||
|
200 13.564465 3.0352634 0 6.3585572 3.6388732
|
||||||
|
300 13.133051 4.3835112 0 7.6011086 4.060051
|
||||||
|
400 14.576837 5.5141059 0 9.0854309 4.422762
|
||||||
|
500 15.227825 6.6472106 0 10.378028 4.8598912
|
||||||
|
600 16.93219 7.454865 0 11.603251 5.2908894
|
||||||
|
700 16.573769 8.7323442 0 12.792918 5.3544684
|
||||||
|
800 17.482599 9.7221047 0 14.005341 5.6200973
|
||||||
|
900 18.548144 10.739353 0 15.283649 4.7817995
|
||||||
|
1000 18.068079 12.058417 0 16.485096 6.5773093
|
||||||
|
Loop time of 0.0424792 on 4 procs for 1000 steps with 200 atoms
|
||||||
|
|
||||||
|
Performance: 10169676.521 tau/day, 23540.918 timesteps/s, 4.708 Matom-step/s
|
||||||
|
98.0% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
|
MPI task timing breakdown:
|
||||||
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Pair | 0.0022758 | 0.0023448 | 0.002442 | 0.1 | 5.52
|
||||||
|
Neigh | 0.0011082 | 0.0011236 | 0.0011582 | 0.1 | 2.64
|
||||||
|
Comm | 0.0099484 | 0.010092 | 0.010247 | 0.1 | 23.76
|
||||||
|
Output | 9.551e-05 | 0.00010604 | 0.00013381 | 0.0 | 0.25
|
||||||
|
Modify | 0.026025 | 0.026222 | 0.026405 | 0.1 | 61.73
|
||||||
|
Other | | 0.00259 | | | 6.10
|
||||||
|
|
||||||
|
Nlocal: 50 ave 55 max 47 min
|
||||||
|
Histogram: 2 0 0 0 0 1 0 0 0 1
|
||||||
|
Nghost: 33.75 ave 38 max 32 min
|
||||||
|
Histogram: 2 1 0 0 0 0 0 0 0 1
|
||||||
|
Neighs: 68.75 ave 77 max 64 min
|
||||||
|
Histogram: 2 0 0 1 0 0 0 0 0 1
|
||||||
|
|
||||||
|
Total # of neighbors = 275
|
||||||
|
Ave neighs/atom = 1.375
|
||||||
|
Neighbor list builds = 193
|
||||||
|
Dangerous builds = 0
|
||||||
|
|
||||||
|
#undump 1
|
||||||
|
unfix soft
|
||||||
|
unfix 1
|
||||||
|
unfix 2
|
||||||
|
|
||||||
|
# add small particles as hi density lattice
|
||||||
|
|
||||||
|
region plane block INF INF INF INF -0.001 0.001 units box
|
||||||
|
lattice sq 85.0
|
||||||
|
Lattice spacing in x,y,z = 0.10846523 0.10846523 0.10846523
|
||||||
|
create_atoms 2 region plane
|
||||||
|
Created 29929 atoms
|
||||||
|
using lattice units in orthogonal box = (-9.341652 -9.341652 -0.5) to (9.341652 9.341652 0.5)
|
||||||
|
create_atoms CPU = 0.002 seconds
|
||||||
|
|
||||||
|
set type 2 mass 0.1
|
||||||
|
Setting atom values ...
|
||||||
|
29929 settings made for mass
|
||||||
|
group small type 2
|
||||||
|
29929 atoms in group small
|
||||||
|
velocity small create 1.0 593849 loop geom
|
||||||
|
|
||||||
|
# delete overlaps
|
||||||
|
# must set 1-2 cutoff to non-zero value
|
||||||
|
|
||||||
|
pair_style lj/cut 2.5
|
||||||
|
pair_coeff 1 1 1.0 1.0
|
||||||
|
pair_coeff 2 2 0.0 1.0 0.0
|
||||||
|
pair_coeff 1 2 0.0 1.0 0.5
|
||||||
|
|
||||||
|
delete_atoms overlap 0.5 small big
|
||||||
|
System init for delete_atoms ...
|
||||||
|
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
|
||||||
|
Neighbor list info ...
|
||||||
|
update: every = 1 steps, delay = 0 steps, check = yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 2.8
|
||||||
|
ghost atom cutoff = 2.8
|
||||||
|
binsize = 1.4, bins = 14 14 1
|
||||||
|
2 neighbor lists, perpetual/occasional/extra = 1 1 0
|
||||||
|
(1) command delete_atoms, occasional
|
||||||
|
attributes: full, newton on
|
||||||
|
pair build: full/bin/atomonly
|
||||||
|
stencil: full/bin/2d
|
||||||
|
bin: standard
|
||||||
|
(2) pair lj/cut, perpetual
|
||||||
|
attributes: half, newton on
|
||||||
|
pair build: half/bin/atomonly/newton
|
||||||
|
stencil: half/bin/2d
|
||||||
|
bin: standard
|
||||||
|
WARNING: Delete_atoms cutoff > minimum neighbor cutoff (src/delete_atoms.cpp:312)
|
||||||
|
Deleted 12776 atoms, new total = 17353
|
||||||
|
|
||||||
|
# SRD run
|
||||||
|
|
||||||
|
reset_timestep 0
|
||||||
|
|
||||||
|
neighbor 0.3 multi
|
||||||
|
neigh_modify delay 0 every 1 check yes
|
||||||
|
|
||||||
|
comm_modify mode multi group big vel yes
|
||||||
|
neigh_modify include big
|
||||||
|
|
||||||
|
# no pairwise interactions with small particles
|
||||||
|
|
||||||
|
pair_style lj/cut 2.5
|
||||||
|
pair_coeff 1 1 1.0 1.0
|
||||||
|
pair_coeff 2 2 0.0 1.0 0.0
|
||||||
|
pair_coeff 1 2 0.0 1.0 0.0
|
||||||
|
|
||||||
|
# use fix SRD to push small particles out from inside big ones
|
||||||
|
# if comment out, big particles won't see SRD particles
|
||||||
|
|
||||||
|
timestep 0.001
|
||||||
|
|
||||||
|
fix 1 big rigid molecule
|
||||||
|
100 rigid bodies with 200 atoms
|
||||||
|
fix 2 small srd 20 big 1.0 0.25 49894 shift yes 54979 search 0.2 collision slip inside ignore overlap yes
|
||||||
|
fix 3 all enforce2d
|
||||||
|
|
||||||
|
# diagnostics
|
||||||
|
|
||||||
|
compute tbig big temp/sphere
|
||||||
|
variable pebig equal pe*atoms/count(big)
|
||||||
|
variable ebig equal etotal*atoms/count(big)
|
||||||
|
thermo_style custom step temp f_2[8] etotal v_pebig v_ebig press f_2[1] f_2[2] f_2[3] f_2[4] f_2[5] f_2[6] f_2[7] f_2[8] f_2[9] f_2[10] f_2[11] f_2[12]
|
||||||
|
|
||||||
|
thermo_modify temp tbig
|
||||||
|
WARNING: Temperature for thermo pressure is not for group all (src/thermo.cpp:530)
|
||||||
|
thermo 1000
|
||||||
|
|
||||||
|
#dump 1 all atom 1000 dump.dimer
|
||||||
|
|
||||||
|
#dump 1 all image 1000 image.*.jpg type type zoom 1.6
|
||||||
|
#dump_modify 1 pad 6 adiam 1 1 adiam 2 0.2
|
||||||
|
|
||||||
|
run 10000
|
||||||
|
|
||||||
|
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||||
|
|
||||||
|
Your simulation uses code contributions which should be cited:
|
||||||
|
|
||||||
|
- neighbor multi command: doi:10.1016/j.cpc.2008.03.005, doi:10.1007/s40571-020-00361-2
|
||||||
|
|
||||||
|
@Article{Intveld08,
|
||||||
|
author = {in 't Veld, P. J. and S. J.~Plimpton and G. S. Grest},
|
||||||
|
title = {Accurate and Efficient Methods for Modeling Colloidal
|
||||||
|
Mixtures in an Explicit Solvent using Molecular Dynamics},
|
||||||
|
journal = {Comput.\ Phys.\ Commut.},
|
||||||
|
year = 2008,
|
||||||
|
volume = 179,
|
||||||
|
pages = {320--329}
|
||||||
|
}
|
||||||
|
|
||||||
|
@article{Shire2020,
|
||||||
|
author = {Shire, Tom and Hanley, Kevin J. and Stratford, Kevin},
|
||||||
|
title = {{DEM} Simulations of Polydisperse Media: Efficient Contact
|
||||||
|
Detection Applied to Investigate the Quasi-Static Limit},
|
||||||
|
journal = {Computational Particle Mechanics},
|
||||||
|
year = {2020}
|
||||||
|
@article{Monti2022,
|
||||||
|
author = {Monti, Joseph M. and Clemmer, Joel T. and Srivastava,
|
||||||
|
Ishan and Silbert, Leonardo E. and Grest, Gary S.
|
||||||
|
and Lechman, Jeremy B.},
|
||||||
|
title = {Large-scale frictionless jamming with power-law particle
|
||||||
|
size distributions},
|
||||||
|
journal = {Phys. Rev. E},
|
||||||
|
volume = {106}
|
||||||
|
issue = {3}
|
||||||
|
year = {2022}
|
||||||
|
}
|
||||||
|
|
||||||
|
- fix srd command: doi:10.1063/1.3419070
|
||||||
|
|
||||||
|
@Article{Petersen10,
|
||||||
|
author = {M. K. Petersen and J. B. Lechman and S. J. Plimpton and
|
||||||
|
G. S. Grest and in 't Veld, P. J. and P. R. Schunk},
|
||||||
|
title = {Mesoscale Hydrodynamics via Stochastic Rotation
|
||||||
|
Dynamics: Comparison with {L}ennard-{J}ones Fluid},
|
||||||
|
journal = {J.~Chem.\ Phys.},
|
||||||
|
year = 2010,
|
||||||
|
volume = 132,
|
||||||
|
pages = 174106
|
||||||
|
}
|
||||||
|
|
||||||
|
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||||
|
|
||||||
|
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
|
||||||
|
SRD info:
|
||||||
|
SRD/big particles = 17153 200
|
||||||
|
big particle diameter max/min = 1 1
|
||||||
|
SRD temperature & lamda = 1 0.063245553
|
||||||
|
SRD max distance & max velocity = 0.25298221 12.649111
|
||||||
|
SRD grid counts: 75 75 1
|
||||||
|
SRD grid size: request, actual (xyz) = 0.25, 0.24911072 0.24911072 1
|
||||||
|
SRD per actual grid cell = 5.544404
|
||||||
|
SRD viscosity = 0.23553122
|
||||||
|
big/SRD mass density ratio = 0.14250828
|
||||||
|
# of rescaled SRD velocities = 0
|
||||||
|
ave/max small velocity = 4.191188 7.6900178
|
||||||
|
ave/max big velocity = 2.6813242 7.1846103
|
||||||
|
Neighbor list info ...
|
||||||
|
update: every = 1 steps, delay = 0 steps, check = yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 2.8
|
||||||
|
ghost atom cutoff = 2.8
|
||||||
|
binsize = 18.683304, bins = 1 1 1
|
||||||
|
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||||
|
(1) pair lj/cut, perpetual
|
||||||
|
attributes: half, newton on
|
||||||
|
pair build: half/multi/atomonly/newton
|
||||||
|
stencil: half/multi/2d
|
||||||
|
bin: multi
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 13.2 | 13.21 | 13.22 Mbytes
|
||||||
|
Step Temp f_2[8] TotEng v_pebig v_ebig Press f_2[1] f_2[2] f_2[3] f_2[4] f_2[5] f_2[6] f_2[7] f_2[8] f_2[9] f_2[10] f_2[11] f_2[12]
|
||||||
|
0 6.8392143 0 0.297476 20.71529 25.810505 4.0555746 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
1000 1.1648085 3389 0.24643931 20.514525 21.382307 5.5927686 13390 59 59 0 1015 28224 5625 3389 1.1513276 0 111 0
|
||||||
|
2000 1.1870311 3385 0.24701637 20.548037 21.432375 5.9269821 13271 57 57 2 1878 28224 5625 3385 1.1619099 0 111 0
|
||||||
|
3000 1.1362839 3365 0.24577276 20.477942 21.324474 5.1621045 13244 59 60 1 2778 28224 5625 3365 1.1807679 0 111 0
|
||||||
|
4000 1.3023748 3390 0.24679509 20.442907 21.413176 5.6127077 13413 65 65 1 3705 28224 5625 3390 1.1726946 0 111 0
|
||||||
|
5000 1.195496 3387 0.2458055 20.43667 21.327314 6.1843476 13248 51 51 1 4638 28224 5625 3387 1.1730279 0 111 0
|
||||||
|
6000 1.2389419 3387 0.24546635 20.374876 21.297888 5.5909826 13184 54 54 1 5494 28224 5625 3387 1.1859134 0 111 0
|
||||||
|
7000 1.2068912 3378 0.24564722 20.414447 21.313581 8.5604547 13188 57 57 1 6428 28224 5625 3378 1.1499181 0 111 0
|
||||||
|
8000 1.1014154 3374 0.24514746 20.449665 21.270219 7.3483529 13179 63 63 0 7591 28224 5625 3374 1.1769322 0 121 0
|
||||||
|
9000 1.356464 3388 0.24749513 20.463349 21.473915 7.6809833 13138 50 50 2 8485 28224 5625 3388 1.1448659 0 121 0
|
||||||
|
10000 1.1632951 3402 0.24560819 20.44354 21.310195 9.5738599 13323 64 67 0 9304 28224 5625 3402 1.1550136 0 121 0
|
||||||
|
Loop time of 2.47185 on 4 procs for 10000 steps with 17353 atoms
|
||||||
|
|
||||||
|
Performance: 349536.432 tau/day, 4045.561 timesteps/s, 70.203 Matom-step/s
|
||||||
|
99.4% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
|
MPI task timing breakdown:
|
||||||
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Pair | 0.037524 | 0.039903 | 0.042215 | 1.1 | 1.61
|
||||||
|
Neigh | 0.01053 | 0.010805 | 0.011068 | 0.2 | 0.44
|
||||||
|
Comm | 0.14536 | 0.14822 | 0.15102 | 0.6 | 6.00
|
||||||
|
Output | 0.00051847 | 0.00054674 | 0.0006272 | 0.0 | 0.02
|
||||||
|
Modify | 2.2276 | 2.2334 | 2.2381 | 0.3 | 90.35
|
||||||
|
Other | | 0.03895 | | | 1.58
|
||||||
|
|
||||||
|
Nlocal: 4338.25 ave 4488 max 4277 min
|
||||||
|
Histogram: 2 1 0 0 0 0 0 0 0 1
|
||||||
|
Nghost: 76.75 ave 85 max 69 min
|
||||||
|
Histogram: 2 0 0 0 0 0 0 0 1 1
|
||||||
|
Neighs: 331.25 ave 355 max 306 min
|
||||||
|
Histogram: 1 0 0 1 0 0 1 0 0 1
|
||||||
|
|
||||||
|
Total # of neighbors = 1325
|
||||||
|
Ave neighs/atom = 0.076355673
|
||||||
|
Neighbor list builds = 507
|
||||||
|
Dangerous builds = 0
|
||||||
|
Total wall time: 0:00:02
|
||||||
328
examples/ASPHERE/dimer/log.1Feb24.dimer.mp.g++.1
Normal file
328
examples/ASPHERE/dimer/log.1Feb24.dimer.mp.g++.1
Normal file
@ -0,0 +1,328 @@
|
|||||||
|
LAMMPS (21 Nov 2023 - Development - patch_21Nov2023-665-g17f869bf5e)
|
||||||
|
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||||
|
using 1 OpenMP thread(s) per MPI task
|
||||||
|
# SRD viscosity demo - dimer particles
|
||||||
|
|
||||||
|
units lj
|
||||||
|
atom_style sphere
|
||||||
|
atom_modify map array first big
|
||||||
|
dimension 2
|
||||||
|
|
||||||
|
# read in clusters of rigid bodies
|
||||||
|
|
||||||
|
fix molprop all property/atom mol ghost yes
|
||||||
|
read_data data.dimer fix molprop NULL Molecules
|
||||||
|
Reading data file ...
|
||||||
|
orthogonal box = (-9.341652 -9.341652 -0.5) to (9.341652 9.341652 0.5)
|
||||||
|
1 by 1 by 1 MPI processor grid
|
||||||
|
reading atoms ...
|
||||||
|
200 atoms
|
||||||
|
read_data CPU = 0.001 seconds
|
||||||
|
|
||||||
|
set type 1 mass 1.0
|
||||||
|
Setting atom values ...
|
||||||
|
200 settings made for mass
|
||||||
|
group big type 1
|
||||||
|
200 atoms in group big
|
||||||
|
velocity big create 1.44 87287 loop geom
|
||||||
|
|
||||||
|
# equilibrate big particles
|
||||||
|
|
||||||
|
pair_style soft 1.12
|
||||||
|
pair_coeff 1 1 0.0
|
||||||
|
pair_coeff 2 2 0.0 0.0
|
||||||
|
pair_coeff 1 2 0.0 0.0
|
||||||
|
|
||||||
|
variable prefactor equal ramp(0,60)
|
||||||
|
fix soft all adapt 1 pair soft a * * v_prefactor
|
||||||
|
|
||||||
|
fix 1 big rigid molecule
|
||||||
|
100 rigid bodies with 200 atoms
|
||||||
|
fix 2 all enforce2d
|
||||||
|
|
||||||
|
#dump 1 all atom 10 dump.dimer.equil
|
||||||
|
|
||||||
|
thermo 100
|
||||||
|
run 1000
|
||||||
|
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
|
||||||
|
Neighbor list info ...
|
||||||
|
update: every = 1 steps, delay = 0 steps, check = yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 1.42
|
||||||
|
ghost atom cutoff = 1.42
|
||||||
|
binsize = 0.71, bins = 27 27 2
|
||||||
|
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||||
|
(1) pair soft, perpetual
|
||||||
|
attributes: half, newton on
|
||||||
|
pair build: half/bin/atomonly/newton
|
||||||
|
stencil: half/bin/2d
|
||||||
|
bin: standard
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 5.557 | 5.557 | 5.557 Mbytes
|
||||||
|
Step Temp E_pair E_mol TotEng Press
|
||||||
|
0 3.4028231 0 0 0.83369167 -0.55065517
|
||||||
|
100 9.5167872 2.392105 0 4.7237178 2.8319556
|
||||||
|
200 13.564465 3.0352634 0 6.3585572 3.6388732
|
||||||
|
300 13.133051 4.3835112 0 7.6011086 4.060051
|
||||||
|
400 14.576837 5.5141059 0 9.0854309 4.422762
|
||||||
|
500 15.227825 6.6472106 0 10.378028 4.8598912
|
||||||
|
600 16.93219 7.454865 0 11.603251 5.2908894
|
||||||
|
700 16.573769 8.7323442 0 12.792918 5.3544684
|
||||||
|
800 17.482599 9.7221047 0 14.005341 5.6200973
|
||||||
|
900 18.548144 10.739353 0 15.283649 4.7817995
|
||||||
|
1000 18.068079 12.058417 0 16.485096 6.5773091
|
||||||
|
Loop time of 0.0502552 on 1 procs for 1000 steps with 200 atoms
|
||||||
|
|
||||||
|
Performance: 8596132.389 tau/day, 19898.455 timesteps/s, 3.980 Matom-step/s
|
||||||
|
99.4% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
|
MPI task timing breakdown:
|
||||||
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Pair | 0.0095071 | 0.0095071 | 0.0095071 | 0.0 | 18.92
|
||||||
|
Neigh | 0.0042809 | 0.0042809 | 0.0042809 | 0.0 | 8.52
|
||||||
|
Comm | 0.0022049 | 0.0022049 | 0.0022049 | 0.0 | 4.39
|
||||||
|
Output | 0.0001259 | 0.0001259 | 0.0001259 | 0.0 | 0.25
|
||||||
|
Modify | 0.032467 | 0.032467 | 0.032467 | 0.0 | 64.60
|
||||||
|
Other | | 0.00167 | | | 3.32
|
||||||
|
|
||||||
|
Nlocal: 200 ave 200 max 200 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Nghost: 64 ave 64 max 64 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Neighs: 275 ave 275 max 275 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
|
||||||
|
Total # of neighbors = 275
|
||||||
|
Ave neighs/atom = 1.375
|
||||||
|
Neighbor list builds = 193
|
||||||
|
Dangerous builds = 0
|
||||||
|
|
||||||
|
#undump 1
|
||||||
|
unfix soft
|
||||||
|
unfix 1
|
||||||
|
unfix 2
|
||||||
|
|
||||||
|
# add small particles as hi density lattice
|
||||||
|
|
||||||
|
region plane block INF INF INF INF -0.001 0.001 units box
|
||||||
|
lattice sq 85.0
|
||||||
|
Lattice spacing in x,y,z = 0.10846523 0.10846523 0.10846523
|
||||||
|
create_atoms 2 region plane
|
||||||
|
Created 29929 atoms
|
||||||
|
using lattice units in orthogonal box = (-9.341652 -9.341652 -0.5) to (9.341652 9.341652 0.5)
|
||||||
|
create_atoms CPU = 0.006 seconds
|
||||||
|
|
||||||
|
set type 2 mass 0.1
|
||||||
|
Setting atom values ...
|
||||||
|
29929 settings made for mass
|
||||||
|
group small type 2
|
||||||
|
29929 atoms in group small
|
||||||
|
velocity small create 1.0 593849 loop geom
|
||||||
|
|
||||||
|
# delete overlaps
|
||||||
|
# must set 1-2 cutoff to non-zero value
|
||||||
|
|
||||||
|
pair_style lj/cut 2.5
|
||||||
|
pair_coeff 1 1 1.0 1.0
|
||||||
|
pair_coeff 2 2 0.0 1.0 0.0
|
||||||
|
pair_coeff 1 2 0.0 1.0 0.5
|
||||||
|
|
||||||
|
delete_atoms overlap 0.5 small big
|
||||||
|
System init for delete_atoms ...
|
||||||
|
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
|
||||||
|
Neighbor list info ...
|
||||||
|
update: every = 1 steps, delay = 0 steps, check = yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 2.8
|
||||||
|
ghost atom cutoff = 2.8
|
||||||
|
binsize = 1.4, bins = 14 14 1
|
||||||
|
2 neighbor lists, perpetual/occasional/extra = 1 1 0
|
||||||
|
(1) command delete_atoms, occasional
|
||||||
|
attributes: full, newton on
|
||||||
|
pair build: full/bin/atomonly
|
||||||
|
stencil: full/bin/2d
|
||||||
|
bin: standard
|
||||||
|
(2) pair lj/cut, perpetual
|
||||||
|
attributes: half, newton on
|
||||||
|
pair build: half/bin/atomonly/newton
|
||||||
|
stencil: half/bin/2d
|
||||||
|
bin: standard
|
||||||
|
WARNING: Delete_atoms cutoff > minimum neighbor cutoff (src/delete_atoms.cpp:312)
|
||||||
|
Deleted 12776 atoms, new total = 17353
|
||||||
|
|
||||||
|
# SRD run
|
||||||
|
|
||||||
|
reset_timestep 0
|
||||||
|
|
||||||
|
neighbor 0.3 multi
|
||||||
|
neigh_modify delay 0 every 1 check yes
|
||||||
|
|
||||||
|
comm_modify mode multi group big vel yes
|
||||||
|
neigh_modify include big
|
||||||
|
|
||||||
|
# no pairwise interactions with small particles
|
||||||
|
|
||||||
|
pair_style lj/cut 2.5
|
||||||
|
pair_coeff 1 1 1.0 1.0
|
||||||
|
pair_coeff 2 2 0.0 1.0 0.0
|
||||||
|
pair_coeff 1 2 0.0 1.0 0.0
|
||||||
|
|
||||||
|
# use fix SRD to push small particles out from inside big ones
|
||||||
|
# if comment out, big particles won't see SRD particles
|
||||||
|
|
||||||
|
timestep 0.001
|
||||||
|
|
||||||
|
fix 1 big rigid molecule
|
||||||
|
100 rigid bodies with 200 atoms
|
||||||
|
fix 2 small srd 20 big 1.0 0.25 49894 shift yes 54979 search 0.2 collision slip inside ignore overlap yes
|
||||||
|
fix 3 small viscosity 10 x y 50
|
||||||
|
fix 4 all enforce2d
|
||||||
|
|
||||||
|
# diagnostics
|
||||||
|
|
||||||
|
compute tbig big temp/sphere
|
||||||
|
variable pebig equal pe*atoms/count(big)
|
||||||
|
variable ebig equal etotal*atoms/count(big)
|
||||||
|
thermo_style custom step temp f_2[8] etotal v_pebig v_ebig press f_2[1] f_2[2] f_2[3] f_2[4] f_2[5] f_2[6] f_2[7] f_2[8] f_2[9] f_2[10] f_2[11] f_2[12]
|
||||||
|
|
||||||
|
thermo_modify temp tbig
|
||||||
|
WARNING: Temperature for thermo pressure is not for group all (src/thermo.cpp:530)
|
||||||
|
thermo 1000
|
||||||
|
|
||||||
|
#dump 1 all atom 500 dump.dimer.mp
|
||||||
|
|
||||||
|
#dump 1 all image 500 image.*.jpg type type zoom 1.6
|
||||||
|
#dump_modify 1 pad 6 adiam 1 1 adiam 2 0.2
|
||||||
|
|
||||||
|
run 25000
|
||||||
|
|
||||||
|
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||||
|
|
||||||
|
Your simulation uses code contributions which should be cited:
|
||||||
|
|
||||||
|
- neighbor multi command: doi:10.1016/j.cpc.2008.03.005, doi:10.1007/s40571-020-00361-2
|
||||||
|
|
||||||
|
@Article{Intveld08,
|
||||||
|
author = {in 't Veld, P. J. and S. J.~Plimpton and G. S. Grest},
|
||||||
|
title = {Accurate and Efficient Methods for Modeling Colloidal
|
||||||
|
Mixtures in an Explicit Solvent using Molecular Dynamics},
|
||||||
|
journal = {Comput.\ Phys.\ Commut.},
|
||||||
|
year = 2008,
|
||||||
|
volume = 179,
|
||||||
|
pages = {320--329}
|
||||||
|
}
|
||||||
|
|
||||||
|
@article{Shire2020,
|
||||||
|
author = {Shire, Tom and Hanley, Kevin J. and Stratford, Kevin},
|
||||||
|
title = {{DEM} Simulations of Polydisperse Media: Efficient Contact
|
||||||
|
Detection Applied to Investigate the Quasi-Static Limit},
|
||||||
|
journal = {Computational Particle Mechanics},
|
||||||
|
year = {2020}
|
||||||
|
@article{Monti2022,
|
||||||
|
author = {Monti, Joseph M. and Clemmer, Joel T. and Srivastava,
|
||||||
|
Ishan and Silbert, Leonardo E. and Grest, Gary S.
|
||||||
|
and Lechman, Jeremy B.},
|
||||||
|
title = {Large-scale frictionless jamming with power-law particle
|
||||||
|
size distributions},
|
||||||
|
journal = {Phys. Rev. E},
|
||||||
|
volume = {106}
|
||||||
|
issue = {3}
|
||||||
|
year = {2022}
|
||||||
|
}
|
||||||
|
|
||||||
|
- fix srd command: doi:10.1063/1.3419070
|
||||||
|
|
||||||
|
@Article{Petersen10,
|
||||||
|
author = {M. K. Petersen and J. B. Lechman and S. J. Plimpton and
|
||||||
|
G. S. Grest and in 't Veld, P. J. and P. R. Schunk},
|
||||||
|
title = {Mesoscale Hydrodynamics via Stochastic Rotation
|
||||||
|
Dynamics: Comparison with {L}ennard-{J}ones Fluid},
|
||||||
|
journal = {J.~Chem.\ Phys.},
|
||||||
|
year = 2010,
|
||||||
|
volume = 132,
|
||||||
|
pages = 174106
|
||||||
|
}
|
||||||
|
|
||||||
|
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||||
|
|
||||||
|
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
|
||||||
|
SRD info:
|
||||||
|
SRD/big particles = 17153 200
|
||||||
|
big particle diameter max/min = 1 1
|
||||||
|
SRD temperature & lamda = 1 0.063245553
|
||||||
|
SRD max distance & max velocity = 0.25298221 12.649111
|
||||||
|
SRD grid counts: 75 75 1
|
||||||
|
SRD grid size: request, actual (xyz) = 0.25, 0.24911072 0.24911072 1
|
||||||
|
SRD per actual grid cell = 5.544404
|
||||||
|
SRD viscosity = 0.23553122
|
||||||
|
big/SRD mass density ratio = 0.14250828
|
||||||
|
# of rescaled SRD velocities = 0
|
||||||
|
ave/max small velocity = 4.191188 7.6900178
|
||||||
|
ave/max big velocity = 2.6813242 7.1846104
|
||||||
|
Neighbor list info ...
|
||||||
|
update: every = 1 steps, delay = 0 steps, check = yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 2.8
|
||||||
|
ghost atom cutoff = 2.8
|
||||||
|
binsize = 18.683304, bins = 1 1 1
|
||||||
|
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||||
|
(1) pair lj/cut, perpetual
|
||||||
|
attributes: half, newton on
|
||||||
|
pair build: half/multi/atomonly/newton
|
||||||
|
stencil: half/multi/2d
|
||||||
|
bin: multi
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 26.77 | 26.77 | 26.77 Mbytes
|
||||||
|
Step Temp f_2[8] TotEng v_pebig v_ebig Press f_2[1] f_2[2] f_2[3] f_2[4] f_2[5] f_2[6] f_2[7] f_2[8] f_2[9] f_2[10] f_2[11] f_2[12]
|
||||||
|
0 6.8392143 0 0.297476 20.71529 25.810505 4.0555741 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
1000 1.3421139 3394 0.24797209 20.515424 21.515299 5.9986227 13474 52 52 1 704 16900 5625 3394 1.1328453 0 14 0
|
||||||
|
2000 1.3372296 3366 0.24694513 20.429958 21.426194 9.640193 13302 74 74 0 1516 16900 5625 3366 1.1634167 0 14 0
|
||||||
|
3000 1.4022742 3360 0.24799552 20.472637 21.517331 5.9446731 13483 47 47 0 2989 16900 5625 3360 1.1774442 0 217 0
|
||||||
|
4000 1.6325677 3376 0.25066282 20.532497 21.74876 6.9698781 13206 61 61 2 4198 16900 5625 3376 1.1749717 0 217 0
|
||||||
|
5000 2.0992887 3391 0.25484065 20.547279 22.111249 10.648531 13414 62 69 1 6389 16900 5625 3391 1.1862903 0 412 0
|
||||||
|
6000 1.7584548 3388 0.25126127 20.490636 21.800684 8.68036 13456 58 58 0 7672 16900 5625 3388 1.1553986 0 412 0
|
||||||
|
7000 2.2384486 3343 0.25650382 20.58791 22.255554 12.008146 13187 59 59 0 8879 16900 5625 3343 1.1728994 0 412 0
|
||||||
|
8000 2.4981644 3380 0.25734806 20.467672 22.328804 6.7156077 13383 51 51 0 10085 16900 5625 3380 1.156205 0 412 0
|
||||||
|
9000 2.4321991 3384 0.25838085 20.606426 22.418415 9.9820399 12847 55 55 0 11445 16900 5625 3384 1.156145 0 412 0
|
||||||
|
10000 2.2560205 3387 0.25541566 20.480404 22.161139 10.87418 13022 66 66 0 12863 16900 5625 3387 1.1559136 0 412 0
|
||||||
|
11000 2.2321955 3378 0.25533735 20.491359 22.154345 8.510825 13175 70 70 1 14273 16900 5625 3378 1.1470284 0 412 0
|
||||||
|
12000 2.2715125 3377 0.25469529 20.40636 22.098637 9.0604601 13146 68 68 0 15742 16900 5625 3377 1.171755 0 412 0
|
||||||
|
13000 2.3766974 3364 0.25667348 20.499635 22.270275 10.766786 12829 60 60 1 17214 16900 5625 3364 1.130354 0 412 0
|
||||||
|
14000 2.5659704 3347 0.25802994 20.47632 22.387967 8.2568074 13090 66 66 1 18767 16900 5625 3347 1.1609852 0 412 0
|
||||||
|
15000 2.3235671 3400 0.25603152 20.483517 22.214574 5.4785711 13389 50 50 0 20173 16900 5625 3400 1.149754 0 412 0
|
||||||
|
16000 2.6335413 3373 0.25956137 20.558854 22.520843 4.7121947 13027 58 58 1 21668 16900 5625 3373 1.1308267 0 412 0
|
||||||
|
17000 2.5603168 3410 0.25744829 20.430065 22.337501 6.1898616 13218 51 51 1 23170 16900 5625 3410 1.1285699 0 412 0
|
||||||
|
18000 2.7801428 3362 0.26002524 20.489884 22.56109 8.9919312 13002 57 57 3 24829 16900 5625 3362 1.1610153 0 412 0
|
||||||
|
19000 2.7869738 3364 0.26033026 20.51126 22.587555 9.6539159 13085 46 46 0 26476 16900 5625 3364 1.1431913 0 412 0
|
||||||
|
20000 2.678182 3383 0.2586317 20.444934 22.44018 7.3468277 12939 42 42 0 27992 16900 5625 3383 1.143534 0 412 0
|
||||||
|
21000 2.8094503 3375 0.26088069 20.542272 22.635313 8.2257869 13449 52 52 0 29570 16900 5625 3375 1.1375499 0 412 0
|
||||||
|
22000 3.2220363 3377 0.26464914 20.561866 22.962283 6.6329375 13178 65 65 6 31203 16900 5625 3377 1.1683184 0 412 0
|
||||||
|
23000 3.2268368 3339 0.26414495 20.514543 22.918536 4.6879815 12589 51 51 0 32929 16900 5625 3339 1.1378613 0 412 0
|
||||||
|
24000 2.6062461 3380 0.25967238 20.588821 22.530474 10.036449 12745 53 54 0 34460 16900 5625 3380 1.1396017 0 412 0
|
||||||
|
25000 3.2519674 3373 0.26376614 20.462953 22.885669 7.7592712 12856 52 52 1 36172 16900 5625 3373 1.1858891 0 412 0
|
||||||
|
Loop time of 20.7208 on 1 procs for 25000 steps with 17353 atoms
|
||||||
|
|
||||||
|
Performance: 104243.242 tau/day, 1206.519 timesteps/s, 20.937 Matom-step/s
|
||||||
|
99.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 | 0.39343 | 0.39343 | 0.39343 | 0.0 | 1.90
|
||||||
|
Neigh | 0.09039 | 0.09039 | 0.09039 | 0.0 | 0.44
|
||||||
|
Comm | 0.26483 | 0.26483 | 0.26483 | 0.0 | 1.28
|
||||||
|
Output | 0.0021023 | 0.0021023 | 0.0021023 | 0.0 | 0.01
|
||||||
|
Modify | 19.785 | 19.785 | 19.785 | 0.0 | 95.49
|
||||||
|
Other | | 0.1847 | | | 0.89
|
||||||
|
|
||||||
|
Nlocal: 17353 ave 17353 max 17353 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Nghost: 146 ave 146 max 146 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Neighs: 1326 ave 1326 max 1326 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
|
||||||
|
Total # of neighbors = 1326
|
||||||
|
Ave neighs/atom = 0.0764133
|
||||||
|
Neighbor list builds = 1290
|
||||||
|
Dangerous builds = 0
|
||||||
|
Total wall time: 0:00:21
|
||||||
328
examples/ASPHERE/dimer/log.1Feb24.dimer.mp.g++.4
Normal file
328
examples/ASPHERE/dimer/log.1Feb24.dimer.mp.g++.4
Normal file
@ -0,0 +1,328 @@
|
|||||||
|
LAMMPS (21 Nov 2023 - Development - patch_21Nov2023-665-g17f869bf5e)
|
||||||
|
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||||
|
using 1 OpenMP thread(s) per MPI task
|
||||||
|
# SRD viscosity demo - dimer particles
|
||||||
|
|
||||||
|
units lj
|
||||||
|
atom_style sphere
|
||||||
|
atom_modify map array first big
|
||||||
|
dimension 2
|
||||||
|
|
||||||
|
# read in clusters of rigid bodies
|
||||||
|
|
||||||
|
fix molprop all property/atom mol ghost yes
|
||||||
|
read_data data.dimer fix molprop NULL Molecules
|
||||||
|
Reading data file ...
|
||||||
|
orthogonal box = (-9.341652 -9.341652 -0.5) to (9.341652 9.341652 0.5)
|
||||||
|
2 by 2 by 1 MPI processor grid
|
||||||
|
reading atoms ...
|
||||||
|
200 atoms
|
||||||
|
read_data CPU = 0.001 seconds
|
||||||
|
|
||||||
|
set type 1 mass 1.0
|
||||||
|
Setting atom values ...
|
||||||
|
200 settings made for mass
|
||||||
|
group big type 1
|
||||||
|
200 atoms in group big
|
||||||
|
velocity big create 1.44 87287 loop geom
|
||||||
|
|
||||||
|
# equilibrate big particles
|
||||||
|
|
||||||
|
pair_style soft 1.12
|
||||||
|
pair_coeff 1 1 0.0
|
||||||
|
pair_coeff 2 2 0.0 0.0
|
||||||
|
pair_coeff 1 2 0.0 0.0
|
||||||
|
|
||||||
|
variable prefactor equal ramp(0,60)
|
||||||
|
fix soft all adapt 1 pair soft a * * v_prefactor
|
||||||
|
|
||||||
|
fix 1 big rigid molecule
|
||||||
|
100 rigid bodies with 200 atoms
|
||||||
|
fix 2 all enforce2d
|
||||||
|
|
||||||
|
#dump 1 all atom 10 dump.dimer.equil
|
||||||
|
|
||||||
|
thermo 100
|
||||||
|
run 1000
|
||||||
|
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
|
||||||
|
Neighbor list info ...
|
||||||
|
update: every = 1 steps, delay = 0 steps, check = yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 1.42
|
||||||
|
ghost atom cutoff = 1.42
|
||||||
|
binsize = 0.71, bins = 27 27 2
|
||||||
|
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||||
|
(1) pair soft, perpetual
|
||||||
|
attributes: half, newton on
|
||||||
|
pair build: half/bin/atomonly/newton
|
||||||
|
stencil: half/bin/2d
|
||||||
|
bin: standard
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 5.553 | 5.553 | 5.553 Mbytes
|
||||||
|
Step Temp E_pair E_mol TotEng Press
|
||||||
|
0 3.4028231 0 0 0.83369167 -0.55065517
|
||||||
|
100 9.5167872 2.392105 0 4.7237178 2.8319556
|
||||||
|
200 13.564465 3.0352634 0 6.3585572 3.6388732
|
||||||
|
300 13.133051 4.3835112 0 7.6011086 4.060051
|
||||||
|
400 14.576837 5.5141059 0 9.0854309 4.422762
|
||||||
|
500 15.227825 6.6472106 0 10.378028 4.8598912
|
||||||
|
600 16.93219 7.454865 0 11.603251 5.2908894
|
||||||
|
700 16.573769 8.7323442 0 12.792918 5.3544684
|
||||||
|
800 17.482599 9.7221047 0 14.005341 5.6200973
|
||||||
|
900 18.548144 10.739353 0 15.283649 4.7817995
|
||||||
|
1000 18.068079 12.058417 0 16.485096 6.5773093
|
||||||
|
Loop time of 0.0421376 on 4 procs for 1000 steps with 200 atoms
|
||||||
|
|
||||||
|
Performance: 10252121.014 tau/day, 23731.762 timesteps/s, 4.746 Matom-step/s
|
||||||
|
99.2% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
|
MPI task timing breakdown:
|
||||||
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Pair | 0.002222 | 0.0023177 | 0.0024199 | 0.2 | 5.50
|
||||||
|
Neigh | 0.0010943 | 0.0011428 | 0.001174 | 0.1 | 2.71
|
||||||
|
Comm | 0.0097533 | 0.009878 | 0.010001 | 0.1 | 23.44
|
||||||
|
Output | 9.4323e-05 | 0.0001028 | 0.00012783 | 0.0 | 0.24
|
||||||
|
Modify | 0.02557 | 0.026225 | 0.026638 | 0.3 | 62.24
|
||||||
|
Other | | 0.002471 | | | 5.86
|
||||||
|
|
||||||
|
Nlocal: 50 ave 55 max 47 min
|
||||||
|
Histogram: 2 0 0 0 0 1 0 0 0 1
|
||||||
|
Nghost: 33.75 ave 38 max 32 min
|
||||||
|
Histogram: 2 1 0 0 0 0 0 0 0 1
|
||||||
|
Neighs: 68.75 ave 77 max 64 min
|
||||||
|
Histogram: 2 0 0 1 0 0 0 0 0 1
|
||||||
|
|
||||||
|
Total # of neighbors = 275
|
||||||
|
Ave neighs/atom = 1.375
|
||||||
|
Neighbor list builds = 193
|
||||||
|
Dangerous builds = 0
|
||||||
|
|
||||||
|
#undump 1
|
||||||
|
unfix soft
|
||||||
|
unfix 1
|
||||||
|
unfix 2
|
||||||
|
|
||||||
|
# add small particles as hi density lattice
|
||||||
|
|
||||||
|
region plane block INF INF INF INF -0.001 0.001 units box
|
||||||
|
lattice sq 85.0
|
||||||
|
Lattice spacing in x,y,z = 0.10846523 0.10846523 0.10846523
|
||||||
|
create_atoms 2 region plane
|
||||||
|
Created 29929 atoms
|
||||||
|
using lattice units in orthogonal box = (-9.341652 -9.341652 -0.5) to (9.341652 9.341652 0.5)
|
||||||
|
create_atoms CPU = 0.002 seconds
|
||||||
|
|
||||||
|
set type 2 mass 0.1
|
||||||
|
Setting atom values ...
|
||||||
|
29929 settings made for mass
|
||||||
|
group small type 2
|
||||||
|
29929 atoms in group small
|
||||||
|
velocity small create 1.0 593849 loop geom
|
||||||
|
|
||||||
|
# delete overlaps
|
||||||
|
# must set 1-2 cutoff to non-zero value
|
||||||
|
|
||||||
|
pair_style lj/cut 2.5
|
||||||
|
pair_coeff 1 1 1.0 1.0
|
||||||
|
pair_coeff 2 2 0.0 1.0 0.0
|
||||||
|
pair_coeff 1 2 0.0 1.0 0.5
|
||||||
|
|
||||||
|
delete_atoms overlap 0.5 small big
|
||||||
|
System init for delete_atoms ...
|
||||||
|
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
|
||||||
|
Neighbor list info ...
|
||||||
|
update: every = 1 steps, delay = 0 steps, check = yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 2.8
|
||||||
|
ghost atom cutoff = 2.8
|
||||||
|
binsize = 1.4, bins = 14 14 1
|
||||||
|
2 neighbor lists, perpetual/occasional/extra = 1 1 0
|
||||||
|
(1) command delete_atoms, occasional
|
||||||
|
attributes: full, newton on
|
||||||
|
pair build: full/bin/atomonly
|
||||||
|
stencil: full/bin/2d
|
||||||
|
bin: standard
|
||||||
|
(2) pair lj/cut, perpetual
|
||||||
|
attributes: half, newton on
|
||||||
|
pair build: half/bin/atomonly/newton
|
||||||
|
stencil: half/bin/2d
|
||||||
|
bin: standard
|
||||||
|
WARNING: Delete_atoms cutoff > minimum neighbor cutoff (src/delete_atoms.cpp:312)
|
||||||
|
Deleted 12776 atoms, new total = 17353
|
||||||
|
|
||||||
|
# SRD run
|
||||||
|
|
||||||
|
reset_timestep 0
|
||||||
|
|
||||||
|
neighbor 0.3 multi
|
||||||
|
neigh_modify delay 0 every 1 check yes
|
||||||
|
|
||||||
|
comm_modify mode multi group big vel yes
|
||||||
|
neigh_modify include big
|
||||||
|
|
||||||
|
# no pairwise interactions with small particles
|
||||||
|
|
||||||
|
pair_style lj/cut 2.5
|
||||||
|
pair_coeff 1 1 1.0 1.0
|
||||||
|
pair_coeff 2 2 0.0 1.0 0.0
|
||||||
|
pair_coeff 1 2 0.0 1.0 0.0
|
||||||
|
|
||||||
|
# use fix SRD to push small particles out from inside big ones
|
||||||
|
# if comment out, big particles won't see SRD particles
|
||||||
|
|
||||||
|
timestep 0.001
|
||||||
|
|
||||||
|
fix 1 big rigid molecule
|
||||||
|
100 rigid bodies with 200 atoms
|
||||||
|
fix 2 small srd 20 big 1.0 0.25 49894 shift yes 54979 search 0.2 collision slip inside ignore overlap yes
|
||||||
|
fix 3 small viscosity 10 x y 50
|
||||||
|
fix 4 all enforce2d
|
||||||
|
|
||||||
|
# diagnostics
|
||||||
|
|
||||||
|
compute tbig big temp/sphere
|
||||||
|
variable pebig equal pe*atoms/count(big)
|
||||||
|
variable ebig equal etotal*atoms/count(big)
|
||||||
|
thermo_style custom step temp f_2[8] etotal v_pebig v_ebig press f_2[1] f_2[2] f_2[3] f_2[4] f_2[5] f_2[6] f_2[7] f_2[8] f_2[9] f_2[10] f_2[11] f_2[12]
|
||||||
|
|
||||||
|
thermo_modify temp tbig
|
||||||
|
WARNING: Temperature for thermo pressure is not for group all (src/thermo.cpp:530)
|
||||||
|
thermo 1000
|
||||||
|
|
||||||
|
#dump 1 all atom 500 dump.dimer.mp
|
||||||
|
|
||||||
|
#dump 1 all image 500 image.*.jpg type type zoom 1.6
|
||||||
|
#dump_modify 1 pad 6 adiam 1 1 adiam 2 0.2
|
||||||
|
|
||||||
|
run 25000
|
||||||
|
|
||||||
|
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||||
|
|
||||||
|
Your simulation uses code contributions which should be cited:
|
||||||
|
|
||||||
|
- neighbor multi command: doi:10.1016/j.cpc.2008.03.005, doi:10.1007/s40571-020-00361-2
|
||||||
|
|
||||||
|
@Article{Intveld08,
|
||||||
|
author = {in 't Veld, P. J. and S. J.~Plimpton and G. S. Grest},
|
||||||
|
title = {Accurate and Efficient Methods for Modeling Colloidal
|
||||||
|
Mixtures in an Explicit Solvent using Molecular Dynamics},
|
||||||
|
journal = {Comput.\ Phys.\ Commut.},
|
||||||
|
year = 2008,
|
||||||
|
volume = 179,
|
||||||
|
pages = {320--329}
|
||||||
|
}
|
||||||
|
|
||||||
|
@article{Shire2020,
|
||||||
|
author = {Shire, Tom and Hanley, Kevin J. and Stratford, Kevin},
|
||||||
|
title = {{DEM} Simulations of Polydisperse Media: Efficient Contact
|
||||||
|
Detection Applied to Investigate the Quasi-Static Limit},
|
||||||
|
journal = {Computational Particle Mechanics},
|
||||||
|
year = {2020}
|
||||||
|
@article{Monti2022,
|
||||||
|
author = {Monti, Joseph M. and Clemmer, Joel T. and Srivastava,
|
||||||
|
Ishan and Silbert, Leonardo E. and Grest, Gary S.
|
||||||
|
and Lechman, Jeremy B.},
|
||||||
|
title = {Large-scale frictionless jamming with power-law particle
|
||||||
|
size distributions},
|
||||||
|
journal = {Phys. Rev. E},
|
||||||
|
volume = {106}
|
||||||
|
issue = {3}
|
||||||
|
year = {2022}
|
||||||
|
}
|
||||||
|
|
||||||
|
- fix srd command: doi:10.1063/1.3419070
|
||||||
|
|
||||||
|
@Article{Petersen10,
|
||||||
|
author = {M. K. Petersen and J. B. Lechman and S. J. Plimpton and
|
||||||
|
G. S. Grest and in 't Veld, P. J. and P. R. Schunk},
|
||||||
|
title = {Mesoscale Hydrodynamics via Stochastic Rotation
|
||||||
|
Dynamics: Comparison with {L}ennard-{J}ones Fluid},
|
||||||
|
journal = {J.~Chem.\ Phys.},
|
||||||
|
year = 2010,
|
||||||
|
volume = 132,
|
||||||
|
pages = 174106
|
||||||
|
}
|
||||||
|
|
||||||
|
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||||
|
|
||||||
|
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
|
||||||
|
SRD info:
|
||||||
|
SRD/big particles = 17153 200
|
||||||
|
big particle diameter max/min = 1 1
|
||||||
|
SRD temperature & lamda = 1 0.063245553
|
||||||
|
SRD max distance & max velocity = 0.25298221 12.649111
|
||||||
|
SRD grid counts: 75 75 1
|
||||||
|
SRD grid size: request, actual (xyz) = 0.25, 0.24911072 0.24911072 1
|
||||||
|
SRD per actual grid cell = 5.544404
|
||||||
|
SRD viscosity = 0.23553122
|
||||||
|
big/SRD mass density ratio = 0.14250828
|
||||||
|
# of rescaled SRD velocities = 0
|
||||||
|
ave/max small velocity = 4.191188 7.6900178
|
||||||
|
ave/max big velocity = 2.6813242 7.1846103
|
||||||
|
Neighbor list info ...
|
||||||
|
update: every = 1 steps, delay = 0 steps, check = yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 2.8
|
||||||
|
ghost atom cutoff = 2.8
|
||||||
|
binsize = 18.683304, bins = 1 1 1
|
||||||
|
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||||
|
(1) pair lj/cut, perpetual
|
||||||
|
attributes: half, newton on
|
||||||
|
pair build: half/multi/atomonly/newton
|
||||||
|
stencil: half/multi/2d
|
||||||
|
bin: multi
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 13.2 | 13.21 | 13.22 Mbytes
|
||||||
|
Step Temp f_2[8] TotEng v_pebig v_ebig Press f_2[1] f_2[2] f_2[3] f_2[4] f_2[5] f_2[6] f_2[7] f_2[8] f_2[9] f_2[10] f_2[11] f_2[12]
|
||||||
|
0 6.8392143 0 0.297476 20.71529 25.810505 4.0555746 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
1000 1.2739082 3360 0.24704957 20.486195 21.435256 3.6693454 13497 46 46 2 816 28224 5625 3360 1.1564821 0 54 0
|
||||||
|
2000 1.3843858 3380 0.24759985 20.451634 21.483001 5.2299666 13363 70 70 0 1671 28224 5625 3380 1.170199 0 54 0
|
||||||
|
3000 1.3942166 3373 0.24823326 20.499268 21.537959 7.7943821 13214 59 59 2 2600 28224 5625 3373 1.1539593 0 54 0
|
||||||
|
4000 1.6387342 3366 0.24966206 20.441071 21.661928 4.3859226 13280 49 49 2 3568 28224 5625 3366 1.176006 0 54 0
|
||||||
|
5000 1.8677297 3388 0.25278915 20.541792 21.933251 5.9053775 13238 68 68 2 4553 28224 5625 3388 1.1728833 0 54 0
|
||||||
|
6000 1.8884914 3372 0.25216944 20.472555 21.879481 7.5864922 13142 62 62 1 5645 28224 5625 3372 1.1733967 0 54 0
|
||||||
|
7000 2.0575519 3387 0.25374609 20.483403 22.016279 6.9842803 13101 41 41 0 6805 28224 5625 3387 1.1503024 0 54 0
|
||||||
|
8000 1.9800593 3373 0.252975 20.474232 21.949376 8.3493951 13176 63 64 1 8166 28224 5625 3373 1.1621339 0 67 0
|
||||||
|
9000 2.2288114 3403 0.25526729 20.487802 22.148267 6.7676677 12866 61 61 1 9360 28224 5625 3403 1.1446891 0 67 0
|
||||||
|
10000 2.4854456 3339 0.25713924 20.45903 22.310687 9.3781009 12692 65 65 1 10680 28224 5625 3339 1.1417733 0 67 0
|
||||||
|
11000 2.5850677 3335 0.25820147 20.476975 22.402851 9.9421534 12954 70 70 2 11964 28224 5625 3335 1.1497985 0 67 0
|
||||||
|
12000 2.5087529 3358 0.25746572 20.469992 22.339013 9.9566718 12959 58 58 0 13462 28224 5625 3358 1.1365643 0 98 0
|
||||||
|
13000 2.5480838 3371 0.25761214 20.453395 22.351717 8.6628089 13142 54 54 3 14985 28224 5625 3371 1.1510123 0 98 0
|
||||||
|
14000 2.946645 3384 0.26176446 20.516743 22.711994 8.5668798 12579 53 53 0 16336 28224 5625 3384 1.1546089 0 98 0
|
||||||
|
15000 4.025292 3338 0.27188564 20.591315 23.590157 9.8722859 12824 50 50 15 18115 28224 5625 3338 1.164518 0 122 0
|
||||||
|
16000 2.2744945 3376 0.25598709 20.516221 22.21072 9.1890215 13020 52 52 0 19689 28224 5625 3376 1.1439385 0 122 0
|
||||||
|
17000 2.3857021 3353 0.25662954 20.489114 22.266462 10.24809 12776 51 51 0 21158 28224 5625 3353 1.1435041 0 122 0
|
||||||
|
18000 2.9678193 3330 0.26255063 20.56918 22.780206 8.6799225 12810 49 49 2 23066 28224 5625 3330 1.1567395 0 133 0
|
||||||
|
19000 2.7464034 3368 0.2613984 20.634162 22.680232 9.5420188 12746 47 47 3 24675 28224 5625 3368 1.1426658 0 133 0
|
||||||
|
20000 2.8228684 3367 0.26137363 20.575046 22.678083 8.0865322 12886 51 51 0 26119 28224 5625 3367 1.1484398 0 133 0
|
||||||
|
21000 2.8903033 3389 0.26173565 20.556218 22.709494 11.038294 13152 41 41 1 27685 28224 5625 3389 1.1398936 0 133 0
|
||||||
|
22000 2.8279828 3331 0.26058759 20.503035 22.609882 8.3647396 12895 57 57 1 29333 28224 5625 3331 1.1551348 0 133 0
|
||||||
|
23000 2.9320035 3376 0.26178899 20.529779 22.714121 7.1841698 13077 54 54 1 30908 28224 5625 3376 1.1453809 0 133 0
|
||||||
|
24000 2.8508425 3366 0.26104722 20.525884 22.649762 10.680819 13019 58 58 4 32831 28224 5625 3366 1.1391852 0 154 0
|
||||||
|
25000 2.7878254 3333 0.25961 20.448132 22.525062 11.149479 12960 57 57 1 34494 28224 5625 3333 1.172964 0 154 0
|
||||||
|
Loop time of 6.5335 on 4 procs for 25000 steps with 17353 atoms
|
||||||
|
|
||||||
|
Performance: 330603.792 tau/day, 3826.433 timesteps/s, 66.400 Matom-step/s
|
||||||
|
99.3% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
|
MPI task timing breakdown:
|
||||||
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Pair | 0.097519 | 0.10401 | 0.10744 | 1.2 | 1.59
|
||||||
|
Neigh | 0.027038 | 0.028067 | 0.028678 | 0.4 | 0.43
|
||||||
|
Comm | 0.39354 | 0.39697 | 0.40246 | 0.6 | 6.08
|
||||||
|
Output | 0.0013442 | 0.0014045 | 0.0015827 | 0.3 | 0.02
|
||||||
|
Modify | 5.8667 | 5.8905 | 5.9143 | 0.8 | 90.16
|
||||||
|
Other | | 0.1126 | | | 1.72
|
||||||
|
|
||||||
|
Nlocal: 4338.25 ave 4476 max 4199 min
|
||||||
|
Histogram: 1 1 0 0 0 0 0 0 1 1
|
||||||
|
Nghost: 78.5 ave 83 max 75 min
|
||||||
|
Histogram: 1 0 1 0 0 1 0 0 0 1
|
||||||
|
Neighs: 328 ave 352 max 309 min
|
||||||
|
Histogram: 1 0 0 2 0 0 0 0 0 1
|
||||||
|
|
||||||
|
Total # of neighbors = 1312
|
||||||
|
Ave neighs/atom = 0.075606523
|
||||||
|
Neighbor list builds = 1274
|
||||||
|
Dangerous builds = 0
|
||||||
|
Total wall time: 0:00:06
|
||||||
@ -116,4 +116,4 @@ thermo 1000
|
|||||||
#dump 2 all image 1000 image.*.jpg type type zoom 1.6
|
#dump 2 all image 1000 image.*.jpg type type zoom 1.6
|
||||||
#dump_modify 2 pad 6 adiam 1 1 adiam 2 0.2
|
#dump_modify 2 pad 6 adiam 1 1 adiam 2 0.2
|
||||||
|
|
||||||
run 100000
|
run 10000
|
||||||
|
|||||||
@ -117,4 +117,4 @@ thermo 1000
|
|||||||
#dump 1 all image 500 image.*.jpg type type zoom 1.6
|
#dump 1 all image 500 image.*.jpg type type zoom 1.6
|
||||||
#dump_modify 1 pad 6 adiam 1 1 adiam 2 0.2
|
#dump_modify 1 pad 6 adiam 1 1 adiam 2 0.2
|
||||||
|
|
||||||
run 50000
|
run 10000
|
||||||
|
|||||||
@ -1,190 +0,0 @@
|
|||||||
LAMMPS (1 Feb 2014)
|
|
||||||
# SRD diffusion demo - ellipsoids
|
|
||||||
|
|
||||||
units lj
|
|
||||||
atom_style ellipsoid
|
|
||||||
atom_modify first big
|
|
||||||
dimension 2
|
|
||||||
|
|
||||||
# create big ellipsoidal particles
|
|
||||||
|
|
||||||
lattice sq 0.14
|
|
||||||
Lattice spacing in x,y,z = 2.67261 2.67261 2.67261
|
|
||||||
region box block 0 10 0 10 -0.5 0.5
|
|
||||||
create_box 2 box
|
|
||||||
Created orthogonal box = (0 0 -1.33631) to (26.7261 26.7261 1.33631)
|
|
||||||
4 by 2 by 1 MPI processor grid
|
|
||||||
create_atoms 1 region box
|
|
||||||
Created 100 atoms
|
|
||||||
|
|
||||||
set type 1 mass 1.0
|
|
||||||
100 settings made for mass
|
|
||||||
set type 1 shape 3.0 1.0 1.0
|
|
||||||
100 settings made for shape
|
|
||||||
group big type 1
|
|
||||||
100 atoms in group big
|
|
||||||
set group big quat/random 29898
|
|
||||||
100 settings made for quat/random
|
|
||||||
|
|
||||||
velocity big create 1.44 87287 loop geom
|
|
||||||
|
|
||||||
# equilibrate big particles
|
|
||||||
|
|
||||||
pair_style gayberne 1.0 3.0 1.0 4.0
|
|
||||||
pair_coeff 1 1 1.0 1.0 1 1 1 1 1 1
|
|
||||||
pair_coeff 1 2 1.0 1.0 1 1 1 1 1 1 0.0
|
|
||||||
pair_coeff 2 2 1.0 1.0 1 1 1 1 1 1 0.0
|
|
||||||
|
|
||||||
neighbor 0.3 bin
|
|
||||||
neigh_modify delay 0 every 1 check yes
|
|
||||||
|
|
||||||
fix 1 big nve/asphere
|
|
||||||
fix 2 all enforce2d
|
|
||||||
|
|
||||||
compute rot big temp/asphere
|
|
||||||
|
|
||||||
#dump 1 all custom 10 dump.ellipsoid.equil id type x y z # quatw quati quatj quatk
|
|
||||||
|
|
||||||
thermo_style custom step temp c_rot epair etotal press
|
|
||||||
thermo 100
|
|
||||||
|
|
||||||
run 1000
|
|
||||||
Memory usage per processor = 3.31932 Mbytes
|
|
||||||
Step Temp rot E_pair TotEng Press
|
|
||||||
0 1.44 0.95677852 2.7038078 4.1294078 10.518912
|
|
||||||
100 2.5524145 2.801098 -0.37027046 2.1566199 0.84703874
|
|
||||||
200 2.6266386 2.7938164 -0.35322565 2.2471465 1.004886
|
|
||||||
300 2.9987557 2.9499545 -0.58917376 2.3795944 0.73081788
|
|
||||||
400 2.8557446 2.8208128 -0.39904801 2.4281391 0.91808964
|
|
||||||
500 2.4399047 2.8255746 -0.40056447 2.0149412 1.0538908
|
|
||||||
600 2.854258 2.9166789 -0.53424483 2.2914706 0.8117508
|
|
||||||
700 2.9593679 2.8231211 -0.40051714 2.5292571 1.1630889
|
|
||||||
800 2.7632971 2.9060854 -0.52075339 2.2149107 0.77106814
|
|
||||||
900 2.9905601 2.8869672 -0.49099457 2.4696599 0.69616725
|
|
||||||
1000 2.8470146 2.9004954 -0.51281252 2.305732 0.68820531
|
|
||||||
Loop time of 0.0485955 on 8 procs for 1000 steps with 100 atoms
|
|
||||||
|
|
||||||
Pair time (%) = 0.0201517 (41.4682)
|
|
||||||
Neigh time (%) = 0.000492364 (1.01319)
|
|
||||||
Comm time (%) = 0.0191883 (39.4858)
|
|
||||||
Outpt time (%) = 0.000273198 (0.562188)
|
|
||||||
Other time (%) = 0.00848994 (17.4706)
|
|
||||||
|
|
||||||
Nlocal: 12.5 ave 16 max 8 min
|
|
||||||
Histogram: 1 1 0 0 0 3 0 0 1 2
|
|
||||||
Nghost: 34.125 ave 42 max 28 min
|
|
||||||
Histogram: 1 0 2 2 0 1 0 1 0 1
|
|
||||||
Neighs: 46.125 ave 65 max 20 min
|
|
||||||
Histogram: 1 0 1 0 1 2 0 0 1 2
|
|
||||||
|
|
||||||
Total # of neighbors = 369
|
|
||||||
Ave neighs/atom = 3.69
|
|
||||||
Neighbor list builds = 174
|
|
||||||
Dangerous builds = 0
|
|
||||||
|
|
||||||
#undump 1
|
|
||||||
unfix 1
|
|
||||||
unfix 2
|
|
||||||
|
|
||||||
# add small particles as hi density lattice
|
|
||||||
|
|
||||||
region plane block INF INF INF INF -0.001 0.001 units box
|
|
||||||
lattice sq 120.0
|
|
||||||
Lattice spacing in x,y,z = 0.0912871 0.0912871 0.0912871
|
|
||||||
create_atoms 2 region plane
|
|
||||||
Created 85849 atoms
|
|
||||||
|
|
||||||
set type 2 mass 0.01
|
|
||||||
85849 settings made for mass
|
|
||||||
group small type 2
|
|
||||||
85849 atoms in group small
|
|
||||||
velocity small create 1.0 593849 loop geom
|
|
||||||
|
|
||||||
# delete overlaps
|
|
||||||
# must set 1-2 cutoff to non-zero value
|
|
||||||
|
|
||||||
pair_style lj/cut 2.5
|
|
||||||
pair_coeff 1 1 1.0 1.0
|
|
||||||
pair_coeff 2 2 0.0 1.0 0.0
|
|
||||||
pair_coeff 1 2 0.0 1.0 2.0
|
|
||||||
|
|
||||||
neigh_modify one 10000
|
|
||||||
|
|
||||||
delete_atoms overlap 1.6 small big
|
|
||||||
Deleted 71060 atoms, new total = 14889
|
|
||||||
|
|
||||||
# SRD run
|
|
||||||
|
|
||||||
reset_timestep 0
|
|
||||||
|
|
||||||
neighbor 0.3 bin
|
|
||||||
neigh_modify delay 0 every 1 check yes
|
|
||||||
|
|
||||||
communicate multi group big vel yes
|
|
||||||
neigh_modify include big
|
|
||||||
|
|
||||||
# no pairwise interactions with small particles
|
|
||||||
|
|
||||||
pair_style gayberne 1.0 3.0 1.0 4.0
|
|
||||||
pair_coeff 1 1 1.0 1.0 1 1 1 1 1 1
|
|
||||||
pair_coeff 1 2 1.0 1.0 1 1 1 1 1 1 0.0
|
|
||||||
pair_coeff 2 2 1.0 1.0 1 1 1 1 1 1 0.0
|
|
||||||
|
|
||||||
# use fix SRD to push small particles out from inside big ones
|
|
||||||
# if comment out, big particles won't see SRD particles
|
|
||||||
|
|
||||||
timestep 0.0005
|
|
||||||
|
|
||||||
fix 1 big nve/asphere
|
|
||||||
fix 2 small srd 20 big 1.0 0.25 49894 shift yes 54979 collision noslip search 0.2 inside ignore exact no bounce 50
|
|
||||||
fix 3 all enforce2d
|
|
||||||
|
|
||||||
# diagnostics
|
|
||||||
|
|
||||||
compute tbig big temp/asphere
|
|
||||||
variable pebig equal pe*atoms/count(big)
|
|
||||||
variable ebig equal etotal*atoms/count(big)
|
|
||||||
thermo_style custom step temp c_rot f_2[9] etotal v_pebig v_ebig press f_2[1] f_2[2] f_2[3] f_2[4] f_2[5] f_2[6] f_2[7] f_2[8] f_2[9] f_2[10] f_2[11] f_2[12]
|
|
||||||
|
|
||||||
thermo_modify temp tbig
|
|
||||||
WARNING: Temperature for thermo pressure is not for group all (../thermo.cpp:439)
|
|
||||||
thermo 1000
|
|
||||||
|
|
||||||
#dump 1 all custom 1000 dump.ellipsoid id type x y z # quatw quati quatj quatk
|
|
||||||
|
|
||||||
#dump 1 all image 1000 image.*.jpg type type zoom 1.6
|
|
||||||
#dump_modify 1 pad 6 adiam 1 1 adiam 2 0.2
|
|
||||||
|
|
||||||
run 100000
|
|
||||||
SRD info:
|
|
||||||
SRD/big particles = 14789 100
|
|
||||||
big particle diameter max/min = 3 1
|
|
||||||
SRD temperature & lamda = 1 0.1
|
|
||||||
SRD max distance & max velocity = 0.4 40
|
|
||||||
SRD grid counts: 107 107 1
|
|
||||||
SRD grid size: request, actual (xyz) = 0.25, 0.249777 0.249777 2.67261
|
|
||||||
SRD per actual grid cell = 1.92757
|
|
||||||
SRD viscosity = 0.688101
|
|
||||||
big/SRD mass density ratio = 1.37367
|
|
||||||
# of rescaled SRD velocities = 0
|
|
||||||
ave/max small velocity = 13.3093 24.3359
|
|
||||||
ave/max big velocity = 2.08028 5.05671
|
|
||||||
Memory usage per processor = 10.9077 Mbytes
|
|
||||||
Step Temp rot 2[9] TotEng pebig ebig Press 2[1] 2[2] 2[3] 2[4] 2[5] 2[6] 2[7] 2[8] 2[9] 2[10] 2[11] 2[12]
|
|
||||||
0 2.9004954 2.9004954 0 0.025582146 -0.51281252 3.8089257 0.89865242 0 0 0 0 0 0 0 0 0 0 0 0
|
|
||||||
1000 3.3106106 3.3106106 1.0635866 0.029956176 -0.47263474 4.4601751 1.8111247 14000 35 160 0 224946 98040 11449 4182 1.0635866 1047 50 0
|
|
||||||
2000 2.2814487 2.2814487 1.2237286 0.017972589 -0.72341981 2.6759388 1.3454977 15318 47 276 0 528340 98040 11449 4136 1.2237286 2383 50 0
|
|
||||||
3000 4.2476485 4.2476485 1.2992612 0.038526442 -0.59279435 5.7362019 1.6896403 16506 63 410 0 830594 98040 11449 4172 1.2992612 3834 50 0
|
|
||||||
4000 2.4798681 2.4798681 1.3453264 0.022837826 -0.29467953 3.4003239 2.0765724 17201 51 403 0 1185573 98040 11449 4233 1.3453264 5456 50 0
|
|
||||||
5000 3.0852629 3.0852629 1.3915904 0.02760985 -0.48621111 4.1108305 1.2676357 17540 61 591 0 1594856 98040 11449 4306 1.3915904 7419 50 0
|
|
||||||
6000 6.7201122 6.7201122 1.3649223 0.064627842 -0.39052776 9.6224394 2.5524159 17997 59 564 0 2010250 98040 11449 4213 1.3649223 9280 50 0
|
|
||||||
7000 2.720343 2.720343 1.3909677 0.024282471 -0.43789405 3.6154171 1.5288376 17922 64 342 0 2392388 98040 11449 4228 1.3909677 10947 50 0
|
|
||||||
8000 1.9181626 1.9181626 1.3514483 0.014305579 -0.72810462 2.1299577 0.89423917 18188 42 260 0 2751626 98040 11449 4236 1.3514483 12556 50 0
|
|
||||||
9000 2.9090186 2.9090186 1.3688847 0.02558926 -0.52445278 3.8099849 1.1756318 18536 63 440 0 3112508 98040 11449 4227 1.3688847 14164 50 0
|
|
||||||
10000 1.9647403 1.9647403 1.3979066 0.015375037 -0.63827389 2.2891892 0.65597214 18817 60 466 0 3501352 98040 11449 4257 1.3979066 16016 50 0
|
|
||||||
11000 1.9989051 1.9989051 1.3872043 0.016191243 -0.56765443 2.4107142 0.80582429 18756 58 767 0 3856028 98040 11449 4254 1.3872043 17611 50 0
|
|
||||||
12000 1.7538755 1.7538755 1.4594883 0.013930543 -0.53915598 2.0741185 1.0563875 18602 58 335 0 4248666 98040 11449 4251 1.4594883 19350 50 0
|
|
||||||
13000 13.730871 13.730871 1.4864545 0.13447802 -0.43656501 20.022433 3.6701166 19144 74 681 0 4708523 98040 11449 4104 1.4864545 21589 50 0
|
|
||||||
14000 5.1078782 5.1078782 1.3637807 0.049721182 -0.20775172 7.4029868 2.559935 18494 65 713 0 5139143 98040 11449 4167 1.3637807 23555 50 0
|
|
||||||
15000 2.5843962 2.5843962 1.3450247 0.022294373 -0.53134114 3.3194092 1.1069147 18489 52 260 0 5489252 98040 11449 4262 1.3450247 25209 50 0
|
|
||||||
ERROR: Lost atoms: original 14889 current 14819 (../thermo.cpp:392)
|
|
||||||
@ -1,247 +0,0 @@
|
|||||||
LAMMPS (1 Feb 2014)
|
|
||||||
# SRD viscosity demo - ellipsoids
|
|
||||||
|
|
||||||
units lj
|
|
||||||
atom_style ellipsoid
|
|
||||||
atom_modify first big
|
|
||||||
dimension 2
|
|
||||||
|
|
||||||
# create big ellipsoidal particles
|
|
||||||
|
|
||||||
lattice sq 0.14
|
|
||||||
Lattice spacing in x,y,z = 2.67261 2.67261 2.67261
|
|
||||||
region box block 0 10 0 10 -0.5 0.5
|
|
||||||
create_box 2 box
|
|
||||||
Created orthogonal box = (0 0 -1.33631) to (26.7261 26.7261 1.33631)
|
|
||||||
4 by 2 by 1 MPI processor grid
|
|
||||||
create_atoms 1 region box
|
|
||||||
Created 100 atoms
|
|
||||||
|
|
||||||
set type 1 mass 1.0
|
|
||||||
100 settings made for mass
|
|
||||||
set type 1 shape 3.0 1.0 1.0
|
|
||||||
100 settings made for shape
|
|
||||||
group big type 1
|
|
||||||
100 atoms in group big
|
|
||||||
set group big quat/random 29898
|
|
||||||
100 settings made for quat/random
|
|
||||||
|
|
||||||
velocity big create 1.44 87287 loop geom
|
|
||||||
|
|
||||||
# equilibrate big particles
|
|
||||||
|
|
||||||
pair_style gayberne 1.0 3.0 1.0 4.0
|
|
||||||
pair_coeff 1 1 1.0 1.0 1 1 1 1 1 1
|
|
||||||
pair_coeff 1 2 1.0 1.0 1 1 1 1 1 1 0.0
|
|
||||||
pair_coeff 2 2 1.0 1.0 1 1 1 1 1 1 0.0
|
|
||||||
|
|
||||||
neighbor 0.3 bin
|
|
||||||
neigh_modify delay 0 every 1 check yes
|
|
||||||
|
|
||||||
fix 1 big nve/asphere
|
|
||||||
fix 2 all enforce2d
|
|
||||||
|
|
||||||
compute rot big temp/asphere
|
|
||||||
|
|
||||||
#dump 1 all custom 10 dump.ellipsoid.equil id type x y z # quatw quati quatj quatk
|
|
||||||
|
|
||||||
thermo_style custom step temp c_rot epair etotal press
|
|
||||||
thermo 100
|
|
||||||
|
|
||||||
run 1000
|
|
||||||
Memory usage per processor = 3.31932 Mbytes
|
|
||||||
Step Temp rot E_pair TotEng Press
|
|
||||||
0 1.44 0.95677852 2.7038078 4.1294078 10.518912
|
|
||||||
100 2.5524145 2.801098 -0.37027046 2.1566199 0.84703874
|
|
||||||
200 2.6266386 2.7938164 -0.35322565 2.2471465 1.004886
|
|
||||||
300 2.9987557 2.9499545 -0.58917376 2.3795944 0.73081788
|
|
||||||
400 2.8557446 2.8208128 -0.39904801 2.4281391 0.91808964
|
|
||||||
500 2.4399047 2.8255746 -0.40056447 2.0149412 1.0538908
|
|
||||||
600 2.854258 2.9166789 -0.53424483 2.2914706 0.8117508
|
|
||||||
700 2.9593679 2.8231211 -0.40051714 2.5292571 1.1630889
|
|
||||||
800 2.7632971 2.9060854 -0.52075339 2.2149107 0.77106814
|
|
||||||
900 2.9905601 2.8869672 -0.49099457 2.4696599 0.69616725
|
|
||||||
1000 2.8470146 2.9004954 -0.51281252 2.305732 0.68820531
|
|
||||||
Loop time of 0.0581853 on 8 procs for 1000 steps with 100 atoms
|
|
||||||
|
|
||||||
Pair time (%) = 0.0202803 (34.8546)
|
|
||||||
Neigh time (%) = 0.000480682 (0.826122)
|
|
||||||
Comm time (%) = 0.0264942 (45.5342)
|
|
||||||
Outpt time (%) = 0.000326395 (0.560958)
|
|
||||||
Other time (%) = 0.0106037 (18.2241)
|
|
||||||
|
|
||||||
Nlocal: 12.5 ave 16 max 8 min
|
|
||||||
Histogram: 1 1 0 0 0 3 0 0 1 2
|
|
||||||
Nghost: 34.125 ave 42 max 28 min
|
|
||||||
Histogram: 1 0 2 2 0 1 0 1 0 1
|
|
||||||
Neighs: 46.125 ave 65 max 20 min
|
|
||||||
Histogram: 1 0 1 0 1 2 0 0 1 2
|
|
||||||
|
|
||||||
Total # of neighbors = 369
|
|
||||||
Ave neighs/atom = 3.69
|
|
||||||
Neighbor list builds = 174
|
|
||||||
Dangerous builds = 0
|
|
||||||
|
|
||||||
#undump 1
|
|
||||||
unfix 1
|
|
||||||
unfix 2
|
|
||||||
|
|
||||||
# add small particles as hi density lattice
|
|
||||||
|
|
||||||
region plane block INF INF INF INF -0.001 0.001 units box
|
|
||||||
lattice sq 120.0
|
|
||||||
Lattice spacing in x,y,z = 0.0912871 0.0912871 0.0912871
|
|
||||||
create_atoms 2 region plane
|
|
||||||
Created 85849 atoms
|
|
||||||
|
|
||||||
set type 2 mass 0.01
|
|
||||||
85849 settings made for mass
|
|
||||||
group small type 2
|
|
||||||
85849 atoms in group small
|
|
||||||
velocity small create 1.0 593849 loop geom
|
|
||||||
|
|
||||||
# delete overlaps
|
|
||||||
# must set 1-2 cutoff to non-zero value
|
|
||||||
|
|
||||||
pair_style lj/cut 2.5
|
|
||||||
pair_coeff 1 1 1.0 1.0
|
|
||||||
pair_coeff 2 2 0.0 1.0 0.0
|
|
||||||
pair_coeff 1 2 0.0 1.0 2.0
|
|
||||||
|
|
||||||
neigh_modify one 10000
|
|
||||||
|
|
||||||
delete_atoms overlap 1.6 small big
|
|
||||||
Deleted 71060 atoms, new total = 14889
|
|
||||||
|
|
||||||
# SRD run
|
|
||||||
|
|
||||||
reset_timestep 0
|
|
||||||
|
|
||||||
neighbor 0.3 bin
|
|
||||||
neigh_modify delay 0 every 1 check yes
|
|
||||||
|
|
||||||
communicate multi group big vel yes
|
|
||||||
neigh_modify include big
|
|
||||||
|
|
||||||
# no pairwise interactions with small particles
|
|
||||||
|
|
||||||
pair_style gayberne 1.0 3.0 1.0 4.0
|
|
||||||
pair_coeff 1 1 1.0 1.0 1 1 1 1 1 1
|
|
||||||
pair_coeff 1 2 1.0 1.0 1 1 1 1 1 1 0.0
|
|
||||||
pair_coeff 2 2 1.0 1.0 1 1 1 1 1 1 0.0
|
|
||||||
|
|
||||||
# use fix SRD to push small particles out from inside big ones
|
|
||||||
# if comment out, big particles won't see SRD particles
|
|
||||||
|
|
||||||
timestep 0.0005
|
|
||||||
|
|
||||||
fix 1 big nve/asphere
|
|
||||||
fix 2 small srd 20 big 1.0 0.25 49894 shift yes 54979 collision noslip search 0.2 inside ignore exact no bounce 50
|
|
||||||
fix 3 small viscosity 20 x y 50
|
|
||||||
fix 4 all enforce2d
|
|
||||||
|
|
||||||
# diagnostics
|
|
||||||
|
|
||||||
compute tbig big temp/asphere
|
|
||||||
variable pebig equal pe*atoms/count(big)
|
|
||||||
variable ebig equal etotal*atoms/count(big)
|
|
||||||
thermo_style custom step temp c_rot f_2[9] etotal v_pebig v_ebig press f_2[1] f_2[2] f_2[3] f_2[4] f_2[5] f_2[6] f_2[7] f_2[8] f_2[9] f_2[10] f_2[11] f_2[12]
|
|
||||||
|
|
||||||
thermo_modify temp tbig
|
|
||||||
WARNING: Temperature for thermo pressure is not for group all (../thermo.cpp:439)
|
|
||||||
thermo 1000
|
|
||||||
|
|
||||||
#dump 1 all custom 500 dump.ellipsoid.mp id type x y z # quatw quati quatj quatk
|
|
||||||
|
|
||||||
#dump 1 all image 500 image.*.jpg type type zoom 1.6
|
|
||||||
#dump_modify 1 pad 6 adiam 1 1 adiam 2 0.2
|
|
||||||
|
|
||||||
run 50000
|
|
||||||
SRD info:
|
|
||||||
SRD/big particles = 14789 100
|
|
||||||
big particle diameter max/min = 3 1
|
|
||||||
SRD temperature & lamda = 1 0.1
|
|
||||||
SRD max distance & max velocity = 0.4 40
|
|
||||||
SRD grid counts: 107 107 1
|
|
||||||
SRD grid size: request, actual (xyz) = 0.25, 0.249777 0.249777 2.67261
|
|
||||||
SRD per actual grid cell = 1.92757
|
|
||||||
SRD viscosity = 0.688101
|
|
||||||
big/SRD mass density ratio = 1.37367
|
|
||||||
# of rescaled SRD velocities = 0
|
|
||||||
ave/max small velocity = 13.3093 24.3359
|
|
||||||
ave/max big velocity = 2.08028 5.05671
|
|
||||||
Memory usage per processor = 10.9077 Mbytes
|
|
||||||
Step Temp rot 2[9] TotEng pebig ebig Press 2[1] 2[2] 2[3] 2[4] 2[5] 2[6] 2[7] 2[8] 2[9] 2[10] 2[11] 2[12]
|
|
||||||
0 2.9004954 2.9004954 0 0.025582146 -0.51281252 3.8089257 0.89865242 0 0 0 0 0 0 0 0 0 0 0 0
|
|
||||||
1000 3.1663129 3.1663129 1.0612788 0.028825811 -0.42593131 4.291875 1.8917479 14347 45 319 0 247730 98040 11449 4128 1.0612788 1160 50 0
|
|
||||||
2000 2.3854865 2.3854865 1.2711805 0.019550917 -0.6434388 2.910936 1.4342405 15199 41 151 0 526468 98040 11449 4191 1.2711805 2321 50 0
|
|
||||||
3000 2.6796789 2.6796789 1.2494843 0.023573743 -0.48282696 3.5098946 1.6090734 16441 52 230 0 827117 98040 11449 4203 1.2494843 3659 50 0
|
|
||||||
4000 2.7945661 2.7945661 1.3021617 0.024256529 -0.5523488 3.6115547 1.2702377 16935 52 474 0 1127934 98040 11449 4215 1.3021617 4966 50 0
|
|
||||||
5000 2.7061959 2.7061959 1.338483 0.023736966 -0.498035 3.5341969 1.2801942 17578 49 277 0 1435089 98040 11449 4261 1.338483 6351 50 0
|
|
||||||
6000 3.2698703 3.2698703 1.3285507 0.029840303 -0.42918398 4.4429227 1.4528039 17882 63 228 0 1776449 98040 11449 4252 1.3285507 7935 50 0
|
|
||||||
7000 3.9340641 3.9340641 1.3823898 0.035368008 -0.59581277 5.2659427 1.1321242 18069 49 462 0 2090062 98040 11449 4265 1.3823898 9343 50 0
|
|
||||||
8000 3.6037728 3.6037728 1.4150583 0.032400676 -0.54548483 4.8241367 1.2091317 18275 56 369 0 2486575 98040 11449 4229 1.4150583 11121 50 0
|
|
||||||
9000 105.15275 105.15275 1.3630934 1.0504642 -0.27397996 156.40361 23.278069 18139 107 732 0 2861341 98040 11449 4217 1.3630934 12781 50 0
|
|
||||||
10000 3.5224307 3.5224307 1.3897056 0.0324883 -0.4112387 4.837183 1.6093705 19100 61 347 0 3248400 98040 11449 4204 1.3897056 14424 50 0
|
|
||||||
11000 4.1949959 4.1949959 1.421272 0.03853305 -0.51335814 5.7371858 1.3586332 18670 52 590 0 3722041 98040 11449 4263 1.421272 16373 50 0
|
|
||||||
12000 3.1692742 3.1692742 1.3999982 0.028463927 -0.48422456 4.237994 1.1713046 18787 61 323 0 4117517 98040 11449 4202 1.3999982 18125 50 0
|
|
||||||
13000 3.5868757 3.5868757 1.3193021 0.032298734 -0.53548629 4.8089585 1.0664078 18572 67 224 0 4417636 98040 11449 4277 1.3193021 19546 50 0
|
|
||||||
14000 3.708681 3.708681 1.317797 0.033355183 -0.55968141 4.9662533 1.3959088 18284 67 207 0 4675359 98040 11449 4253 1.317797 20631 50 0
|
|
||||||
15000 3.7410393 3.7410393 1.4017441 0.033377852 -0.60452027 4.9696283 1.2506767 18385 51 189 0 4956150 98040 11449 4275 1.4017441 21763 50 0
|
|
||||||
16000 5.3298522 5.3298522 1.3456075 0.049673767 -0.54555257 7.3959272 1.841432 18693 63 549 0 5301393 98040 11449 4196 1.3456075 23216 50 0
|
|
||||||
17000 3.7425275 3.7425275 1.321554 0.036608704 -0.12569607 5.4506699 2.3767421 18377 68 526 0 5637038 98040 11449 4261 1.321554 24829 50 0
|
|
||||||
18000 6.1904009 6.1904009 1.3905006 0.05857936 -0.50181651 8.7218809 1.7936734 18422 63 522 0 6049781 98040 11449 4280 1.3905006 26646 50 0
|
|
||||||
19000 3.1770374 3.1770374 1.3694174 0.028096405 -0.55051202 4.1832737 0.98036773 18342 54 343 0 6383253 98040 11449 4239 1.3694174 28038 50 0
|
|
||||||
20000 3.5793112 3.5793112 1.3160294 0.031413769 -0.65597761 4.677196 1.0713128 18739 60 272 0 6692090 98040 11449 4262 1.3160294 29389 50 0
|
|
||||||
21000 3.2300481 3.2300481 1.3407923 0.027955254 -0.65051393 4.1622578 0.89783071 18582 55 456 0 6999361 98040 11449 4237 1.3407923 30653 50 0
|
|
||||||
22000 3.5879886 3.5879886 1.3790201 0.031692391 -0.6274228 4.7186802 0.97752405 18768 63 552 0 7350833 98040 11449 4308 1.3790201 32120 50 0
|
|
||||||
23000 3.5666316 3.5666316 1.4123826 0.031275136 -0.6577261 4.656555 0.99950405 18864 49 231 0 7741276 98040 11449 4265 1.4123826 33939 50 0
|
|
||||||
24000 3.7306353 3.7306353 1.3854831 0.032426295 -0.7306956 4.827951 0.93575015 18488 63 552 0 8096740 98040 11449 4238 1.3854831 35503 50 0
|
|
||||||
25000 4.2971901 4.2971901 1.4207289 0.038358698 -0.69158669 5.7112265 1.0308127 18922 58 430 0 8518804 98040 11449 4254 1.4207289 37429 50 0
|
|
||||||
26000 9.514164 9.514164 1.4209186 0.09200552 -0.47740255 13.698702 2.4102159 18934 63 570 0 8931705 98040 11449 4233 1.4209186 39132 50 0
|
|
||||||
27000 3.9153535 3.9153535 1.3814961 0.036650525 -0.37698007 5.4568967 1.4531475 19153 65 553 0 9277922 98040 11449 4299 1.3814961 40660 50 0
|
|
||||||
28000 3.6560048 3.6560048 1.3520603 0.033100525 -0.51910991 4.9283372 1.3474705 19529 59 447 0 9642607 98040 11449 4278 1.3520603 42335 50 0
|
|
||||||
29000 14.835118 14.835118 1.3981622 0.14535835 -0.4619207 21.642405 3.6917556 19265 52 102 0 9937354 98040 11449 4224 1.3981622 43664 50 0
|
|
||||||
30000 5.3595251 5.3595251 1.3636194 0.050893845 -0.40810785 7.5775845 1.7023989 19065 43 131 0 10261222 98040 11449 4170 1.3636194 45193 50 0
|
|
||||||
31000 5.1821698 5.1821698 1.3180039 0.049074014 -0.41480304 7.30663 1.6943582 19142 58 282 0 10584027 98040 11449 4228 1.3180039 46636 50 0
|
|
||||||
32000 4.3056534 4.3056534 1.3508467 0.040670309 -0.36002116 6.0554024 1.7875405 19065 36 284 0 10933981 98040 11449 4286 1.3508467 48240 50 0
|
|
||||||
33000 3.8277999 3.8277999 1.3770405 0.034411971 -0.57982354 5.1235984 1.1046562 18838 71 729 0 11329901 98040 11449 4257 1.3770405 50046 50 0
|
|
||||||
34000 4.6562056 4.6562056 1.3938501 0.043777831 -0.41966518 6.5180812 1.3815841 18914 61 269 0 11758952 98040 11449 4221 1.3938501 51773 50 0
|
|
||||||
35000 3.4251492 3.4251492 1.3813031 0.031876928 -0.35731644 4.7461558 1.4152845 18838 60 283 0 12159425 98040 11449 4238 1.3813031 53477 50 0
|
|
||||||
36000 4.2565688 4.2565688 1.3474871 0.039214915 -0.5035788 5.8387088 1.1222014 18765 56 240 0 12568711 98040 11449 4249 1.3474871 55170 50 0
|
|
||||||
37000 5.3745505 5.3745505 1.4215553 0.053606226 -0.02664916 7.981431 2.8011643 19103 58 504 0 12941065 98040 11449 4270 1.4215553 56743 50 0
|
|
||||||
38000 4.0346121 4.0346121 1.4354472 0.036753623 -0.53932498 5.472247 1.1475792 18829 62 623 0 13351480 98040 11449 4226 1.4354472 58443 50 0
|
|
||||||
39000 4.0471971 4.0471971 1.417888 0.037884509 -0.3896991 5.6406246 1.3824278 19047 70 579 0 13752101 98040 11449 4219 1.417888 60208 50 0
|
|
||||||
40000 4.1611575 4.1611575 1.3712048 0.039505792 -0.31810741 5.8820173 1.6615204 18811 65 378 0 14143802 98040 11449 4313 1.3712048 61793 50 0
|
|
||||||
41000 4.852673 4.852673 1.3719985 0.044831688 -0.5554927 6.67499 1.2744313 18899 53 414 0 14505662 98040 11449 4274 1.3719985 63358 50 0
|
|
||||||
42000 4.8338875 4.8338875 1.3595624 0.045465888 -0.43307636 6.7694161 1.6297026 18708 46 360 0 14839866 98040 11449 4224 1.3595624 64895 50 0
|
|
||||||
43000 5.0243115 5.0243115 1.4371431 0.047111836 -0.47174292 7.0144813 1.5899963 18704 55 291 0 15195383 98040 11449 4209 1.4371431 66440 50 0
|
|
||||||
44000 7.2748224 7.2748224 1.3693754 0.069498669 -0.49182853 10.347657 1.9007074 18751 73 423 0 15572639 98040 11449 4253 1.3693754 68148 50 0
|
|
||||||
45000 5.4888002 5.4888002 1.3501677 0.050885254 -0.60200685 7.5763055 1.2841374 18662 51 314 0 15972088 98040 11449 4227 1.3501677 69998 50 0
|
|
||||||
46000 3.2144774 3.2144774 1.3342547 0.028194354 -0.59171403 4.1978573 0.9459541 18948 50 534 0 16308430 98040 11449 4253 1.3342547 71549 50 0
|
|
||||||
47000 4.0640905 4.0640905 1.3473081 0.036715084 -0.58898597 5.4665088 1.2043249 19188 57 236 0 16670321 98040 11449 4239 1.3473081 73216 50 0
|
|
||||||
48000 3.7843815 3.7843815 1.3413467 0.034360184 -0.52284075 5.1158877 1.1195984 19477 57 283 0 17000588 98040 11449 4307 1.3413467 74662 50 0
|
|
||||||
49000 4.3042567 4.3042567 1.354248 0.039635615 -0.51199566 5.9013468 1.410884 19628 68 456 0 17319627 98040 11449 4277 1.354248 75983 50 0
|
|
||||||
50000 4.015575 4.015575 1.3058373 0.036258162 -0.58472888 5.3984778 0.84500807 19257 63 416 0 17675269 98040 11449 4254 1.3058373 77468 50 0
|
|
||||||
Loop time of 11.9502 on 8 procs for 50000 steps with 14889 atoms
|
|
||||||
|
|
||||||
Pair time (%) = 1.09132 (9.13222)
|
|
||||||
Neigh time (%) = 0.959464 (8.02883)
|
|
||||||
Comm time (%) = 1.19057 (9.96277)
|
|
||||||
Outpt time (%) = 0.00310364 (0.0259714)
|
|
||||||
Other time (%) = 8.70577 (72.8502)
|
|
||||||
|
|
||||||
Nlocal: 1861.12 ave 1979 max 1606 min
|
|
||||||
Histogram: 1 0 0 0 1 1 1 0 0 4
|
|
||||||
Nghost: 35 ave 39 max 32 min
|
|
||||||
Histogram: 1 0 2 0 3 1 0 0 0 1
|
|
||||||
Neighs: 46 ave 61 max 31 min
|
|
||||||
Histogram: 1 1 0 1 1 0 2 0 1 1
|
|
||||||
|
|
||||||
Total # of neighbors = 368
|
|
||||||
Ave neighs/atom = 0.0247162
|
|
||||||
Neighbor list builds = 2624
|
|
||||||
Dangerous builds = 0
|
|
||||||
|
|
||||||
Please see the log.cite file for references relevant to this simulation
|
|
||||||
|
|
||||||
346
examples/ASPHERE/ellipsoid/log.1Feb24.ellipsoid.g++.1
Normal file
346
examples/ASPHERE/ellipsoid/log.1Feb24.ellipsoid.g++.1
Normal file
@ -0,0 +1,346 @@
|
|||||||
|
LAMMPS (21 Nov 2023 - Development - patch_21Nov2023-665-g17f869bf5e)
|
||||||
|
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||||
|
using 1 OpenMP thread(s) per MPI task
|
||||||
|
# SRD diffusion demo - ellipsoids
|
||||||
|
|
||||||
|
units lj
|
||||||
|
atom_style ellipsoid
|
||||||
|
atom_modify first big
|
||||||
|
dimension 2
|
||||||
|
|
||||||
|
# create big ellipsoidal particles
|
||||||
|
|
||||||
|
lattice sq 0.14
|
||||||
|
Lattice spacing in x,y,z = 2.6726124 2.6726124 2.6726124
|
||||||
|
region box block 0 10 0 10 -0.5 0.5
|
||||||
|
create_box 2 box
|
||||||
|
Created orthogonal box = (0 0 -1.3363062) to (26.726124 26.726124 1.3363062)
|
||||||
|
1 by 1 by 1 MPI processor grid
|
||||||
|
create_atoms 1 region box
|
||||||
|
Created 100 atoms
|
||||||
|
using lattice units in orthogonal box = (0 0 -1.3363062) to (26.726124 26.726124 1.3363062)
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
|
||||||
|
set type 1 mass 1.0
|
||||||
|
Setting atom values ...
|
||||||
|
100 settings made for mass
|
||||||
|
set type 1 shape 3.0 1.0 1.0
|
||||||
|
Setting atom values ...
|
||||||
|
100 settings made for shape
|
||||||
|
group big type 1
|
||||||
|
100 atoms in group big
|
||||||
|
set group big quat/random 29898
|
||||||
|
Setting atom values ...
|
||||||
|
100 settings made for quat/random
|
||||||
|
|
||||||
|
velocity big create 1.44 87287 loop geom
|
||||||
|
|
||||||
|
# equilibrate big particles
|
||||||
|
|
||||||
|
pair_style gayberne 1.0 3.0 1.0 4.0
|
||||||
|
pair_coeff 1 1 1.0 1.0 1 1 1 1 1 1
|
||||||
|
pair_coeff 1 2 1.0 1.0 1 1 1 1 1 1 0.0
|
||||||
|
pair_coeff 2 2 1.0 1.0 1 1 1 1 1 1 0.0
|
||||||
|
|
||||||
|
neighbor 0.3 bin
|
||||||
|
neigh_modify delay 0 every 1 check yes
|
||||||
|
|
||||||
|
fix 1 big nve/asphere
|
||||||
|
fix 2 all enforce2d
|
||||||
|
|
||||||
|
compute rot big temp/asphere
|
||||||
|
compute 0 all property/atom quatw quati quatj quatk shapex shapey shapez
|
||||||
|
|
||||||
|
#dump 1 all custom 10 dump.ellipsoid.equil id type x y z c_0[*]
|
||||||
|
#dump_modify 1 colname c_0[1] quatw colname c_0[2] quati colname c_0[3] quatj colname c_0[4] quatk # colname c_0[5] shapex colname c_0[6] shapey colname c_0[7] shapez
|
||||||
|
|
||||||
|
thermo_style custom step temp c_rot epair etotal press
|
||||||
|
thermo 100
|
||||||
|
|
||||||
|
run 1000
|
||||||
|
|
||||||
|
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||||
|
|
||||||
|
Your simulation uses code contributions which should be cited:
|
||||||
|
|
||||||
|
- pair gayberne command: doi:10.1063/1.3058435
|
||||||
|
|
||||||
|
@Article{Brown09,
|
||||||
|
author = {W. M. Brown and M. K. Petersen and S. J. Plimpton and G. S. Grest},
|
||||||
|
title = {Liquid Crystal Nanodroplets in Solution},
|
||||||
|
journal = {J.~Chem.\ Phys.},
|
||||||
|
year = 2009,
|
||||||
|
volume = 130,
|
||||||
|
number = 4,
|
||||||
|
pages = {044901}
|
||||||
|
}
|
||||||
|
|
||||||
|
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||||
|
|
||||||
|
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
|
||||||
|
Neighbor list info ...
|
||||||
|
update: every = 1 steps, delay = 0 steps, check = yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 4.3
|
||||||
|
ghost atom cutoff = 4.3
|
||||||
|
binsize = 2.15, bins = 13 13 2
|
||||||
|
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||||
|
(1) pair gayberne, perpetual
|
||||||
|
attributes: half, newton on
|
||||||
|
pair build: half/bin/atomonly/newton
|
||||||
|
stencil: half/bin/2d
|
||||||
|
bin: standard
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 4.611 | 4.611 | 4.611 Mbytes
|
||||||
|
Step Temp c_rot E_pair TotEng Press
|
||||||
|
0 1.44 0.95677852 2.7038078 4.1294078 10.518912
|
||||||
|
100 2.5524145 2.801098 -0.37027046 2.1566199 0.84703874
|
||||||
|
200 2.6266386 2.7938164 -0.35322565 2.2471465 1.004886
|
||||||
|
300 2.9987557 2.9499545 -0.58917376 2.3795944 0.73081788
|
||||||
|
400 2.8557446 2.8208128 -0.39904801 2.4281391 0.91808964
|
||||||
|
500 2.4399047 2.8255746 -0.40056447 2.0149412 1.0538908
|
||||||
|
600 2.854258 2.9166789 -0.53424483 2.2914706 0.8117508
|
||||||
|
700 2.9593679 2.8231211 -0.40051715 2.5292571 1.1630889
|
||||||
|
800 2.7632972 2.9060854 -0.52075351 2.2149107 0.7710678
|
||||||
|
900 2.9905597 2.8869667 -0.49099378 2.4696603 0.69616841
|
||||||
|
1000 2.8470138 2.9005012 -0.51282088 2.3057228 0.68817567
|
||||||
|
Loop time of 0.192737 on 1 procs for 1000 steps with 100 atoms
|
||||||
|
|
||||||
|
Performance: 2241395.423 tau/day, 5188.415 timesteps/s, 518.842 katom-step/s
|
||||||
|
99.4% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
|
MPI task timing breakdown:
|
||||||
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Pair | 0.17225 | 0.17225 | 0.17225 | 0.0 | 89.37
|
||||||
|
Neigh | 0.0025287 | 0.0025287 | 0.0025287 | 0.0 | 1.31
|
||||||
|
Comm | 0.0023396 | 0.0023396 | 0.0023396 | 0.0 | 1.21
|
||||||
|
Output | 0.00025405 | 0.00025405 | 0.00025405 | 0.0 | 0.13
|
||||||
|
Modify | 0.013955 | 0.013955 | 0.013955 | 0.0 | 7.24
|
||||||
|
Other | | 0.001413 | | | 0.73
|
||||||
|
|
||||||
|
Nlocal: 100 ave 100 max 100 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Nghost: 77 ave 77 max 77 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Neighs: 369 ave 369 max 369 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
|
||||||
|
Total # of neighbors = 369
|
||||||
|
Ave neighs/atom = 3.69
|
||||||
|
Neighbor list builds = 174
|
||||||
|
Dangerous builds = 0
|
||||||
|
|
||||||
|
#undump 1
|
||||||
|
unfix 1
|
||||||
|
unfix 2
|
||||||
|
|
||||||
|
# add small particles as hi density lattice
|
||||||
|
|
||||||
|
region plane block INF INF INF INF -0.001 0.001 units box
|
||||||
|
lattice sq 120.0
|
||||||
|
Lattice spacing in x,y,z = 0.091287093 0.091287093 0.091287093
|
||||||
|
create_atoms 2 region plane
|
||||||
|
Created 85849 atoms
|
||||||
|
using lattice units in orthogonal box = (0 0 -1.3363062) to (26.726124 26.726124 1.3363062)
|
||||||
|
create_atoms CPU = 0.015 seconds
|
||||||
|
|
||||||
|
set type 2 mass 0.01
|
||||||
|
Setting atom values ...
|
||||||
|
85849 settings made for mass
|
||||||
|
group small type 2
|
||||||
|
85849 atoms in group small
|
||||||
|
velocity small create 1.0 593849 loop geom
|
||||||
|
|
||||||
|
# delete overlaps
|
||||||
|
# must set 1-2 cutoff to non-zero value
|
||||||
|
|
||||||
|
pair_style lj/cut 2.5
|
||||||
|
pair_coeff 1 1 1.0 1.0
|
||||||
|
pair_coeff 2 2 0.0 1.0 0.0
|
||||||
|
pair_coeff 1 2 0.0 1.0 2.0
|
||||||
|
|
||||||
|
neigh_modify one 10000
|
||||||
|
|
||||||
|
delete_atoms overlap 1.6 small big
|
||||||
|
System init for delete_atoms ...
|
||||||
|
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
|
||||||
|
Neighbor list info ...
|
||||||
|
update: every = 1 steps, delay = 0 steps, check = yes
|
||||||
|
max neighbors/atom: 10000, page size: 100000
|
||||||
|
master list distance cutoff = 2.8
|
||||||
|
ghost atom cutoff = 2.8
|
||||||
|
binsize = 1.4, bins = 20 20 2
|
||||||
|
2 neighbor lists, perpetual/occasional/extra = 1 1 0
|
||||||
|
(1) command delete_atoms, occasional
|
||||||
|
attributes: full, newton on
|
||||||
|
pair build: full/bin/atomonly
|
||||||
|
stencil: full/bin/2d
|
||||||
|
bin: standard
|
||||||
|
(2) pair lj/cut, perpetual
|
||||||
|
attributes: half, newton on
|
||||||
|
pair build: half/bin/atomonly/newton
|
||||||
|
stencil: half/bin/2d
|
||||||
|
bin: standard
|
||||||
|
WARNING: Delete_atoms cutoff > minimum neighbor cutoff (src/delete_atoms.cpp:312)
|
||||||
|
Deleted 71060 atoms, new total = 14889
|
||||||
|
|
||||||
|
# SRD run
|
||||||
|
|
||||||
|
reset_timestep 0
|
||||||
|
|
||||||
|
neighbor 0.3 multi
|
||||||
|
neigh_modify delay 0 every 1 check yes
|
||||||
|
|
||||||
|
comm_modify mode multi group big vel yes
|
||||||
|
neigh_modify include big
|
||||||
|
|
||||||
|
# no pairwise interactions with small particles
|
||||||
|
|
||||||
|
pair_style gayberne 1.0 3.0 1.0 4.0
|
||||||
|
pair_coeff 1 1 1.0 1.0 1 1 1 1 1 1
|
||||||
|
pair_coeff 1 2 1.0 1.0 1 1 1 1 1 1 0.0
|
||||||
|
pair_coeff 2 2 1.0 1.0 1 1 1 1 1 1 0.0
|
||||||
|
|
||||||
|
# use fix SRD to push small particles out from inside big ones
|
||||||
|
# if comment out, big particles won't see SRD particles
|
||||||
|
|
||||||
|
timestep 0.0005
|
||||||
|
|
||||||
|
fix 1 big nve/asphere
|
||||||
|
fix 2 small srd 20 big 1.0 0.25 49894 shift yes 54979 collision noslip search 0.2 inside ignore exact no bounce 50
|
||||||
|
fix 3 all enforce2d
|
||||||
|
|
||||||
|
# diagnostics
|
||||||
|
|
||||||
|
compute tbig big temp/asphere
|
||||||
|
variable pebig equal pe*atoms/count(big)
|
||||||
|
variable ebig equal etotal*atoms/count(big)
|
||||||
|
thermo_style custom step temp c_rot f_2[9] etotal v_pebig v_ebig press f_2[1] f_2[2] f_2[3] f_2[4] f_2[5] f_2[6] f_2[7] f_2[8] f_2[9] f_2[10] f_2[11] f_2[12]
|
||||||
|
|
||||||
|
thermo_modify temp tbig
|
||||||
|
WARNING: Temperature for thermo pressure is not for group all (src/thermo.cpp:530)
|
||||||
|
thermo 1000
|
||||||
|
|
||||||
|
#dump 1 all custom 1000 dump.ellipsoid id type x y z c_0[*]
|
||||||
|
#dump_modify 1 colname c_0[1] quatw colname c_0[2] quati colname c_0[3] quatj colname c_0[4] quatk # colname c_0[5] shapex colname c_0[6] shapey colname c_0[7] shapez
|
||||||
|
|
||||||
|
#dump 2 all image 1000 image.*.jpg type type zoom 1.6
|
||||||
|
#dump_modify 2 pad 6 adiam 1 1 adiam 2 0.2
|
||||||
|
|
||||||
|
run 10000
|
||||||
|
|
||||||
|
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||||
|
|
||||||
|
Your simulation uses code contributions which should be cited:
|
||||||
|
|
||||||
|
- neighbor multi command: doi:10.1016/j.cpc.2008.03.005, doi:10.1007/s40571-020-00361-2
|
||||||
|
|
||||||
|
@Article{Intveld08,
|
||||||
|
author = {in 't Veld, P. J. and S. J.~Plimpton and G. S. Grest},
|
||||||
|
title = {Accurate and Efficient Methods for Modeling Colloidal
|
||||||
|
Mixtures in an Explicit Solvent using Molecular Dynamics},
|
||||||
|
journal = {Comput.\ Phys.\ Commut.},
|
||||||
|
year = 2008,
|
||||||
|
volume = 179,
|
||||||
|
pages = {320--329}
|
||||||
|
}
|
||||||
|
|
||||||
|
@article{Shire2020,
|
||||||
|
author = {Shire, Tom and Hanley, Kevin J. and Stratford, Kevin},
|
||||||
|
title = {{DEM} Simulations of Polydisperse Media: Efficient Contact
|
||||||
|
Detection Applied to Investigate the Quasi-Static Limit},
|
||||||
|
journal = {Computational Particle Mechanics},
|
||||||
|
year = {2020}
|
||||||
|
@article{Monti2022,
|
||||||
|
author = {Monti, Joseph M. and Clemmer, Joel T. and Srivastava,
|
||||||
|
Ishan and Silbert, Leonardo E. and Grest, Gary S.
|
||||||
|
and Lechman, Jeremy B.},
|
||||||
|
title = {Large-scale frictionless jamming with power-law particle
|
||||||
|
size distributions},
|
||||||
|
journal = {Phys. Rev. E},
|
||||||
|
volume = {106}
|
||||||
|
issue = {3}
|
||||||
|
year = {2022}
|
||||||
|
}
|
||||||
|
|
||||||
|
- fix srd command: doi:10.1063/1.3419070
|
||||||
|
|
||||||
|
@Article{Petersen10,
|
||||||
|
author = {M. K. Petersen and J. B. Lechman and S. J. Plimpton and
|
||||||
|
G. S. Grest and in 't Veld, P. J. and P. R. Schunk},
|
||||||
|
title = {Mesoscale Hydrodynamics via Stochastic Rotation
|
||||||
|
Dynamics: Comparison with {L}ennard-{J}ones Fluid},
|
||||||
|
journal = {J.~Chem.\ Phys.},
|
||||||
|
year = 2010,
|
||||||
|
volume = 132,
|
||||||
|
pages = 174106
|
||||||
|
}
|
||||||
|
|
||||||
|
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||||
|
|
||||||
|
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
|
||||||
|
SRD info:
|
||||||
|
SRD/big particles = 14789 100
|
||||||
|
big particle diameter max/min = 3 1
|
||||||
|
SRD temperature & lamda = 1 0.1
|
||||||
|
SRD max distance & max velocity = 0.4 40
|
||||||
|
SRD grid counts: 107 107 1
|
||||||
|
SRD grid size: request, actual (xyz) = 0.25, 0.24977686 0.24977686 2.6726124
|
||||||
|
SRD per actual grid cell = 1.9275711
|
||||||
|
SRD viscosity = 0.68810145
|
||||||
|
big/SRD mass density ratio = 1.3736715
|
||||||
|
# of rescaled SRD velocities = 0
|
||||||
|
ave/max small velocity = 13.30933 24.335888
|
||||||
|
ave/max big velocity = 2.0802836 5.05672
|
||||||
|
Neighbor list info ...
|
||||||
|
update: every = 1 steps, delay = 0 steps, check = yes
|
||||||
|
max neighbors/atom: 10000, page size: 100000
|
||||||
|
master list distance cutoff = 4.3
|
||||||
|
ghost atom cutoff = 4.3
|
||||||
|
binsize = 26.726124, bins = 1 1 1
|
||||||
|
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||||
|
(1) pair gayberne, perpetual
|
||||||
|
attributes: half, newton on
|
||||||
|
pair build: half/multi/atomonly/newton
|
||||||
|
stencil: half/multi/2d
|
||||||
|
bin: multi
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 43.23 | 43.23 | 43.23 Mbytes
|
||||||
|
Step Temp c_rot f_2[9] TotEng v_pebig v_ebig Press f_2[1] f_2[2] f_2[3] f_2[4] f_2[5] f_2[6] f_2[7] f_2[8] f_2[9] f_2[10] f_2[11] f_2[12]
|
||||||
|
0 2.9005012 2.9005012 0 0.025582147 -0.51282088 3.8089259 0.8986241 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
1000 2.1884096 2.1884096 0.81792923 0.016786763 -0.7613492 2.4993811 1.1765894 13834 35 35 0 241 38416 11449 4172 0.81792923 16 50 0
|
||||||
|
2000 1.2708697 1.2708697 0.90821156 0.0069438942 -0.8597194 1.0338764 0.9801188 14658 35 35 0 372 38416 11449 4281 0.90821156 16 50 0
|
||||||
|
3000 1.1130928 1.1130928 0.9590586 0.0052557024 -0.8759868 0.78252152 0.70461705 15267 28 28 0 519 38416 11449 4292 0.9590586 16 50 0
|
||||||
|
4000 0.8649005 0.8649005 0.9947477 0.0026217985 -0.89834217 0.39035958 0.77420962 15681 36 36 0 698 38416 11449 4339 0.9947477 16 50 0
|
||||||
|
5000 1.1743692 1.1743692 0.98116608 0.0069116456 -0.72073526 1.0290749 0.8829165 15974 37 37 0 881 38416 11449 4328 0.98116608 16 50 0
|
||||||
|
6000 1.0190814 1.0190814 1.0138428 0.0048088112 -0.80244733 0.7159839 0.79743882 16092 36 36 0 1090 38416 11449 4319 1.0138428 16 50 0
|
||||||
|
7000 1.0824823 1.0824823 1.0415165 0.0049127988 -0.88143205 0.73146661 0.48157537 16178 46 46 0 1328 38416 11449 4370 1.0415165 23 50 0
|
||||||
|
8000 1.0482457 1.0482457 1.0336952 0.0051802902 -0.79059275 0.7712934 0.75744414 16622 33 33 0 1579 38416 11449 4340 1.0336952 24 50 0
|
||||||
|
9000 0.98889815 0.98889815 1.0126005 0.00397567 -0.88152073 0.59193751 0.52056685 16877 41 41 0 1811 38416 11449 4370 1.0126005 27 50 0
|
||||||
|
10000 0.96559538 0.96559538 1.0234124 0.0045683795 -0.7585511 0.68018602 0.70666049 16833 32 32 0 2038 38416 11449 4330 1.0234124 27 50 0
|
||||||
|
Loop time of 9.04639 on 1 procs for 10000 steps with 14889 atoms
|
||||||
|
|
||||||
|
Performance: 47753.873 tau/day, 1105.414 timesteps/s, 16.459 Matom-step/s
|
||||||
|
99.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 | 1.862 | 1.862 | 1.862 | 0.0 | 20.58
|
||||||
|
Neigh | 0.018395 | 0.018395 | 0.018395 | 0.0 | 0.20
|
||||||
|
Comm | 0.060502 | 0.060502 | 0.060502 | 0.0 | 0.67
|
||||||
|
Output | 0.00092704 | 0.00092704 | 0.00092704 | 0.0 | 0.01
|
||||||
|
Modify | 7.0482 | 7.0482 | 7.0482 | 0.0 | 77.91
|
||||||
|
Other | | 0.05636 | | | 0.62
|
||||||
|
|
||||||
|
Nlocal: 14889 ave 14889 max 14889 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Nghost: 79 ave 79 max 79 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Neighs: 416 ave 416 max 416 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
|
||||||
|
Total # of neighbors = 416
|
||||||
|
Ave neighs/atom = 0.02794009
|
||||||
|
Neighbor list builds = 500
|
||||||
|
Dangerous builds = 0
|
||||||
|
Total wall time: 0:00:11
|
||||||
346
examples/ASPHERE/ellipsoid/log.1Feb24.ellipsoid.g++.4
Normal file
346
examples/ASPHERE/ellipsoid/log.1Feb24.ellipsoid.g++.4
Normal file
@ -0,0 +1,346 @@
|
|||||||
|
LAMMPS (21 Nov 2023 - Development - patch_21Nov2023-665-g17f869bf5e)
|
||||||
|
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||||
|
using 1 OpenMP thread(s) per MPI task
|
||||||
|
# SRD diffusion demo - ellipsoids
|
||||||
|
|
||||||
|
units lj
|
||||||
|
atom_style ellipsoid
|
||||||
|
atom_modify first big
|
||||||
|
dimension 2
|
||||||
|
|
||||||
|
# create big ellipsoidal particles
|
||||||
|
|
||||||
|
lattice sq 0.14
|
||||||
|
Lattice spacing in x,y,z = 2.6726124 2.6726124 2.6726124
|
||||||
|
region box block 0 10 0 10 -0.5 0.5
|
||||||
|
create_box 2 box
|
||||||
|
Created orthogonal box = (0 0 -1.3363062) to (26.726124 26.726124 1.3363062)
|
||||||
|
2 by 2 by 1 MPI processor grid
|
||||||
|
create_atoms 1 region box
|
||||||
|
Created 100 atoms
|
||||||
|
using lattice units in orthogonal box = (0 0 -1.3363062) to (26.726124 26.726124 1.3363062)
|
||||||
|
create_atoms CPU = 0.001 seconds
|
||||||
|
|
||||||
|
set type 1 mass 1.0
|
||||||
|
Setting atom values ...
|
||||||
|
100 settings made for mass
|
||||||
|
set type 1 shape 3.0 1.0 1.0
|
||||||
|
Setting atom values ...
|
||||||
|
100 settings made for shape
|
||||||
|
group big type 1
|
||||||
|
100 atoms in group big
|
||||||
|
set group big quat/random 29898
|
||||||
|
Setting atom values ...
|
||||||
|
100 settings made for quat/random
|
||||||
|
|
||||||
|
velocity big create 1.44 87287 loop geom
|
||||||
|
|
||||||
|
# equilibrate big particles
|
||||||
|
|
||||||
|
pair_style gayberne 1.0 3.0 1.0 4.0
|
||||||
|
pair_coeff 1 1 1.0 1.0 1 1 1 1 1 1
|
||||||
|
pair_coeff 1 2 1.0 1.0 1 1 1 1 1 1 0.0
|
||||||
|
pair_coeff 2 2 1.0 1.0 1 1 1 1 1 1 0.0
|
||||||
|
|
||||||
|
neighbor 0.3 bin
|
||||||
|
neigh_modify delay 0 every 1 check yes
|
||||||
|
|
||||||
|
fix 1 big nve/asphere
|
||||||
|
fix 2 all enforce2d
|
||||||
|
|
||||||
|
compute rot big temp/asphere
|
||||||
|
compute 0 all property/atom quatw quati quatj quatk shapex shapey shapez
|
||||||
|
|
||||||
|
#dump 1 all custom 10 dump.ellipsoid.equil id type x y z c_0[*]
|
||||||
|
#dump_modify 1 colname c_0[1] quatw colname c_0[2] quati colname c_0[3] quatj colname c_0[4] quatk # colname c_0[5] shapex colname c_0[6] shapey colname c_0[7] shapez
|
||||||
|
|
||||||
|
thermo_style custom step temp c_rot epair etotal press
|
||||||
|
thermo 100
|
||||||
|
|
||||||
|
run 1000
|
||||||
|
|
||||||
|
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||||
|
|
||||||
|
Your simulation uses code contributions which should be cited:
|
||||||
|
|
||||||
|
- pair gayberne command: doi:10.1063/1.3058435
|
||||||
|
|
||||||
|
@Article{Brown09,
|
||||||
|
author = {W. M. Brown and M. K. Petersen and S. J. Plimpton and G. S. Grest},
|
||||||
|
title = {Liquid Crystal Nanodroplets in Solution},
|
||||||
|
journal = {J.~Chem.\ Phys.},
|
||||||
|
year = 2009,
|
||||||
|
volume = 130,
|
||||||
|
number = 4,
|
||||||
|
pages = {044901}
|
||||||
|
}
|
||||||
|
|
||||||
|
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||||
|
|
||||||
|
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
|
||||||
|
Neighbor list info ...
|
||||||
|
update: every = 1 steps, delay = 0 steps, check = yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 4.3
|
||||||
|
ghost atom cutoff = 4.3
|
||||||
|
binsize = 2.15, bins = 13 13 2
|
||||||
|
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||||
|
(1) pair gayberne, perpetual
|
||||||
|
attributes: half, newton on
|
||||||
|
pair build: half/bin/atomonly/newton
|
||||||
|
stencil: half/bin/2d
|
||||||
|
bin: standard
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 4.61 | 4.61 | 4.61 Mbytes
|
||||||
|
Step Temp c_rot E_pair TotEng Press
|
||||||
|
0 1.44 0.95677852 2.7038078 4.1294078 10.518912
|
||||||
|
100 2.5524145 2.801098 -0.37027046 2.1566199 0.84703874
|
||||||
|
200 2.6266386 2.7938164 -0.35322565 2.2471465 1.004886
|
||||||
|
300 2.9987557 2.9499545 -0.58917376 2.3795944 0.73081788
|
||||||
|
400 2.8557446 2.8208128 -0.39904801 2.4281391 0.91808964
|
||||||
|
500 2.4399047 2.8255746 -0.40056447 2.0149412 1.0538908
|
||||||
|
600 2.854258 2.9166789 -0.53424483 2.2914706 0.8117508
|
||||||
|
700 2.9593679 2.8231211 -0.40051715 2.5292571 1.1630889
|
||||||
|
800 2.7632972 2.9060855 -0.52075354 2.2149107 0.77106773
|
||||||
|
900 2.9905599 2.8869667 -0.49099386 2.4696604 0.69616823
|
||||||
|
1000 2.8470131 2.9005016 -0.51282147 2.3057215 0.68817329
|
||||||
|
Loop time of 0.0666302 on 4 procs for 1000 steps with 100 atoms
|
||||||
|
|
||||||
|
Performance: 6483542.632 tau/day, 15008.201 timesteps/s, 1.501 Matom-step/s
|
||||||
|
99.0% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
|
MPI task timing breakdown:
|
||||||
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Pair | 0.039208 | 0.042833 | 0.045871 | 1.2 | 64.29
|
||||||
|
Neigh | 0.00065929 | 0.00071982 | 0.00076852 | 0.0 | 1.08
|
||||||
|
Comm | 0.013998 | 0.017169 | 0.02087 | 1.9 | 25.77
|
||||||
|
Output | 0.00018817 | 0.00020663 | 0.00025962 | 0.0 | 0.31
|
||||||
|
Modify | 0.0035046 | 0.0035933 | 0.003701 | 0.1 | 5.39
|
||||||
|
Other | | 0.002109 | | | 3.16
|
||||||
|
|
||||||
|
Nlocal: 25 ave 27 max 24 min
|
||||||
|
Histogram: 2 0 0 1 0 0 0 0 0 1
|
||||||
|
Nghost: 42.25 ave 45 max 38 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 2 0 1
|
||||||
|
Neighs: 92.25 ave 104 max 85 min
|
||||||
|
Histogram: 1 0 1 1 0 0 0 0 0 1
|
||||||
|
|
||||||
|
Total # of neighbors = 369
|
||||||
|
Ave neighs/atom = 3.69
|
||||||
|
Neighbor list builds = 174
|
||||||
|
Dangerous builds = 0
|
||||||
|
|
||||||
|
#undump 1
|
||||||
|
unfix 1
|
||||||
|
unfix 2
|
||||||
|
|
||||||
|
# add small particles as hi density lattice
|
||||||
|
|
||||||
|
region plane block INF INF INF INF -0.001 0.001 units box
|
||||||
|
lattice sq 120.0
|
||||||
|
Lattice spacing in x,y,z = 0.091287093 0.091287093 0.091287093
|
||||||
|
create_atoms 2 region plane
|
||||||
|
Created 85849 atoms
|
||||||
|
using lattice units in orthogonal box = (0 0 -1.3363062) to (26.726124 26.726124 1.3363062)
|
||||||
|
create_atoms CPU = 0.004 seconds
|
||||||
|
|
||||||
|
set type 2 mass 0.01
|
||||||
|
Setting atom values ...
|
||||||
|
85849 settings made for mass
|
||||||
|
group small type 2
|
||||||
|
85849 atoms in group small
|
||||||
|
velocity small create 1.0 593849 loop geom
|
||||||
|
|
||||||
|
# delete overlaps
|
||||||
|
# must set 1-2 cutoff to non-zero value
|
||||||
|
|
||||||
|
pair_style lj/cut 2.5
|
||||||
|
pair_coeff 1 1 1.0 1.0
|
||||||
|
pair_coeff 2 2 0.0 1.0 0.0
|
||||||
|
pair_coeff 1 2 0.0 1.0 2.0
|
||||||
|
|
||||||
|
neigh_modify one 10000
|
||||||
|
|
||||||
|
delete_atoms overlap 1.6 small big
|
||||||
|
System init for delete_atoms ...
|
||||||
|
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
|
||||||
|
Neighbor list info ...
|
||||||
|
update: every = 1 steps, delay = 0 steps, check = yes
|
||||||
|
max neighbors/atom: 10000, page size: 100000
|
||||||
|
master list distance cutoff = 2.8
|
||||||
|
ghost atom cutoff = 2.8
|
||||||
|
binsize = 1.4, bins = 20 20 2
|
||||||
|
2 neighbor lists, perpetual/occasional/extra = 1 1 0
|
||||||
|
(1) command delete_atoms, occasional
|
||||||
|
attributes: full, newton on
|
||||||
|
pair build: full/bin/atomonly
|
||||||
|
stencil: full/bin/2d
|
||||||
|
bin: standard
|
||||||
|
(2) pair lj/cut, perpetual
|
||||||
|
attributes: half, newton on
|
||||||
|
pair build: half/bin/atomonly/newton
|
||||||
|
stencil: half/bin/2d
|
||||||
|
bin: standard
|
||||||
|
WARNING: Delete_atoms cutoff > minimum neighbor cutoff (src/delete_atoms.cpp:312)
|
||||||
|
Deleted 71060 atoms, new total = 14889
|
||||||
|
|
||||||
|
# SRD run
|
||||||
|
|
||||||
|
reset_timestep 0
|
||||||
|
|
||||||
|
neighbor 0.3 multi
|
||||||
|
neigh_modify delay 0 every 1 check yes
|
||||||
|
|
||||||
|
comm_modify mode multi group big vel yes
|
||||||
|
neigh_modify include big
|
||||||
|
|
||||||
|
# no pairwise interactions with small particles
|
||||||
|
|
||||||
|
pair_style gayberne 1.0 3.0 1.0 4.0
|
||||||
|
pair_coeff 1 1 1.0 1.0 1 1 1 1 1 1
|
||||||
|
pair_coeff 1 2 1.0 1.0 1 1 1 1 1 1 0.0
|
||||||
|
pair_coeff 2 2 1.0 1.0 1 1 1 1 1 1 0.0
|
||||||
|
|
||||||
|
# use fix SRD to push small particles out from inside big ones
|
||||||
|
# if comment out, big particles won't see SRD particles
|
||||||
|
|
||||||
|
timestep 0.0005
|
||||||
|
|
||||||
|
fix 1 big nve/asphere
|
||||||
|
fix 2 small srd 20 big 1.0 0.25 49894 shift yes 54979 collision noslip search 0.2 inside ignore exact no bounce 50
|
||||||
|
fix 3 all enforce2d
|
||||||
|
|
||||||
|
# diagnostics
|
||||||
|
|
||||||
|
compute tbig big temp/asphere
|
||||||
|
variable pebig equal pe*atoms/count(big)
|
||||||
|
variable ebig equal etotal*atoms/count(big)
|
||||||
|
thermo_style custom step temp c_rot f_2[9] etotal v_pebig v_ebig press f_2[1] f_2[2] f_2[3] f_2[4] f_2[5] f_2[6] f_2[7] f_2[8] f_2[9] f_2[10] f_2[11] f_2[12]
|
||||||
|
|
||||||
|
thermo_modify temp tbig
|
||||||
|
WARNING: Temperature for thermo pressure is not for group all (src/thermo.cpp:530)
|
||||||
|
thermo 1000
|
||||||
|
|
||||||
|
#dump 1 all custom 1000 dump.ellipsoid id type x y z c_0[*]
|
||||||
|
#dump_modify 1 colname c_0[1] quatw colname c_0[2] quati colname c_0[3] quatj colname c_0[4] quatk # colname c_0[5] shapex colname c_0[6] shapey colname c_0[7] shapez
|
||||||
|
|
||||||
|
#dump 2 all image 1000 image.*.jpg type type zoom 1.6
|
||||||
|
#dump_modify 2 pad 6 adiam 1 1 adiam 2 0.2
|
||||||
|
|
||||||
|
run 10000
|
||||||
|
|
||||||
|
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||||
|
|
||||||
|
Your simulation uses code contributions which should be cited:
|
||||||
|
|
||||||
|
- neighbor multi command: doi:10.1016/j.cpc.2008.03.005, doi:10.1007/s40571-020-00361-2
|
||||||
|
|
||||||
|
@Article{Intveld08,
|
||||||
|
author = {in 't Veld, P. J. and S. J.~Plimpton and G. S. Grest},
|
||||||
|
title = {Accurate and Efficient Methods for Modeling Colloidal
|
||||||
|
Mixtures in an Explicit Solvent using Molecular Dynamics},
|
||||||
|
journal = {Comput.\ Phys.\ Commut.},
|
||||||
|
year = 2008,
|
||||||
|
volume = 179,
|
||||||
|
pages = {320--329}
|
||||||
|
}
|
||||||
|
|
||||||
|
@article{Shire2020,
|
||||||
|
author = {Shire, Tom and Hanley, Kevin J. and Stratford, Kevin},
|
||||||
|
title = {{DEM} Simulations of Polydisperse Media: Efficient Contact
|
||||||
|
Detection Applied to Investigate the Quasi-Static Limit},
|
||||||
|
journal = {Computational Particle Mechanics},
|
||||||
|
year = {2020}
|
||||||
|
@article{Monti2022,
|
||||||
|
author = {Monti, Joseph M. and Clemmer, Joel T. and Srivastava,
|
||||||
|
Ishan and Silbert, Leonardo E. and Grest, Gary S.
|
||||||
|
and Lechman, Jeremy B.},
|
||||||
|
title = {Large-scale frictionless jamming with power-law particle
|
||||||
|
size distributions},
|
||||||
|
journal = {Phys. Rev. E},
|
||||||
|
volume = {106}
|
||||||
|
issue = {3}
|
||||||
|
year = {2022}
|
||||||
|
}
|
||||||
|
|
||||||
|
- fix srd command: doi:10.1063/1.3419070
|
||||||
|
|
||||||
|
@Article{Petersen10,
|
||||||
|
author = {M. K. Petersen and J. B. Lechman and S. J. Plimpton and
|
||||||
|
G. S. Grest and in 't Veld, P. J. and P. R. Schunk},
|
||||||
|
title = {Mesoscale Hydrodynamics via Stochastic Rotation
|
||||||
|
Dynamics: Comparison with {L}ennard-{J}ones Fluid},
|
||||||
|
journal = {J.~Chem.\ Phys.},
|
||||||
|
year = 2010,
|
||||||
|
volume = 132,
|
||||||
|
pages = 174106
|
||||||
|
}
|
||||||
|
|
||||||
|
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||||
|
|
||||||
|
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
|
||||||
|
SRD info:
|
||||||
|
SRD/big particles = 14789 100
|
||||||
|
big particle diameter max/min = 3 1
|
||||||
|
SRD temperature & lamda = 1 0.1
|
||||||
|
SRD max distance & max velocity = 0.4 40
|
||||||
|
SRD grid counts: 107 107 1
|
||||||
|
SRD grid size: request, actual (xyz) = 0.25, 0.24977686 0.24977686 2.6726124
|
||||||
|
SRD per actual grid cell = 1.9275711
|
||||||
|
SRD viscosity = 0.68810145
|
||||||
|
big/SRD mass density ratio = 1.3736715
|
||||||
|
# of rescaled SRD velocities = 0
|
||||||
|
ave/max small velocity = 13.30933 24.335888
|
||||||
|
ave/max big velocity = 2.080284 5.0567191
|
||||||
|
Neighbor list info ...
|
||||||
|
update: every = 1 steps, delay = 0 steps, check = yes
|
||||||
|
max neighbors/atom: 10000, page size: 100000
|
||||||
|
master list distance cutoff = 4.3
|
||||||
|
ghost atom cutoff = 4.3
|
||||||
|
binsize = 26.726124, bins = 1 1 1
|
||||||
|
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||||
|
(1) pair gayberne, perpetual
|
||||||
|
attributes: half, newton on
|
||||||
|
pair build: half/multi/atomonly/newton
|
||||||
|
stencil: half/multi/2d
|
||||||
|
bin: multi
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 16.89 | 16.9 | 16.91 Mbytes
|
||||||
|
Step Temp c_rot f_2[9] TotEng v_pebig v_ebig Press f_2[1] f_2[2] f_2[3] f_2[4] f_2[5] f_2[6] f_2[7] f_2[8] f_2[9] f_2[10] f_2[11] f_2[12]
|
||||||
|
0 2.9005016 2.9005016 0 0.025582147 -0.51282147 3.8089259 0.89862191 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
1000 2.7138279 2.7138279 0.82437872 0.023781703 -0.50274582 3.5408578 1.6816604 13758 32 34 0 274 66564 11449 4238 0.82437872 24 50 0
|
||||||
|
2000 1.3183118 1.3183118 0.91362053 0.0077748292 -0.80669023 1.1575943 1.1678425 14118 23 23 0 414 66564 11449 4269 0.91362053 24 50 0
|
||||||
|
3000 1.3117991 1.3117991 0.96889539 0.0065133847 -0.98480276 0.96977785 0.51801823 14675 35 36 0 588 66564 11449 4291 0.96889539 26 50 0
|
||||||
|
4000 1.1034132 1.1034132 0.95899765 0.0042496304 -1.0113582 0.63272747 0.6382343 15146 38 38 0 776 66564 11449 4309 0.95899765 26 50 0
|
||||||
|
5000 1.0814177 1.0814177 1.0037423 0.0047549676 -0.90334518 0.70796713 0.76138491 15275 40 40 0 973 66564 11449 4285 1.0037423 26 50 0
|
||||||
|
6000 1.0515425 1.0515425 0.98728204 0.0041039749 -0.95575757 0.61104083 0.61253791 15685 34 34 0 1205 66564 11449 4328 0.98728204 26 50 0
|
||||||
|
7000 0.96229389 0.96229389 1.0146054 0.0031968892 -0.95783307 0.47598483 0.4469161 15944 43 43 0 1412 66564 11449 4391 1.0146054 27 50 0
|
||||||
|
8000 0.98798058 0.98798058 0.99692702 0.0037348841 -0.91600418 0.55608689 0.50558822 16250 43 43 0 1637 66564 11449 4330 0.99692702 27 50 0
|
||||||
|
9000 1.0120554 1.0120554 1.0099521 0.0039518454 -0.91957229 0.58839026 0.4092229 16367 43 44 0 1899 66564 11449 4309 1.0099521 27 50 0
|
||||||
|
10000 1.104152 1.104152 0.9993147 0.0053713858 -0.84544079 0.79974564 0.5119979 16331 50 50 0 2108 66564 11449 4353 0.9993147 27 50 0
|
||||||
|
Loop time of 2.95619 on 4 procs for 10000 steps with 14889 atoms
|
||||||
|
|
||||||
|
Performance: 146134.205 tau/day, 3382.736 timesteps/s, 50.366 Matom-step/s
|
||||||
|
99.2% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
|
MPI task timing breakdown:
|
||||||
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Pair | 0.48773 | 0.52727 | 0.62879 | 8.1 | 17.84
|
||||||
|
Neigh | 0.0070094 | 0.0072204 | 0.0076255 | 0.3 | 0.24
|
||||||
|
Comm | 0.12898 | 0.22553 | 0.265 | 11.8 | 7.63
|
||||||
|
Output | 0.0005957 | 0.00064777 | 0.00075264 | 0.0 | 0.02
|
||||||
|
Modify | 2.1317 | 2.1512 | 2.166 | 0.9 | 72.77
|
||||||
|
Other | | 0.04427 | | | 1.50
|
||||||
|
|
||||||
|
Nlocal: 3722.25 ave 3968 max 3389 min
|
||||||
|
Histogram: 1 0 0 0 1 0 0 0 1 1
|
||||||
|
Nghost: 39.75 ave 44 max 35 min
|
||||||
|
Histogram: 1 0 0 0 1 0 1 0 0 1
|
||||||
|
Neighs: 101 ave 125 max 86 min
|
||||||
|
Histogram: 1 0 1 1 0 0 0 0 0 1
|
||||||
|
|
||||||
|
Total # of neighbors = 404
|
||||||
|
Ave neighs/atom = 0.027134126
|
||||||
|
Neighbor list builds = 500
|
||||||
|
Dangerous builds = 0
|
||||||
|
Total wall time: 0:00:03
|
||||||
347
examples/ASPHERE/ellipsoid/log.1Feb24.ellipsoid.mp.g++.1
Normal file
347
examples/ASPHERE/ellipsoid/log.1Feb24.ellipsoid.mp.g++.1
Normal file
@ -0,0 +1,347 @@
|
|||||||
|
LAMMPS (21 Nov 2023 - Development - patch_21Nov2023-665-g17f869bf5e)
|
||||||
|
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||||
|
using 1 OpenMP thread(s) per MPI task
|
||||||
|
# SRD viscosity demo - ellipsoids
|
||||||
|
|
||||||
|
units lj
|
||||||
|
atom_style ellipsoid
|
||||||
|
atom_modify first big
|
||||||
|
dimension 2
|
||||||
|
|
||||||
|
# create big ellipsoidal particles
|
||||||
|
|
||||||
|
lattice sq 0.14
|
||||||
|
Lattice spacing in x,y,z = 2.6726124 2.6726124 2.6726124
|
||||||
|
region box block 0 10 0 10 -0.5 0.5
|
||||||
|
create_box 2 box
|
||||||
|
Created orthogonal box = (0 0 -1.3363062) to (26.726124 26.726124 1.3363062)
|
||||||
|
1 by 1 by 1 MPI processor grid
|
||||||
|
create_atoms 1 region box
|
||||||
|
Created 100 atoms
|
||||||
|
using lattice units in orthogonal box = (0 0 -1.3363062) to (26.726124 26.726124 1.3363062)
|
||||||
|
create_atoms CPU = 0.000 seconds
|
||||||
|
|
||||||
|
set type 1 mass 1.0
|
||||||
|
Setting atom values ...
|
||||||
|
100 settings made for mass
|
||||||
|
set type 1 shape 3.0 1.0 1.0
|
||||||
|
Setting atom values ...
|
||||||
|
100 settings made for shape
|
||||||
|
group big type 1
|
||||||
|
100 atoms in group big
|
||||||
|
set group big quat/random 29898
|
||||||
|
Setting atom values ...
|
||||||
|
100 settings made for quat/random
|
||||||
|
|
||||||
|
velocity big create 1.44 87287 loop geom
|
||||||
|
|
||||||
|
# equilibrate big particles
|
||||||
|
|
||||||
|
pair_style gayberne 1.0 3.0 1.0 4.0
|
||||||
|
pair_coeff 1 1 1.0 1.0 1 1 1 1 1 1
|
||||||
|
pair_coeff 1 2 1.0 1.0 1 1 1 1 1 1 0.0
|
||||||
|
pair_coeff 2 2 1.0 1.0 1 1 1 1 1 1 0.0
|
||||||
|
|
||||||
|
neighbor 0.3 bin
|
||||||
|
neigh_modify delay 0 every 1 check yes
|
||||||
|
|
||||||
|
fix 1 big nve/asphere
|
||||||
|
fix 2 all enforce2d
|
||||||
|
|
||||||
|
compute rot big temp/asphere
|
||||||
|
compute 0 all property/atom quatw quati quatj quatk shapex shapey shapez
|
||||||
|
|
||||||
|
#dump 1 all custom 10 dump.ellipsoid.equil id type x y z c_0[*]
|
||||||
|
#dump_modify 1 colname c_0[1] quatw colname c_0[2] quati colname c_0[3] quatj colname c_0[4] quatk # colname c_0[5] shapex colname c_0[6] shapey colname c_0[7] shapez
|
||||||
|
|
||||||
|
thermo_style custom step temp c_rot epair etotal press
|
||||||
|
thermo 100
|
||||||
|
|
||||||
|
run 1000
|
||||||
|
|
||||||
|
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||||
|
|
||||||
|
Your simulation uses code contributions which should be cited:
|
||||||
|
|
||||||
|
- pair gayberne command: doi:10.1063/1.3058435
|
||||||
|
|
||||||
|
@Article{Brown09,
|
||||||
|
author = {W. M. Brown and M. K. Petersen and S. J. Plimpton and G. S. Grest},
|
||||||
|
title = {Liquid Crystal Nanodroplets in Solution},
|
||||||
|
journal = {J.~Chem.\ Phys.},
|
||||||
|
year = 2009,
|
||||||
|
volume = 130,
|
||||||
|
number = 4,
|
||||||
|
pages = {044901}
|
||||||
|
}
|
||||||
|
|
||||||
|
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||||
|
|
||||||
|
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
|
||||||
|
Neighbor list info ...
|
||||||
|
update: every = 1 steps, delay = 0 steps, check = yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 4.3
|
||||||
|
ghost atom cutoff = 4.3
|
||||||
|
binsize = 2.15, bins = 13 13 2
|
||||||
|
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||||
|
(1) pair gayberne, perpetual
|
||||||
|
attributes: half, newton on
|
||||||
|
pair build: half/bin/atomonly/newton
|
||||||
|
stencil: half/bin/2d
|
||||||
|
bin: standard
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 4.611 | 4.611 | 4.611 Mbytes
|
||||||
|
Step Temp c_rot E_pair TotEng Press
|
||||||
|
0 1.44 0.95677852 2.7038078 4.1294078 10.518912
|
||||||
|
100 2.5524145 2.801098 -0.37027046 2.1566199 0.84703874
|
||||||
|
200 2.6266386 2.7938164 -0.35322565 2.2471465 1.004886
|
||||||
|
300 2.9987557 2.9499545 -0.58917376 2.3795944 0.73081788
|
||||||
|
400 2.8557446 2.8208128 -0.39904801 2.4281391 0.91808964
|
||||||
|
500 2.4399047 2.8255746 -0.40056447 2.0149412 1.0538908
|
||||||
|
600 2.854258 2.9166789 -0.53424483 2.2914706 0.8117508
|
||||||
|
700 2.9593679 2.8231211 -0.40051715 2.5292571 1.1630889
|
||||||
|
800 2.7632972 2.9060854 -0.52075351 2.2149107 0.7710678
|
||||||
|
900 2.9905597 2.8869667 -0.49099378 2.4696603 0.69616841
|
||||||
|
1000 2.8470138 2.9005012 -0.51282088 2.3057228 0.68817567
|
||||||
|
Loop time of 0.192844 on 1 procs for 1000 steps with 100 atoms
|
||||||
|
|
||||||
|
Performance: 2240155.241 tau/day, 5185.545 timesteps/s, 518.554 katom-step/s
|
||||||
|
99.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 | 0.17225 | 0.17225 | 0.17225 | 0.0 | 89.32
|
||||||
|
Neigh | 0.0025614 | 0.0025614 | 0.0025614 | 0.0 | 1.33
|
||||||
|
Comm | 0.0024746 | 0.0024746 | 0.0024746 | 0.0 | 1.28
|
||||||
|
Output | 0.0001406 | 0.0001406 | 0.0001406 | 0.0 | 0.07
|
||||||
|
Modify | 0.014112 | 0.014112 | 0.014112 | 0.0 | 7.32
|
||||||
|
Other | | 0.001306 | | | 0.68
|
||||||
|
|
||||||
|
Nlocal: 100 ave 100 max 100 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Nghost: 77 ave 77 max 77 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Neighs: 369 ave 369 max 369 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
|
||||||
|
Total # of neighbors = 369
|
||||||
|
Ave neighs/atom = 3.69
|
||||||
|
Neighbor list builds = 174
|
||||||
|
Dangerous builds = 0
|
||||||
|
|
||||||
|
#undump 1
|
||||||
|
unfix 1
|
||||||
|
unfix 2
|
||||||
|
|
||||||
|
# add small particles as hi density lattice
|
||||||
|
|
||||||
|
region plane block INF INF INF INF -0.001 0.001 units box
|
||||||
|
lattice sq 120.0
|
||||||
|
Lattice spacing in x,y,z = 0.091287093 0.091287093 0.091287093
|
||||||
|
create_atoms 2 region plane
|
||||||
|
Created 85849 atoms
|
||||||
|
using lattice units in orthogonal box = (0 0 -1.3363062) to (26.726124 26.726124 1.3363062)
|
||||||
|
create_atoms CPU = 0.015 seconds
|
||||||
|
|
||||||
|
set type 2 mass 0.01
|
||||||
|
Setting atom values ...
|
||||||
|
85849 settings made for mass
|
||||||
|
group small type 2
|
||||||
|
85849 atoms in group small
|
||||||
|
velocity small create 1.0 593849 loop geom
|
||||||
|
|
||||||
|
# delete overlaps
|
||||||
|
# must set 1-2 cutoff to non-zero value
|
||||||
|
|
||||||
|
pair_style lj/cut 2.5
|
||||||
|
pair_coeff 1 1 1.0 1.0
|
||||||
|
pair_coeff 2 2 0.0 1.0 0.0
|
||||||
|
pair_coeff 1 2 0.0 1.0 2.0
|
||||||
|
|
||||||
|
neigh_modify one 10000
|
||||||
|
|
||||||
|
delete_atoms overlap 1.6 small big
|
||||||
|
System init for delete_atoms ...
|
||||||
|
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
|
||||||
|
Neighbor list info ...
|
||||||
|
update: every = 1 steps, delay = 0 steps, check = yes
|
||||||
|
max neighbors/atom: 10000, page size: 100000
|
||||||
|
master list distance cutoff = 2.8
|
||||||
|
ghost atom cutoff = 2.8
|
||||||
|
binsize = 1.4, bins = 20 20 2
|
||||||
|
2 neighbor lists, perpetual/occasional/extra = 1 1 0
|
||||||
|
(1) command delete_atoms, occasional
|
||||||
|
attributes: full, newton on
|
||||||
|
pair build: full/bin/atomonly
|
||||||
|
stencil: full/bin/2d
|
||||||
|
bin: standard
|
||||||
|
(2) pair lj/cut, perpetual
|
||||||
|
attributes: half, newton on
|
||||||
|
pair build: half/bin/atomonly/newton
|
||||||
|
stencil: half/bin/2d
|
||||||
|
bin: standard
|
||||||
|
WARNING: Delete_atoms cutoff > minimum neighbor cutoff (src/delete_atoms.cpp:312)
|
||||||
|
Deleted 71060 atoms, new total = 14889
|
||||||
|
|
||||||
|
# SRD run
|
||||||
|
|
||||||
|
reset_timestep 0
|
||||||
|
|
||||||
|
neighbor 0.3 multi
|
||||||
|
neigh_modify delay 0 every 1 check yes
|
||||||
|
|
||||||
|
comm_modify mode multi group big vel yes
|
||||||
|
neigh_modify include big
|
||||||
|
|
||||||
|
# no pairwise interactions with small particles
|
||||||
|
|
||||||
|
pair_style gayberne 1.0 3.0 1.0 4.0
|
||||||
|
pair_coeff 1 1 1.0 1.0 1 1 1 1 1 1
|
||||||
|
pair_coeff 1 2 1.0 1.0 1 1 1 1 1 1 0.0
|
||||||
|
pair_coeff 2 2 1.0 1.0 1 1 1 1 1 1 0.0
|
||||||
|
|
||||||
|
# use fix SRD to push small particles out from inside big ones
|
||||||
|
# if comment out, big particles won't see SRD particles
|
||||||
|
|
||||||
|
timestep 0.0005
|
||||||
|
|
||||||
|
fix 1 big nve/asphere
|
||||||
|
fix 2 small srd 20 big 1.0 0.25 49894 shift yes 54979 collision noslip search 0.2 inside ignore exact no bounce 50
|
||||||
|
fix 3 small viscosity 20 x y 50
|
||||||
|
fix 4 all enforce2d
|
||||||
|
|
||||||
|
# diagnostics
|
||||||
|
|
||||||
|
compute tbig big temp/asphere
|
||||||
|
variable pebig equal pe*atoms/count(big)
|
||||||
|
variable ebig equal etotal*atoms/count(big)
|
||||||
|
thermo_style custom step temp c_rot f_2[9] etotal v_pebig v_ebig press f_2[1] f_2[2] f_2[3] f_2[4] f_2[5] f_2[6] f_2[7] f_2[8] f_2[9] f_2[10] f_2[11] f_2[12]
|
||||||
|
|
||||||
|
thermo_modify temp tbig
|
||||||
|
WARNING: Temperature for thermo pressure is not for group all (src/thermo.cpp:530)
|
||||||
|
thermo 1000
|
||||||
|
|
||||||
|
#dump 1 all custom 500 dump.ellipsoid id type x y z c_0[*]
|
||||||
|
#dump_modify 1 colname c_0[1] quatw colname c_0[2] quati colname c_0[3] quatj colname c_0[4] quatk # colname c_0[5] shapex colname c_0[6] shapey colname c_0[7] shapez
|
||||||
|
|
||||||
|
#dump 1 all image 500 image.*.jpg type type zoom 1.6
|
||||||
|
#dump_modify 1 pad 6 adiam 1 1 adiam 2 0.2
|
||||||
|
|
||||||
|
run 10000
|
||||||
|
|
||||||
|
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||||
|
|
||||||
|
Your simulation uses code contributions which should be cited:
|
||||||
|
|
||||||
|
- neighbor multi command: doi:10.1016/j.cpc.2008.03.005, doi:10.1007/s40571-020-00361-2
|
||||||
|
|
||||||
|
@Article{Intveld08,
|
||||||
|
author = {in 't Veld, P. J. and S. J.~Plimpton and G. S. Grest},
|
||||||
|
title = {Accurate and Efficient Methods for Modeling Colloidal
|
||||||
|
Mixtures in an Explicit Solvent using Molecular Dynamics},
|
||||||
|
journal = {Comput.\ Phys.\ Commut.},
|
||||||
|
year = 2008,
|
||||||
|
volume = 179,
|
||||||
|
pages = {320--329}
|
||||||
|
}
|
||||||
|
|
||||||
|
@article{Shire2020,
|
||||||
|
author = {Shire, Tom and Hanley, Kevin J. and Stratford, Kevin},
|
||||||
|
title = {{DEM} Simulations of Polydisperse Media: Efficient Contact
|
||||||
|
Detection Applied to Investigate the Quasi-Static Limit},
|
||||||
|
journal = {Computational Particle Mechanics},
|
||||||
|
year = {2020}
|
||||||
|
@article{Monti2022,
|
||||||
|
author = {Monti, Joseph M. and Clemmer, Joel T. and Srivastava,
|
||||||
|
Ishan and Silbert, Leonardo E. and Grest, Gary S.
|
||||||
|
and Lechman, Jeremy B.},
|
||||||
|
title = {Large-scale frictionless jamming with power-law particle
|
||||||
|
size distributions},
|
||||||
|
journal = {Phys. Rev. E},
|
||||||
|
volume = {106}
|
||||||
|
issue = {3}
|
||||||
|
year = {2022}
|
||||||
|
}
|
||||||
|
|
||||||
|
- fix srd command: doi:10.1063/1.3419070
|
||||||
|
|
||||||
|
@Article{Petersen10,
|
||||||
|
author = {M. K. Petersen and J. B. Lechman and S. J. Plimpton and
|
||||||
|
G. S. Grest and in 't Veld, P. J. and P. R. Schunk},
|
||||||
|
title = {Mesoscale Hydrodynamics via Stochastic Rotation
|
||||||
|
Dynamics: Comparison with {L}ennard-{J}ones Fluid},
|
||||||
|
journal = {J.~Chem.\ Phys.},
|
||||||
|
year = 2010,
|
||||||
|
volume = 132,
|
||||||
|
pages = 174106
|
||||||
|
}
|
||||||
|
|
||||||
|
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||||
|
|
||||||
|
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
|
||||||
|
SRD info:
|
||||||
|
SRD/big particles = 14789 100
|
||||||
|
big particle diameter max/min = 3 1
|
||||||
|
SRD temperature & lamda = 1 0.1
|
||||||
|
SRD max distance & max velocity = 0.4 40
|
||||||
|
SRD grid counts: 107 107 1
|
||||||
|
SRD grid size: request, actual (xyz) = 0.25, 0.24977686 0.24977686 2.6726124
|
||||||
|
SRD per actual grid cell = 1.9275711
|
||||||
|
SRD viscosity = 0.68810145
|
||||||
|
big/SRD mass density ratio = 1.3736715
|
||||||
|
# of rescaled SRD velocities = 0
|
||||||
|
ave/max small velocity = 13.30933 24.335888
|
||||||
|
ave/max big velocity = 2.0802836 5.05672
|
||||||
|
Neighbor list info ...
|
||||||
|
update: every = 1 steps, delay = 0 steps, check = yes
|
||||||
|
max neighbors/atom: 10000, page size: 100000
|
||||||
|
master list distance cutoff = 4.3
|
||||||
|
ghost atom cutoff = 4.3
|
||||||
|
binsize = 26.726124, bins = 1 1 1
|
||||||
|
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||||
|
(1) pair gayberne, perpetual
|
||||||
|
attributes: half, newton on
|
||||||
|
pair build: half/multi/atomonly/newton
|
||||||
|
stencil: half/multi/2d
|
||||||
|
bin: multi
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 43.23 | 43.23 | 43.23 Mbytes
|
||||||
|
Step Temp c_rot f_2[9] TotEng v_pebig v_ebig Press f_2[1] f_2[2] f_2[3] f_2[4] f_2[5] f_2[6] f_2[7] f_2[8] f_2[9] f_2[10] f_2[11] f_2[12]
|
||||||
|
0 2.9005012 2.9005012 0 0.025582147 -0.51282088 3.8089259 0.8986241 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
|
1000 2.3102693 2.3102693 0.82371999 0.019779507 -0.49733043 2.9449709 1.9807143 13954 30 30 0 277 38416 11449 4255 0.82371999 15 50 0
|
||||||
|
2000 1.5312119 1.5312119 0.90846884 0.008532096 -1.011162 1.2703438 0.58038663 14523 37 37 0 439 38416 11449 4257 0.90846884 20 50 0
|
||||||
|
3000 1.3603443 1.3603443 0.95241399 0.0085403252 -0.75534393 1.271569 1.2262133 14864 34 35 0 599 38416 11449 4287 0.95241399 20 50 0
|
||||||
|
4000 2.2408861 2.2408861 0.99089404 0.016876315 -0.82620566 2.5127146 1.2664088 15457 35 35 0 809 38416 11449 4272 0.99089404 21 50 0
|
||||||
|
5000 1.7110067 1.7110067 0.99729333 0.011146301 -0.88982716 1.6595728 0.97334407 15555 36 36 0 1026 38416 11449 4324 0.99729333 24 50 0
|
||||||
|
6000 1.684666 1.684666 1.0235606 0.009751253 -1.0582882 1.4518641 0.62435255 15752 45 46 0 1256 38416 11449 4303 1.0235606 24 50 0
|
||||||
|
7000 2.1142261 2.1142261 1.0160206 0.014786886 -0.94857757 2.2016194 0.7761903 16144 30 30 0 1492 38416 11449 4401 1.0160206 27 50 0
|
||||||
|
8000 2.5622926 2.5622926 1.0125365 0.019933518 -0.84991443 2.9679015 0.93716383 16302 43 43 0 1720 38416 11449 4346 1.0125365 27 50 0
|
||||||
|
9000 2.6593623 2.6593623 1.0110535 0.020725053 -0.87669675 3.0857531 0.97818336 16856 44 44 0 2000 38416 11449 4298 1.0110535 30 50 0
|
||||||
|
10000 2.7567851 2.7567851 1.0379053 0.021598993 -0.8917358 3.2158741 0.74950846 16770 50 53 0 2284 38416 11449 4316 1.0379053 30 50 0
|
||||||
|
Loop time of 9.02679 on 1 procs for 10000 steps with 14889 atoms
|
||||||
|
|
||||||
|
Performance: 47857.551 tau/day, 1107.814 timesteps/s, 16.494 Matom-step/s
|
||||||
|
99.8% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
|
MPI task timing breakdown:
|
||||||
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Pair | 1.8454 | 1.8454 | 1.8454 | 0.0 | 20.44
|
||||||
|
Neigh | 0.018708 | 0.018708 | 0.018708 | 0.0 | 0.21
|
||||||
|
Comm | 0.059853 | 0.059853 | 0.059853 | 0.0 | 0.66
|
||||||
|
Output | 0.00081453 | 0.00081453 | 0.00081453 | 0.0 | 0.01
|
||||||
|
Modify | 7.0469 | 7.0469 | 7.0469 | 0.0 | 78.07
|
||||||
|
Other | | 0.05507 | | | 0.61
|
||||||
|
|
||||||
|
Nlocal: 14889 ave 14889 max 14889 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Nghost: 75 ave 75 max 75 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Neighs: 382 ave 382 max 382 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
|
||||||
|
Total # of neighbors = 382
|
||||||
|
Ave neighs/atom = 0.025656525
|
||||||
|
Neighbor list builds = 500
|
||||||
|
Dangerous builds = 0
|
||||||
|
Total wall time: 0:00:11
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user