Merge branch 'lammps:develop' into compute-pace-update
2
.github/CONTRIBUTING.md
vendored
@ -1,6 +1,6 @@
|
||||
# Contributing to LAMMPS via GitHub
|
||||
|
||||
Thank your for considering to contribute to the LAMMPS software project.
|
||||
Thank you for considering to contribute to the LAMMPS software project.
|
||||
|
||||
The following is a set of guidelines as well as explanations of policies and work flows for contributing to the LAMMPS molecular dynamics software project. These guidelines focus on submitting issues or pull requests on the LAMMPS GitHub project.
|
||||
|
||||
|
||||
3
.gitignore
vendored
@ -57,3 +57,6 @@ out/x86
|
||||
out/x64
|
||||
src/Makefile.package-e
|
||||
src/Makefile.package.settings-e
|
||||
/cmake/build/x64-Debug-Clang
|
||||
/install/x64-GUI-MSVC
|
||||
/install
|
||||
|
||||
@ -1,8 +1,9 @@
|
||||
# -*- CMake -*- master configuration file for building LAMMPS
|
||||
########################################
|
||||
# CMake build system
|
||||
# This file is part of LAMMPS
|
||||
# Created by Christoph Junghans and Richard Berger
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
########################################
|
||||
# set policy to silence warnings about ignoring <PackageName>_ROOT but use it
|
||||
if(POLICY CMP0074)
|
||||
@ -12,22 +13,11 @@ endif()
|
||||
if(POLICY CMP0075)
|
||||
cmake_policy(SET CMP0075 NEW)
|
||||
endif()
|
||||
# set policy to silence warnings about missing executable permissions in
|
||||
# pythonx.y-config when cross-compiling. review occasionally if it may be set to NEW
|
||||
if(POLICY CMP0109)
|
||||
cmake_policy(SET CMP0109 OLD)
|
||||
endif()
|
||||
# set policy to silence warnings about timestamps of downloaded files. review occasionally if it may be set to NEW
|
||||
if(POLICY CMP0135)
|
||||
cmake_policy(SET CMP0135 OLD)
|
||||
endif()
|
||||
########################################
|
||||
# Use CONFIGURE_DEPENDS as option for file(GLOB...) when available
|
||||
if(CMAKE_VERSION VERSION_LESS 3.12)
|
||||
unset(CONFIGURE_DEPENDS)
|
||||
else()
|
||||
set(CONFIGURE_DEPENDS CONFIGURE_DEPENDS)
|
||||
endif()
|
||||
|
||||
########################################
|
||||
|
||||
project(lammps CXX)
|
||||
@ -136,15 +126,15 @@ if((PKG_KOKKOS) AND (Kokkos_ENABLE_CUDA) AND NOT (CMAKE_CXX_COMPILER_ID STREQUAL
|
||||
set(CMAKE_TUNE_DEFAULT "${CMAKE_TUNE_DEFAULT} -Xcudafe --diag_suppress=unrecognized_pragma")
|
||||
endif()
|
||||
|
||||
# we require C++11 without extensions. Kokkos requires at least C++14 (currently)
|
||||
# we require C++11 without extensions. Kokkos requires at least C++17 (currently)
|
||||
if(NOT CMAKE_CXX_STANDARD)
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
endif()
|
||||
if(CMAKE_CXX_STANDARD LESS 11)
|
||||
message(FATAL_ERROR "C++ standard must be set to at least 11")
|
||||
endif()
|
||||
if(PKG_KOKKOS AND (CMAKE_CXX_STANDARD LESS 14))
|
||||
set(CMAKE_CXX_STANDARD 14)
|
||||
if(PKG_KOKKOS AND (CMAKE_CXX_STANDARD LESS 17))
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
endif()
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF CACHE BOOL "Use compiler extensions")
|
||||
@ -155,6 +145,7 @@ if(MSVC)
|
||||
add_compile_options(/Zc:__cplusplus)
|
||||
add_compile_options(/wd4244)
|
||||
add_compile_options(/wd4267)
|
||||
add_compile_options(/wd4250)
|
||||
add_compile_options(/EHsc)
|
||||
endif()
|
||||
add_compile_definitions(_CRT_SECURE_NO_WARNINGS)
|
||||
@ -192,6 +183,7 @@ option(BUILD_SHARED_LIBS "Build shared library" OFF)
|
||||
option(CMAKE_POSITION_INDEPENDENT_CODE "Create object compatible with shared libraries" ON)
|
||||
option(BUILD_TOOLS "Build and install LAMMPS tools (msi2lmp, binary2txt, chain)" OFF)
|
||||
option(BUILD_LAMMPS_SHELL "Build and install the LAMMPS shell" OFF)
|
||||
option(BUILD_LAMMPS_GUI "Build and install the LAMMPS GUI" OFF)
|
||||
|
||||
# Support using clang-tidy for C++ files with selected options
|
||||
set(ENABLE_CLANG_TIDY OFF CACHE BOOL "Include clang-tidy processing when compiling")
|
||||
@ -202,8 +194,8 @@ else()
|
||||
endif()
|
||||
|
||||
include(GNUInstallDirs)
|
||||
file(GLOB ALL_SOURCES ${CONFIGURE_DEPENDS} ${LAMMPS_SOURCE_DIR}/[^.]*.cpp)
|
||||
file(GLOB MAIN_SOURCES ${CONFIGURE_DEPENDS} ${LAMMPS_SOURCE_DIR}/main.cpp)
|
||||
file(GLOB ALL_SOURCES CONFIGURE_DEPENDS ${LAMMPS_SOURCE_DIR}/[^.]*.cpp)
|
||||
file(GLOB MAIN_SOURCES CONFIGURE_DEPENDS ${LAMMPS_SOURCE_DIR}/main.cpp)
|
||||
list(REMOVE_ITEM ALL_SOURCES ${MAIN_SOURCES})
|
||||
add_library(lammps ${ALL_SOURCES})
|
||||
|
||||
@ -277,8 +269,6 @@ set(STANDARD_PACKAGES
|
||||
MOFFF
|
||||
MOLECULE
|
||||
MOLFILE
|
||||
MPIIO
|
||||
MSCG
|
||||
NETCDF
|
||||
ORIENT
|
||||
PERI
|
||||
@ -384,15 +374,9 @@ if(NOT ${LAMMPS_MEMALIGN} STREQUAL "0")
|
||||
target_compile_definitions(lammps PRIVATE -DLAMMPS_MEMALIGN=${LAMMPS_MEMALIGN})
|
||||
endif()
|
||||
|
||||
option(LAMMPS_EXCEPTIONS "enable the use of C++ exceptions for error messages (useful for library interface)" ${ENABLE_TESTING})
|
||||
if(LAMMPS_EXCEPTIONS)
|
||||
target_compile_definitions(lammps PUBLIC -DLAMMPS_EXCEPTIONS)
|
||||
endif()
|
||||
|
||||
# "hard" dependencies between packages resulting
|
||||
# in an error instead of skipping over files
|
||||
pkg_depends(ML-IAP ML-SNAP)
|
||||
pkg_depends(MPIIO MPI)
|
||||
pkg_depends(ATC MANYBODY)
|
||||
pkg_depends(LATBOLTZ MPI)
|
||||
pkg_depends(SCAFACOS MPI)
|
||||
@ -403,6 +387,7 @@ pkg_depends(CG-DNA MOLECULE)
|
||||
pkg_depends(CG-DNA ASPHERE)
|
||||
pkg_depends(ELECTRODE KSPACE)
|
||||
pkg_depends(EXTRA-MOLECULE MOLECULE)
|
||||
pkg_depends(MESONT MOLECULE)
|
||||
|
||||
# detect if we may enable OpenMP support by default
|
||||
set(BUILD_OMP_DEFAULT OFF)
|
||||
@ -440,14 +425,14 @@ if(BUILD_OMP)
|
||||
target_link_libraries(lmp PRIVATE OpenMP::OpenMP_CXX)
|
||||
endif()
|
||||
|
||||
if(PKG_MSCG OR PKG_ATC OR PKG_AWPMD OR PKG_ML-QUIP OR PKG_ML-POD OR PKG_ELECTRODE OR BUILD_TOOLS)
|
||||
if(PKG_ATC OR PKG_AWPMD OR PKG_ML-QUIP OR PKG_ML-POD OR PKG_ELECTRODE OR BUILD_TOOLS)
|
||||
enable_language(C)
|
||||
if (NOT USE_INTERNAL_LINALG)
|
||||
find_package(LAPACK)
|
||||
find_package(BLAS)
|
||||
endif()
|
||||
if(NOT LAPACK_FOUND OR NOT BLAS_FOUND OR USE_INTERNAL_LINALG)
|
||||
file(GLOB LINALG_SOURCES ${CONFIGURE_DEPENDS} ${LAMMPS_LIB_SOURCE_DIR}/linalg/[^.]*.cpp)
|
||||
file(GLOB LINALG_SOURCES CONFIGURE_DEPENDS ${LAMMPS_LIB_SOURCE_DIR}/linalg/[^.]*.cpp)
|
||||
add_library(linalg STATIC ${LINALG_SOURCES})
|
||||
set_target_properties(linalg PROPERTIES OUTPUT_NAME lammps_linalg${LAMMPS_MACHINE})
|
||||
set(BLAS_LIBRARIES "$<TARGET_FILE:linalg>")
|
||||
@ -465,12 +450,7 @@ option(WITH_JPEG "Enable JPEG support" ${JPEG_FOUND})
|
||||
if(WITH_JPEG)
|
||||
find_package(JPEG REQUIRED)
|
||||
target_compile_definitions(lammps PRIVATE -DLAMMPS_JPEG)
|
||||
if(CMAKE_VERSION VERSION_LESS 3.12)
|
||||
target_include_directories(lammps PRIVATE ${JPEG_INCLUDE_DIRS})
|
||||
target_link_libraries(lammps PRIVATE ${JPEG_LIBRARIES})
|
||||
else()
|
||||
target_link_libraries(lammps PRIVATE JPEG::JPEG)
|
||||
endif()
|
||||
target_link_libraries(lammps PRIVATE JPEG::JPEG)
|
||||
endif()
|
||||
|
||||
find_package(PNG QUIET)
|
||||
@ -520,7 +500,7 @@ else()
|
||||
endif()
|
||||
|
||||
foreach(PKG_WITH_INCL KSPACE PYTHON ML-IAP VORONOI COLVARS ML-HDNNP MDI MOLFILE NETCDF
|
||||
PLUMED QMMM ML-QUIP SCAFACOS MACHDYN VTK KIM MSCG COMPRESS ML-PACE LEPTON)
|
||||
PLUMED QMMM ML-QUIP SCAFACOS MACHDYN VTK KIM COMPRESS ML-PACE LEPTON)
|
||||
if(PKG_${PKG_WITH_INCL})
|
||||
include(Packages/${PKG_WITH_INCL})
|
||||
endif()
|
||||
@ -582,8 +562,8 @@ endforeach()
|
||||
foreach(PKG ${STANDARD_PACKAGES})
|
||||
set(${PKG}_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/${PKG})
|
||||
|
||||
file(GLOB ${PKG}_SOURCES ${CONFIGURE_DEPENDS} ${${PKG}_SOURCES_DIR}/[^.]*.cpp)
|
||||
file(GLOB ${PKG}_HEADERS ${CONFIGURE_DEPENDS} ${${PKG}_SOURCES_DIR}/[^.]*.h)
|
||||
file(GLOB ${PKG}_SOURCES CONFIGURE_DEPENDS ${${PKG}_SOURCES_DIR}/[^.]*.cpp)
|
||||
file(GLOB ${PKG}_HEADERS CONFIGURE_DEPENDS ${${PKG}_SOURCES_DIR}/[^.]*.h)
|
||||
|
||||
# check for package files in src directory due to old make system
|
||||
DetectBuildSystemConflict(${LAMMPS_SOURCE_DIR} ${${PKG}_SOURCES} ${${PKG}_HEADERS})
|
||||
@ -599,19 +579,12 @@ foreach(PKG ${STANDARD_PACKAGES})
|
||||
RegisterPackages(${${PKG}_SOURCES_DIR})
|
||||
endforeach()
|
||||
|
||||
# packages that need defines set
|
||||
foreach(PKG MPIIO)
|
||||
if(PKG_${PKG})
|
||||
target_compile_definitions(lammps PRIVATE -DLMP_${PKG})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# dedicated check for entire contents of accelerator packages
|
||||
foreach(PKG ${SUFFIX_PACKAGES})
|
||||
set(${PKG}_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/${PKG})
|
||||
|
||||
file(GLOB ${PKG}_SOURCES ${CONFIGURE_DEPENDS} ${${PKG}_SOURCES_DIR}/[^.]*.cpp)
|
||||
file(GLOB ${PKG}_HEADERS ${CONFIGURE_DEPENDS} ${${PKG}_SOURCES_DIR}/[^.]*.h)
|
||||
file(GLOB ${PKG}_SOURCES CONFIGURE_DEPENDS ${${PKG}_SOURCES_DIR}/[^.]*.cpp)
|
||||
file(GLOB ${PKG}_HEADERS CONFIGURE_DEPENDS ${${PKG}_SOURCES_DIR}/[^.]*.h)
|
||||
|
||||
# check for package files in src directory due to old make system
|
||||
DetectBuildSystemConflict(${LAMMPS_SOURCE_DIR} ${${PKG}_SOURCES} ${${PKG}_HEADERS})
|
||||
@ -625,7 +598,7 @@ endforeach()
|
||||
foreach(PKG_LIB POEMS ATC AWPMD H5MD)
|
||||
if(PKG_${PKG_LIB})
|
||||
string(TOLOWER "${PKG_LIB}" PKG_LIB)
|
||||
file(GLOB_RECURSE ${PKG_LIB}_SOURCES ${CONFIGURE_DEPENDS}
|
||||
file(GLOB_RECURSE ${PKG_LIB}_SOURCES CONFIGURE_DEPENDS
|
||||
${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/[^.]*.c ${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/[^.]*.cpp)
|
||||
add_library(${PKG_LIB} STATIC ${${PKG_LIB}_SOURCES})
|
||||
set_target_properties(${PKG_LIB} PROPERTIES OUTPUT_NAME lammps_${PKG_LIB}${LAMMPS_MACHINE})
|
||||
@ -795,9 +768,11 @@ include(Tools)
|
||||
include(Documentation)
|
||||
|
||||
###############################################################################
|
||||
# Install potential and force field files in data directory
|
||||
# Install bench, potential and force field files in data directory
|
||||
###############################################################################
|
||||
set(LAMMPS_INSTALL_DATADIR ${CMAKE_INSTALL_FULL_DATADIR}/lammps)
|
||||
set(LAMMPS_INSTALL_DATADIR ${CMAKE_INSTALL_DATADIR}/lammps)
|
||||
|
||||
install(DIRECTORY ${LAMMPS_DIR}/bench DESTINATION ${LAMMPS_INSTALL_DATADIR})
|
||||
install(DIRECTORY ${LAMMPS_POTENTIALS_DIR} DESTINATION ${LAMMPS_INSTALL_DATADIR})
|
||||
if(BUILD_TOOLS)
|
||||
install(DIRECTORY ${LAMMPS_TOOLS_DIR}/msi2lmp/frc_files DESTINATION ${LAMMPS_INSTALL_DATADIR})
|
||||
@ -818,20 +793,11 @@ install(
|
||||
# This is primarily for people that only want to use the Python wrapper.
|
||||
###############################################################################
|
||||
if(BUILD_SHARED_LIBS)
|
||||
if(CMAKE_VERSION VERSION_LESS 3.12)
|
||||
# adjust so we find Python 3 versions before Python 2 on old systems with old CMake
|
||||
set(Python_ADDITIONAL_VERSIONS 3.12 3.11 3.10 3.9 3.8 3.7 3.6)
|
||||
find_package(PythonInterp) # Deprecated since version 3.12
|
||||
if(PYTHONINTERP_FOUND)
|
||||
set(Python_EXECUTABLE ${PYTHON_EXECUTABLE})
|
||||
endif()
|
||||
else()
|
||||
# backward compatibility
|
||||
if(PYTHON_EXECUTABLE)
|
||||
set(Python_EXECUTABLE ${PYTHON_EXECUTABLE})
|
||||
endif()
|
||||
find_package(Python COMPONENTS Interpreter)
|
||||
# backward compatibility
|
||||
if(PYTHON_EXECUTABLE)
|
||||
set(Python_EXECUTABLE ${PYTHON_EXECUTABLE})
|
||||
endif()
|
||||
find_package(Python COMPONENTS Interpreter)
|
||||
if(BUILD_IS_MULTI_CONFIG)
|
||||
set(MY_BUILD_DIR ${CMAKE_BINARY_DIR}/$<CONFIG>)
|
||||
else()
|
||||
@ -890,13 +856,23 @@ else()
|
||||
endif()
|
||||
include(FeatureSummary)
|
||||
feature_summary(DESCRIPTION "The following tools and libraries have been found and configured:" WHAT PACKAGES_FOUND)
|
||||
if(GIT_FOUND AND EXISTS ${LAMMPS_DIR}/.git)
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} describe --dirty=-modified --always
|
||||
OUTPUT_VARIABLE GIT_DESCRIBE
|
||||
ERROR_QUIET
|
||||
WORKING_DIRECTORY ${LAMMPS_DIR}
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
endif()
|
||||
message(STATUS "<<< Build configuration >>>
|
||||
LAMMPS Version: ${PROJECT_VERSION}
|
||||
LAMMPS Version: ${PROJECT_VERSION} ${GIT_DESCRIBE}
|
||||
Operating System: ${CMAKE_SYSTEM_NAME} ${CMAKE_LINUX_DISTRO} ${CMAKE_DISTRO_VERSION}
|
||||
CMake Version: ${CMAKE_VERSION}
|
||||
Build type: ${LAMMPS_BUILD_TYPE}
|
||||
Install path: ${CMAKE_INSTALL_PREFIX}
|
||||
Generator: ${CMAKE_GENERATOR} using ${CMAKE_MAKE_PROGRAM}")
|
||||
if(CMAKE_CROSSCOMPILING)
|
||||
message(STATUS "Cross compiling on ${CMAKE_HOST_SYSTEM}")
|
||||
endif()
|
||||
###############################################################################
|
||||
# Print package summary
|
||||
###############################################################################
|
||||
@ -940,11 +916,9 @@ if(_index GREATER -1)
|
||||
endif()
|
||||
message(STATUS "<<< Linker flags: >>>")
|
||||
message(STATUS "Executable name: ${LAMMPS_BINARY}")
|
||||
if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.13)
|
||||
get_target_property(OPTIONS lammps LINK_OPTIONS)
|
||||
if(OPTIONS)
|
||||
message(STATUS "Linker options: ${OPTIONS}")
|
||||
endif()
|
||||
get_target_property(OPTIONS lammps LINK_OPTIONS)
|
||||
if(OPTIONS)
|
||||
message(STATUS "Linker options: ${OPTIONS}")
|
||||
endif()
|
||||
if(CMAKE_EXE_LINKER_FLAGS)
|
||||
message(STATUS "Executable linker flags: ${CMAKE_EXE_LINKER_FLAGS}")
|
||||
@ -1025,6 +999,14 @@ endif()
|
||||
if(BUILD_LAMMPS_SHELL)
|
||||
message(STATUS "<<< Building LAMMPS Shell >>>")
|
||||
endif()
|
||||
if(BUILD_LAMMPS_GUI)
|
||||
message(STATUS "<<< Building LAMMPS GUI >>>")
|
||||
if(LAMMPS_GUI_USE_PLUGIN)
|
||||
message(STATUS "Loading LAMMPS library as plugin at run time")
|
||||
else()
|
||||
message(STATUS "Linking LAMMPS library at compile time")
|
||||
endif()
|
||||
endif()
|
||||
if(ENABLE_TESTING)
|
||||
message(STATUS "<<< Building Unit Tests >>>")
|
||||
if(ENABLE_COVERAGE)
|
||||
|
||||
@ -63,6 +63,11 @@
|
||||
"name": "ENABLE_TESTING",
|
||||
"value": "True",
|
||||
"type": "BOOL"
|
||||
},
|
||||
{
|
||||
"name": "BUILD_LAMMPS_GUI",
|
||||
"value": "False",
|
||||
"type": "BOOL"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -303,6 +308,54 @@
|
||||
"type": "STRING"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "x64-GUI-MSVC",
|
||||
"generator": "Ninja",
|
||||
"configurationType": "Release",
|
||||
"buildRoot": "${workspaceRoot}\\build\\${name}",
|
||||
"installRoot": "${workspaceRoot}\\install\\${name}",
|
||||
"cmakeCommandArgs": "-C ${workspaceRoot}\\cmake\\presets\\windows.cmake -D QT_DIR=C:\\Qt\\5.15.2\\msvc2019_64\\lib\\cmake\\Qt5 -D Qt5_DIR=C:\\Qt\\5.15.2\\msvc2019_64\\lib\\cmake\\Qt5",
|
||||
"buildCommandArgs": "",
|
||||
"ctestCommandArgs": "-V",
|
||||
"inheritEnvironments": [ "msvc_x64_x64" ],
|
||||
"variables": [
|
||||
{
|
||||
"name": "BUILD_SHARED_LIBS",
|
||||
"value": "True",
|
||||
"type": "BOOL"
|
||||
},
|
||||
{
|
||||
"name": "BUILD_TOOLS",
|
||||
"value": "True",
|
||||
"type": "BOOL"
|
||||
},
|
||||
{
|
||||
"name": "LAMMPS_EXCEPTIONS",
|
||||
"value": "True",
|
||||
"type": "BOOL"
|
||||
},
|
||||
{
|
||||
"name": "ENABLE_TESTING",
|
||||
"value": "False",
|
||||
"type": "BOOL"
|
||||
},
|
||||
{
|
||||
"name": "BUILD_MPI",
|
||||
"value": "False",
|
||||
"type": "BOOL"
|
||||
},
|
||||
{
|
||||
"name": "WITH_PNG",
|
||||
"value": "False",
|
||||
"type": "BOOL"
|
||||
},
|
||||
{
|
||||
"name": "BUILD_LAMMPS_GUI",
|
||||
"value": "True",
|
||||
"type": "BOOL"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,19 +1,11 @@
|
||||
if(CMAKE_VERSION VERSION_LESS 3.12)
|
||||
find_package(PythonInterp 3.5 QUIET) # Deprecated since version 3.12
|
||||
if(PYTHONINTERP_FOUND)
|
||||
set(Python3_EXECUTABLE ${PYTHON_EXECUTABLE})
|
||||
set(Python3_VERSION ${PYTHON_VERSION_STRING})
|
||||
endif()
|
||||
else()
|
||||
# use default (or custom) Python executable, if version is sufficient
|
||||
if(Python_VERSION VERSION_GREATER_EQUAL 3.5)
|
||||
set(Python3_EXECUTABLE ${Python_EXECUTABLE})
|
||||
endif()
|
||||
find_package(Python3 COMPONENTS Interpreter QUIET)
|
||||
# use default (or custom) Python executable, if version is sufficient
|
||||
if(Python_VERSION VERSION_GREATER_EQUAL 3.6)
|
||||
set(Python3_EXECUTABLE ${Python_EXECUTABLE})
|
||||
endif()
|
||||
find_package(Python3 COMPONENTS Interpreter)
|
||||
|
||||
if(Python3_EXECUTABLE)
|
||||
if(Python3_VERSION VERSION_GREATER_EQUAL 3.5)
|
||||
if(Python3_VERSION VERSION_GREATER_EQUAL 3.6)
|
||||
add_custom_target(
|
||||
check-whitespace
|
||||
${Python3_EXECUTABLE} ${LAMMPS_TOOLS_DIR}/coding_standard/whitespace.py .
|
||||
|
||||
@ -5,24 +5,18 @@ option(BUILD_DOC "Build LAMMPS HTML documentation" OFF)
|
||||
|
||||
if(BUILD_DOC)
|
||||
# Current Sphinx versions require at least Python 3.8
|
||||
if(CMAKE_VERSION VERSION_LESS 3.12)
|
||||
find_package(PythonInterp 3.8 REQUIRED)
|
||||
set(VIRTUALENV ${PYTHON_EXECUTABLE} -m venv)
|
||||
else()
|
||||
# use default (or custom) Python executable, if version is sufficient
|
||||
if(Python_VERSION VERSION_GREATER_EQUAL 3.8)
|
||||
set(Python3_EXECUTABLE ${Python_EXECUTABLE})
|
||||
endif()
|
||||
find_package(Python3 REQUIRED COMPONENTS Interpreter)
|
||||
if(Python3_VERSION VERSION_LESS 3.8)
|
||||
message(FATAL_ERROR "Python 3.8 and up is required to build the HTML documentation")
|
||||
endif()
|
||||
set(VIRTUALENV ${Python3_EXECUTABLE} -m venv)
|
||||
# use default (or custom) Python executable, if version is sufficient
|
||||
if(Python_VERSION VERSION_GREATER_EQUAL 3.8)
|
||||
set(Python3_EXECUTABLE ${Python_EXECUTABLE})
|
||||
endif()
|
||||
find_package(Python3 REQUIRED COMPONENTS Interpreter)
|
||||
if(Python3_VERSION VERSION_LESS 3.8)
|
||||
message(FATAL_ERROR "Python 3.8 and up is required to build the HTML documentation")
|
||||
endif()
|
||||
set(VIRTUALENV ${Python3_EXECUTABLE} -m venv)
|
||||
|
||||
find_package(Doxygen 1.8.10 REQUIRED)
|
||||
|
||||
file(GLOB DOC_SOURCES ${CONFIGURE_DEPENDS} ${LAMMPS_DOC_DIR}/src/[^.]*.rst)
|
||||
|
||||
file(GLOB DOC_SOURCES CONFIGURE_DEPENDS ${LAMMPS_DOC_DIR}/src/[^.]*.rst)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT docenv
|
||||
@ -80,7 +74,7 @@ if(BUILD_DOC)
|
||||
message(STATUS "Using already downloaded archive ${CMAKE_BINARY_DIR}/libpace.tar.gz")
|
||||
endif()
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzf mathjax.tar.gz WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
file(GLOB MATHJAX_VERSION_DIR ${CONFIGURE_DEPENDS} ${CMAKE_CURRENT_BINARY_DIR}/MathJax-*)
|
||||
file(GLOB MATHJAX_VERSION_DIR CONFIGURE_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/MathJax-*)
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E rename ${MATHJAX_VERSION_DIR} ${DOC_BUILD_STATIC_DIR}/mathjax)
|
||||
endif()
|
||||
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
# Find clang-format
|
||||
find_program(ClangFormat_EXECUTABLE NAMES clang-format
|
||||
clang-format-17.0
|
||||
clang-format-16.0
|
||||
clang-format-15.0
|
||||
clang-format-14.0
|
||||
clang-format-13.0
|
||||
@ -19,7 +21,7 @@ if(ClangFormat_EXECUTABLE)
|
||||
OUTPUT_VARIABLE clang_format_version
|
||||
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
|
||||
if(clang_format_version MATCHES "^(Ubuntu |)clang-format version .*")
|
||||
if(clang_format_version MATCHES "^(Ubuntu |Debian |)clang-format version .*")
|
||||
# Arch Linux output:
|
||||
# clang-format version 10.0.0
|
||||
#
|
||||
@ -32,9 +34,15 @@ if(ClangFormat_EXECUTABLE)
|
||||
# Ubuntu 22.04 LTS output:
|
||||
# Ubuntu clang-format version 14.0.0-1ubuntu1
|
||||
#
|
||||
# Debian 11 output:
|
||||
# Debian clang-format version 11.0.1-2
|
||||
#
|
||||
# Debian 12 output:
|
||||
# Debian clang-format version 14.0.6
|
||||
#
|
||||
# Fedora 36 output:
|
||||
# clang-format version 14.0.5 (Fedora 14.0.5-1.fc36)
|
||||
string(REGEX REPLACE "^(Ubuntu |)clang-format version ([0-9.]+).*"
|
||||
string(REGEX REPLACE "^(Ubuntu |Debian |)clang-format version ([0-9.]+).*"
|
||||
"\\2"
|
||||
ClangFormat_VERSION
|
||||
"${clang_format_version}")
|
||||
|
||||
@ -7,15 +7,7 @@
|
||||
# adapted from https://github.com/cmarshall108/cython-cmake-example/blob/master/cmake/FindCython.cmake
|
||||
#=============================================================================
|
||||
|
||||
if(CMAKE_VERSION VERSION_LESS 3.12)
|
||||
set(Python_ADDITIONAL_VERSIONS 3.12 3.11 3.10 3.9 3.8 3.7 3.6)
|
||||
find_package(PythonInterp 3.6 QUIET) # Deprecated since version 3.12
|
||||
if(PYTHONINTERP_FOUND)
|
||||
set(Python_EXECUTABLE ${PYTHON_EXECUTABLE})
|
||||
endif()
|
||||
else()
|
||||
find_package(Python 3.6 COMPONENTS Interpreter QUIET)
|
||||
endif()
|
||||
find_package(Python 3.6 COMPONENTS Interpreter QUIET)
|
||||
|
||||
# Use the Cython executable that lives next to the Python executable
|
||||
# if it is a local installation.
|
||||
|
||||
@ -28,9 +28,8 @@ if(MSVC)
|
||||
add_compile_options(/Zc:__cplusplus)
|
||||
add_compile_options(/wd4244)
|
||||
add_compile_options(/wd4267)
|
||||
if(LAMMPS_EXCEPTIONS)
|
||||
add_compile_options(/EHsc)
|
||||
endif()
|
||||
add_compile_options(/wd4250)
|
||||
add_compile_options(/EHsc)
|
||||
endif()
|
||||
add_compile_definitions(_CRT_SECURE_NO_WARNINGS)
|
||||
endif()
|
||||
@ -65,7 +64,7 @@ endfunction(validate_option)
|
||||
|
||||
# helper function for getting the most recently modified file or folder from a glob pattern
|
||||
function(get_newest_file path variable)
|
||||
file(GLOB _dirs ${CONFIGURE_DEPENDS} ${path})
|
||||
file(GLOB _dirs CONFIGURE_DEPENDS ${path})
|
||||
set(_besttime 2000-01-01T00:00:00)
|
||||
set(_bestfile "<unknown>")
|
||||
foreach(_dir ${_dirs})
|
||||
|
||||
@ -41,7 +41,7 @@ endfunction()
|
||||
|
||||
# helper function for getting the most recently modified file or folder from a glob pattern
|
||||
function(get_newest_file path variable)
|
||||
file(GLOB _dirs ${CONFIGURE_DEPENDS} ${path})
|
||||
file(GLOB _dirs CONFIGURE_DEPENDS ${path})
|
||||
set(_besttime 2000-01-01T00:00:00)
|
||||
set(_bestfile "<unknown>")
|
||||
foreach(_dir ${_dirs})
|
||||
@ -80,8 +80,8 @@ endfunction()
|
||||
|
||||
function(check_for_autogen_files source_dir)
|
||||
message(STATUS "Running check for auto-generated files from make-based build system")
|
||||
file(GLOB SRC_AUTOGEN_FILES ${CONFIGURE_DEPENDS} ${source_dir}/style_*.h)
|
||||
file(GLOB SRC_AUTOGEN_PACKAGES ${CONFIGURE_DEPENDS} ${source_dir}/packages_*.h)
|
||||
file(GLOB SRC_AUTOGEN_FILES CONFIGURE_DEPENDS ${source_dir}/style_*.h)
|
||||
file(GLOB SRC_AUTOGEN_PACKAGES CONFIGURE_DEPENDS ${source_dir}/packages_*.h)
|
||||
list(APPEND SRC_AUTOGEN_FILES ${SRC_AUTOGEN_PACKAGES} ${source_dir}/lmpinstalledpkgs.h ${source_dir}/lmpgitversion.h)
|
||||
list(APPEND SRC_AUTOGEN_FILES ${SRC_AUTOGEN_PACKAGES} ${source_dir}/mliap_model_python_couple.h ${source_dir}/mliap_model_python_couple.cpp)
|
||||
foreach(_SRC ${SRC_AUTOGEN_FILES})
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
set(COLVARS_SOURCE_DIR ${LAMMPS_LIB_SOURCE_DIR}/colvars)
|
||||
|
||||
file(GLOB COLVARS_SOURCES ${CONFIGURE_DEPENDS} ${COLVARS_SOURCE_DIR}/[^.]*.cpp)
|
||||
file(GLOB COLVARS_SOURCES CONFIGURE_DEPENDS ${COLVARS_SOURCE_DIR}/[^.]*.cpp)
|
||||
|
||||
option(COLVARS_DEBUG "Enable debugging messages for Colvars (quite verbose)" OFF)
|
||||
|
||||
|
||||
@ -39,7 +39,7 @@ if (PKG_AMOEBA)
|
||||
${GPU_SOURCES_DIR}/amoeba_convolution_gpu.cpp)
|
||||
endif()
|
||||
|
||||
file(GLOB GPU_LIB_SOURCES ${CONFIGURE_DEPENDS} ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cpp)
|
||||
file(GLOB GPU_LIB_SOURCES CONFIGURE_DEPENDS ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cpp)
|
||||
file(MAKE_DIRECTORY ${LAMMPS_LIB_BINARY_DIR}/gpu)
|
||||
|
||||
if(GPU_API STREQUAL "CUDA")
|
||||
@ -64,11 +64,13 @@ if(GPU_API STREQUAL "CUDA")
|
||||
endif()
|
||||
set(GPU_CUDA_MPS_FLAGS "-DCUDA_MPS_SUPPORT")
|
||||
endif()
|
||||
option(CUDA_BUILD_MULTIARCH "Enable building CUDA kernels for all supported GPU architectures" ON)
|
||||
mark_as_advanced(GPU_BUILD_MULTIARCH)
|
||||
|
||||
set(GPU_ARCH "sm_50" CACHE STRING "LAMMPS GPU CUDA SM primary architecture (e.g. sm_60)")
|
||||
|
||||
# ensure that no *cubin.h files exist from a compile in the lib/gpu folder
|
||||
file(GLOB GPU_LIB_OLD_CUBIN_HEADERS ${CONFIGURE_DEPENDS} ${LAMMPS_LIB_SOURCE_DIR}/gpu/*_cubin.h)
|
||||
file(GLOB GPU_LIB_OLD_CUBIN_HEADERS CONFIGURE_DEPENDS ${LAMMPS_LIB_SOURCE_DIR}/gpu/*_cubin.h)
|
||||
if(GPU_LIB_OLD_CUBIN_HEADERS)
|
||||
message(FATAL_ERROR "########################################################################\n"
|
||||
"Found file(s) generated by the make-based build system in lib/gpu\n"
|
||||
@ -78,71 +80,73 @@ if(GPU_API STREQUAL "CUDA")
|
||||
"########################################################################")
|
||||
endif()
|
||||
|
||||
file(GLOB GPU_LIB_CU ${CONFIGURE_DEPENDS} ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cu ${CMAKE_CURRENT_SOURCE_DIR}/gpu/[^.]*.cu)
|
||||
file(GLOB GPU_LIB_CU CONFIGURE_DEPENDS ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cu ${CMAKE_CURRENT_SOURCE_DIR}/gpu/[^.]*.cu)
|
||||
list(REMOVE_ITEM GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_pppm.cu)
|
||||
|
||||
cuda_include_directories(${LAMMPS_LIB_SOURCE_DIR}/gpu ${LAMMPS_LIB_BINARY_DIR}/gpu)
|
||||
|
||||
if(CUDPP_OPT)
|
||||
cuda_include_directories(${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini)
|
||||
file(GLOB GPU_LIB_CUDPP_SOURCES ${CONFIGURE_DEPENDS} ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini/[^.]*.cpp)
|
||||
file(GLOB GPU_LIB_CUDPP_CU ${CONFIGURE_DEPENDS} ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini/[^.]*.cu)
|
||||
file(GLOB GPU_LIB_CUDPP_SOURCES CONFIGURE_DEPENDS ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini/[^.]*.cpp)
|
||||
file(GLOB GPU_LIB_CUDPP_CU CONFIGURE_DEPENDS ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini/[^.]*.cu)
|
||||
endif()
|
||||
|
||||
# build arch/gencode commands for nvcc based on CUDA toolkit version and use choice
|
||||
# --arch translates directly instead of JIT, so this should be for the preferred or most common architecture
|
||||
set(GPU_CUDA_GENCODE "-arch=${GPU_ARCH}")
|
||||
|
||||
# apply the following to build "fat" CUDA binaries only for known CUDA toolkits since version 8.0
|
||||
# only the Kepler achitecture and beyond is supported
|
||||
# comparison chart according to: https://en.wikipedia.org/wiki/CUDA#GPUs_supported
|
||||
if(CUDA_VERSION VERSION_LESS 8.0)
|
||||
message(FATAL_ERROR "CUDA Toolkit version 8.0 or later is required")
|
||||
elseif(CUDA_VERSION VERSION_GREATER_EQUAL "13.0")
|
||||
message(WARNING "Untested CUDA Toolkit version ${CUDA_VERSION}. Use at your own risk")
|
||||
set(GPU_CUDA_GENCODE "-arch=all")
|
||||
elseif(CUDA_VERSION VERSION_GREATER_EQUAL "12.0")
|
||||
set(GPU_CUDA_GENCODE "-arch=all")
|
||||
else()
|
||||
# Kepler (GPU Arch 3.0) is supported by CUDA 5 to CUDA 10.2
|
||||
if((CUDA_VERSION VERSION_GREATER_EQUAL "5.0") AND (CUDA_VERSION VERSION_LESS "11.0"))
|
||||
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_30,code=[sm_30,compute_30] ")
|
||||
endif()
|
||||
# Kepler (GPU Arch 3.5) is supported by CUDA 5 to CUDA 11
|
||||
if((CUDA_VERSION VERSION_GREATER_EQUAL "5.0") AND (CUDA_VERSION VERSION_LESS "12.0"))
|
||||
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_35,code=[sm_35,compute_35]")
|
||||
endif()
|
||||
# Maxwell (GPU Arch 5.x) is supported by CUDA 6 and later
|
||||
if(CUDA_VERSION VERSION_GREATER_EQUAL "6.0")
|
||||
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_50,code=[sm_50,compute_50] -gencode arch=compute_52,code=[sm_52,compute_52]")
|
||||
endif()
|
||||
# Pascal (GPU Arch 6.x) is supported by CUDA 8 and later
|
||||
if(CUDA_VERSION VERSION_GREATER_EQUAL "8.0")
|
||||
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_60,code=[sm_60,compute_60] -gencode arch=compute_61,code=[sm_61,compute_61]")
|
||||
endif()
|
||||
# Volta (GPU Arch 7.0) is supported by CUDA 9 and later
|
||||
if(CUDA_VERSION VERSION_GREATER_EQUAL "9.0")
|
||||
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_70,code=[sm_70,compute_70]")
|
||||
endif()
|
||||
# Turing (GPU Arch 7.5) is supported by CUDA 10 and later
|
||||
if(CUDA_VERSION VERSION_GREATER_EQUAL "10.0")
|
||||
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_75,code=[sm_75,compute_75]")
|
||||
endif()
|
||||
# Ampere (GPU Arch 8.0) is supported by CUDA 11 and later
|
||||
if(CUDA_VERSION VERSION_GREATER_EQUAL "11.0")
|
||||
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_80,code=[sm_80,compute_80]")
|
||||
endif()
|
||||
# Ampere (GPU Arch 8.6) is supported by CUDA 11.1 and later
|
||||
if(CUDA_VERSION VERSION_GREATER_EQUAL "11.1")
|
||||
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_86,code=[sm_86,compute_86]")
|
||||
endif()
|
||||
# Lovelace (GPU Arch 8.9) is supported by CUDA 11.8 and later
|
||||
if(CUDA_VERSION VERSION_GREATER_EQUAL "11.8")
|
||||
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_90,code=[sm_90,compute_90]")
|
||||
endif()
|
||||
# Hopper (GPU Arch 9.0) is supported by CUDA 12.0 and later
|
||||
if(CUDA_VERSION VERSION_GREATER_EQUAL "12.0")
|
||||
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_90,code=[sm_90,compute_90]")
|
||||
if(CUDA_BUILD_MULTIARCH)
|
||||
# apply the following to build "fat" CUDA binaries only for known CUDA toolkits since version 8.0
|
||||
# only the Kepler achitecture and beyond is supported
|
||||
# comparison chart according to: https://en.wikipedia.org/wiki/CUDA#GPUs_supported
|
||||
if(CUDA_VERSION VERSION_LESS 8.0)
|
||||
message(FATAL_ERROR "CUDA Toolkit version 8.0 or later is required")
|
||||
elseif(CUDA_VERSION VERSION_GREATER_EQUAL "13.0")
|
||||
message(WARNING "Untested CUDA Toolkit version ${CUDA_VERSION}. Use at your own risk")
|
||||
set(GPU_CUDA_GENCODE "-arch=all")
|
||||
elseif(CUDA_VERSION VERSION_GREATER_EQUAL "12.0")
|
||||
set(GPU_CUDA_GENCODE "-arch=all")
|
||||
else()
|
||||
# Kepler (GPU Arch 3.0) is supported by CUDA 5 to CUDA 10.2
|
||||
if((CUDA_VERSION VERSION_GREATER_EQUAL "5.0") AND (CUDA_VERSION VERSION_LESS "11.0"))
|
||||
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_30,code=[sm_30,compute_30] ")
|
||||
endif()
|
||||
# Kepler (GPU Arch 3.5) is supported by CUDA 5 to CUDA 11
|
||||
if((CUDA_VERSION VERSION_GREATER_EQUAL "5.0") AND (CUDA_VERSION VERSION_LESS "12.0"))
|
||||
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_35,code=[sm_35,compute_35]")
|
||||
endif()
|
||||
# Maxwell (GPU Arch 5.x) is supported by CUDA 6 and later
|
||||
if(CUDA_VERSION VERSION_GREATER_EQUAL "6.0")
|
||||
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_50,code=[sm_50,compute_50] -gencode arch=compute_52,code=[sm_52,compute_52]")
|
||||
endif()
|
||||
# Pascal (GPU Arch 6.x) is supported by CUDA 8 and later
|
||||
if(CUDA_VERSION VERSION_GREATER_EQUAL "8.0")
|
||||
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_60,code=[sm_60,compute_60] -gencode arch=compute_61,code=[sm_61,compute_61]")
|
||||
endif()
|
||||
# Volta (GPU Arch 7.0) is supported by CUDA 9 and later
|
||||
if(CUDA_VERSION VERSION_GREATER_EQUAL "9.0")
|
||||
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_70,code=[sm_70,compute_70]")
|
||||
endif()
|
||||
# Turing (GPU Arch 7.5) is supported by CUDA 10 and later
|
||||
if(CUDA_VERSION VERSION_GREATER_EQUAL "10.0")
|
||||
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_75,code=[sm_75,compute_75]")
|
||||
endif()
|
||||
# Ampere (GPU Arch 8.0) is supported by CUDA 11 and later
|
||||
if(CUDA_VERSION VERSION_GREATER_EQUAL "11.0")
|
||||
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_80,code=[sm_80,compute_80]")
|
||||
endif()
|
||||
# Ampere (GPU Arch 8.6) is supported by CUDA 11.1 and later
|
||||
if(CUDA_VERSION VERSION_GREATER_EQUAL "11.1")
|
||||
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_86,code=[sm_86,compute_86]")
|
||||
endif()
|
||||
# Lovelace (GPU Arch 8.9) is supported by CUDA 11.8 and later
|
||||
if(CUDA_VERSION VERSION_GREATER_EQUAL "11.8")
|
||||
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_90,code=[sm_90,compute_90]")
|
||||
endif()
|
||||
# Hopper (GPU Arch 9.0) is supported by CUDA 12.0 and later
|
||||
if(CUDA_VERSION VERSION_GREATER_EQUAL "12.0")
|
||||
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_90,code=[sm_90,compute_90]")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@ -201,7 +205,7 @@ elseif(GPU_API STREQUAL "OPENCL")
|
||||
include(OpenCLUtils)
|
||||
set(OCL_COMMON_HEADERS ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_preprocessor.h ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_aux_fun1.h)
|
||||
|
||||
file(GLOB GPU_LIB_CU ${CONFIGURE_DEPENDS} ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cu)
|
||||
file(GLOB GPU_LIB_CU CONFIGURE_DEPENDS ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cu)
|
||||
list(REMOVE_ITEM GPU_LIB_CU
|
||||
${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_gayberne.cu
|
||||
${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_gayberne_lj.cu
|
||||
@ -331,7 +335,7 @@ elseif(GPU_API STREQUAL "HIP")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
file(GLOB GPU_LIB_CU ${CONFIGURE_DEPENDS} ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cu ${CMAKE_CURRENT_SOURCE_DIR}/gpu/[^.]*.cu)
|
||||
file(GLOB GPU_LIB_CU CONFIGURE_DEPENDS ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cu ${CMAKE_CURRENT_SOURCE_DIR}/gpu/[^.]*.cu)
|
||||
list(REMOVE_ITEM GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_pppm.cu)
|
||||
|
||||
set(GPU_LIB_CU_HIP "")
|
||||
|
||||
@ -1,12 +1,7 @@
|
||||
set(KIM-API_MIN_VERSION 2.1.3)
|
||||
find_package(CURL)
|
||||
if(CURL_FOUND)
|
||||
if(CMAKE_VERSION VERSION_LESS 3.12)
|
||||
target_include_directories(lammps PRIVATE ${CURL_INCLUDE_DIRS})
|
||||
target_link_libraries(lammps PRIVATE ${CURL_LIBRARIES})
|
||||
else()
|
||||
target_link_libraries(lammps PRIVATE CURL::libcurl)
|
||||
endif()
|
||||
target_link_libraries(lammps PRIVATE CURL::libcurl)
|
||||
target_compile_definitions(lammps PRIVATE -DLMP_KIM_CURL)
|
||||
set(LMP_DEBUG_CURL OFF CACHE STRING "Set libcurl verbose mode on/off. If on, it displays a lot of verbose information about its operations.")
|
||||
mark_as_advanced(LMP_DEBUG_CURL)
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
########################################################################
|
||||
# As of version 3.3.0 Kokkos requires C++14
|
||||
if(CMAKE_CXX_STANDARD LESS 14)
|
||||
message(FATAL_ERROR "The KOKKOS package requires the C++ standard to be set to at least C++14")
|
||||
# As of version 4.0.0 Kokkos requires C++17
|
||||
if(CMAKE_CXX_STANDARD LESS 17)
|
||||
message(FATAL_ERROR "The KOKKOS package requires the C++ standard to
|
||||
be set to at least C++17")
|
||||
endif()
|
||||
|
||||
########################################################################
|
||||
@ -49,8 +50,8 @@ if(DOWNLOAD_KOKKOS)
|
||||
list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_CXX_EXTENSIONS=${CMAKE_CXX_EXTENSIONS}")
|
||||
list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}")
|
||||
include(ExternalProject)
|
||||
set(KOKKOS_URL "https://github.com/kokkos/kokkos/archive/3.7.02.tar.gz" CACHE STRING "URL for KOKKOS tarball")
|
||||
set(KOKKOS_MD5 "34d7860d548c06a4040236d959c9f99a" CACHE STRING "MD5 checksum of KOKKOS tarball")
|
||||
set(KOKKOS_URL "https://github.com/kokkos/kokkos/archive/4.1.00.tar.gz" CACHE STRING "URL for KOKKOS tarball")
|
||||
set(KOKKOS_MD5 "a5f096bd8ad01b97fdc7a32583b17a33" CACHE STRING "MD5 checksum of KOKKOS tarball")
|
||||
mark_as_advanced(KOKKOS_URL)
|
||||
mark_as_advanced(KOKKOS_MD5)
|
||||
GetFallbackURL(KOKKOS_URL KOKKOS_FALLBACK)
|
||||
@ -75,7 +76,7 @@ if(DOWNLOAD_KOKKOS)
|
||||
add_dependencies(LAMMPS::KOKKOSCORE kokkos_build)
|
||||
add_dependencies(LAMMPS::KOKKOSCONTAINERS kokkos_build)
|
||||
elseif(EXTERNAL_KOKKOS)
|
||||
find_package(Kokkos 3.7.02 REQUIRED CONFIG)
|
||||
find_package(Kokkos 4.1.00 REQUIRED CONFIG)
|
||||
target_link_libraries(lammps PRIVATE Kokkos::kokkos)
|
||||
else()
|
||||
set(LAMMPS_LIB_KOKKOS_SRC_DIR ${LAMMPS_LIB_SOURCE_DIR}/kokkos)
|
||||
@ -155,7 +156,7 @@ if(PKG_ML-IAP)
|
||||
|
||||
# Add KOKKOS version of ML-IAP Python coupling if non-KOKKOS version is included
|
||||
if(MLIAP_ENABLE_PYTHON AND Cythonize_EXECUTABLE)
|
||||
file(GLOB MLIAP_KOKKOS_CYTHON_SRC ${CONFIGURE_DEPENDS} ${LAMMPS_SOURCE_DIR}/KOKKOS/*.pyx)
|
||||
file(GLOB MLIAP_KOKKOS_CYTHON_SRC CONFIGURE_DEPENDS ${LAMMPS_SOURCE_DIR}/KOKKOS/*.pyx)
|
||||
foreach(MLIAP_CYTHON_FILE ${MLIAP_KOKKOS_CYTHON_SRC})
|
||||
get_filename_component(MLIAP_CYTHON_BASE ${MLIAP_CYTHON_FILE} NAME_WE)
|
||||
add_custom_command(OUTPUT ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.cpp ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.h
|
||||
|
||||
@ -4,7 +4,7 @@ if(LEPTON_SOURCE_DIR)
|
||||
endif()
|
||||
set(LEPTON_SOURCE_DIR ${LAMMPS_LIB_SOURCE_DIR}/lepton)
|
||||
|
||||
file(GLOB LEPTON_SOURCES ${CONFIGURE_DEPENDS} ${LEPTON_SOURCE_DIR}/src/[^.]*.cpp)
|
||||
file(GLOB LEPTON_SOURCES CONFIGURE_DEPENDS ${LEPTON_SOURCE_DIR}/src/[^.]*.cpp)
|
||||
|
||||
if((CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "amd64") OR
|
||||
(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "AMD64") OR
|
||||
@ -15,7 +15,7 @@ else()
|
||||
endif()
|
||||
|
||||
if(LEPTON_ENABLE_JIT)
|
||||
file(GLOB ASMJIT_SOURCES ${CONFIGURE_DEPENDS} ${LEPTON_SOURCE_DIR}/asmjit/*/[^.]*.cpp)
|
||||
file(GLOB ASMJIT_SOURCES CONFIGURE_DEPENDS ${LEPTON_SOURCE_DIR}/asmjit/*/[^.]*.cpp)
|
||||
endif()
|
||||
|
||||
add_library(lepton STATIC ${LEPTON_SOURCES} ${ASMJIT_SOURCES})
|
||||
|
||||
@ -26,29 +26,9 @@ if(DOWNLOAD_MDI)
|
||||
|
||||
# detect if we have python development support and thus can enable python plugins
|
||||
set(MDI_USE_PYTHON_PLUGINS OFF)
|
||||
if(CMAKE_VERSION VERSION_LESS 3.12)
|
||||
if(NOT PYTHON_VERSION_STRING)
|
||||
set(Python_ADDITIONAL_VERSIONS 3.12 3.11 3.10 3.9 3.8 3.7 3.6)
|
||||
# search for interpreter first, so we have a consistent library
|
||||
find_package(PythonInterp) # Deprecated since version 3.12
|
||||
if(PYTHONINTERP_FOUND)
|
||||
set(Python_EXECUTABLE ${PYTHON_EXECUTABLE})
|
||||
endif()
|
||||
endif()
|
||||
# search for the library matching the selected interpreter
|
||||
set(Python_ADDITIONAL_VERSIONS ${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR})
|
||||
find_package(PythonLibs QUIET) # Deprecated since version 3.12
|
||||
if(PYTHONLIBS_FOUND)
|
||||
if(NOT (PYTHON_VERSION_STRING STREQUAL PYTHONLIBS_VERSION_STRING))
|
||||
message(FATAL_ERROR "Python Library version ${PYTHONLIBS_VERSION_STRING} does not match Interpreter version ${PYTHON_VERSION_STRING}")
|
||||
endif()
|
||||
set(MDI_USE_PYTHON_PLUGINS ON)
|
||||
endif()
|
||||
else()
|
||||
find_package(Python QUIET COMPONENTS Development)
|
||||
if(Python_Development_FOUND)
|
||||
set(MDI_USE_PYTHON_PLUGINS ON)
|
||||
endif()
|
||||
find_package(Python QUIET COMPONENTS Development)
|
||||
if(Python_Development_FOUND)
|
||||
set(MDI_USE_PYTHON_PLUGINS ON)
|
||||
endif()
|
||||
# python plugins are not supported and thus must be always off on Windows
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
@ -102,13 +82,9 @@ if(DOWNLOAD_MDI)
|
||||
# if compiling with python plugins we need
|
||||
# to add python libraries as dependency.
|
||||
if(MDI_USE_PYTHON_PLUGINS)
|
||||
if(CMAKE_VERSION VERSION_LESS 3.12)
|
||||
list(APPEND MDI_DEP_LIBS ${PYTHON_LIBRARIES})
|
||||
else()
|
||||
list(APPEND MDI_DEP_LIBS Python::Python)
|
||||
endif()
|
||||
|
||||
list(APPEND MDI_DEP_LIBS Python::Python)
|
||||
endif()
|
||||
|
||||
# need to add support for dlopen/dlsym, except when compiling for Windows.
|
||||
if(NOT (CMAKE_SYSTEM_NAME STREQUAL "Windows"))
|
||||
list(APPEND MDI_DEP_LIBS "${CMAKE_DL_LIBS}")
|
||||
|
||||
@ -2,12 +2,7 @@
|
||||
set(MLIAP_ENABLE_PYTHON_DEFAULT OFF)
|
||||
if(PKG_PYTHON)
|
||||
find_package(Cythonize QUIET)
|
||||
if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.14)
|
||||
find_package(Python COMPONENTS NumPy QUIET)
|
||||
else()
|
||||
# assume we have NumPy
|
||||
set(Python_NumPy_FOUND ON)
|
||||
endif()
|
||||
find_package(Python COMPONENTS NumPy QUIET)
|
||||
if(Cythonize_FOUND AND Python_NumPy_FOUND)
|
||||
set(MLIAP_ENABLE_PYTHON_DEFAULT ON)
|
||||
endif()
|
||||
@ -17,24 +12,16 @@ option(MLIAP_ENABLE_PYTHON "Build ML-IAP package with Python support" ${MLIAP_EN
|
||||
|
||||
if(MLIAP_ENABLE_PYTHON)
|
||||
find_package(Cythonize REQUIRED)
|
||||
if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.14)
|
||||
find_package(Python COMPONENTS NumPy REQUIRED)
|
||||
endif()
|
||||
find_package(Python COMPONENTS NumPy REQUIRED)
|
||||
if(NOT PKG_PYTHON)
|
||||
message(FATAL_ERROR "Must enable PYTHON package for including Python support in ML-IAP")
|
||||
endif()
|
||||
if(CMAKE_VERSION VERSION_LESS 3.12)
|
||||
if(PYTHONLIBS_VERSION_STRING VERSION_LESS 3.6)
|
||||
message(FATAL_ERROR "Python support in ML-IAP requires Python 3.6 or later")
|
||||
endif()
|
||||
else()
|
||||
if(Python_VERSION VERSION_LESS 3.6)
|
||||
message(FATAL_ERROR "Python support in ML-IAP requires Python 3.6 or later")
|
||||
endif()
|
||||
if(Python_VERSION VERSION_LESS 3.6)
|
||||
message(FATAL_ERROR "Python support in ML-IAP requires Python 3.6 or later")
|
||||
endif()
|
||||
|
||||
set(MLIAP_BINARY_DIR ${CMAKE_BINARY_DIR}/cython)
|
||||
file(GLOB MLIAP_CYTHON_SRC ${CONFIGURE_DEPENDS} ${LAMMPS_SOURCE_DIR}/ML-IAP/*.pyx)
|
||||
file(GLOB MLIAP_CYTHON_SRC CONFIGURE_DEPENDS ${LAMMPS_SOURCE_DIR}/ML-IAP/*.pyx)
|
||||
file(MAKE_DIRECTORY ${MLIAP_BINARY_DIR})
|
||||
foreach(MLIAP_CYTHON_FILE ${MLIAP_CYTHON_SRC})
|
||||
get_filename_component(MLIAP_CYTHON_BASE ${MLIAP_CYTHON_FILE} NAME_WE)
|
||||
|
||||
@ -1,28 +0,0 @@
|
||||
find_package(GSL REQUIRED)
|
||||
find_package(MSCG QUIET)
|
||||
if(MSGC_FOUND)
|
||||
set(DOWNLOAD_MSCG_DEFAULT OFF)
|
||||
else()
|
||||
set(DOWNLOAD_MSCG_DEFAULT ON)
|
||||
endif()
|
||||
option(DOWNLOAD_MSCG "Download MSCG library instead of using an already installed one)" ${DOWNLOAD_MSCG_DEFAULT})
|
||||
if(DOWNLOAD_MSCG)
|
||||
set(MSCG_URL "https://github.com/uchicago-voth/MSCG-release/archive/491270a73539e3f6951e76f7dbe84e258b3ebb45.tar.gz" CACHE STRING "URL for MSCG tarball")
|
||||
set(MSCG_MD5 "7ea50748fba5c3a372e0266bd31d2f11" CACHE STRING "MD5 checksum of MSCG tarball")
|
||||
mark_as_advanced(MSCG_URL)
|
||||
mark_as_advanced(MSCG_MD5)
|
||||
|
||||
include(ExternalCMakeProject)
|
||||
ExternalCMakeProject(mscg ${MSCG_URL} ${MSCG_MD5} MSCG-release src/CMake "")
|
||||
|
||||
# set include and link library
|
||||
target_include_directories(lammps PRIVATE "${CMAKE_BINARY_DIR}/_deps/mscg-src/src")
|
||||
target_link_libraries(lammps PRIVATE mscg)
|
||||
else()
|
||||
find_package(MSCG)
|
||||
if(NOT MSCG_FOUND)
|
||||
message(FATAL_ERROR "MSCG not found, help CMake to find it by setting MSCG_LIBRARY and MSCG_INCLUDE_DIR, or set DOWNLOAD_MSCG=ON to download it")
|
||||
endif()
|
||||
target_link_libraries(lammps PRIVATE MSCG::MSCG)
|
||||
endif()
|
||||
target_link_libraries(lammps PRIVATE GSL::gsl ${LAPACK_LIBRARIES})
|
||||
@ -1,29 +1,11 @@
|
||||
if(CMAKE_VERSION VERSION_LESS 3.12)
|
||||
if(NOT PYTHON_VERSION_STRING)
|
||||
set(Python_ADDITIONAL_VERSIONS 3.12 3.11 3.10 3.9 3.8 3.7 3.6)
|
||||
# search for interpreter first, so we have a consistent library
|
||||
find_package(PythonInterp) # Deprecated since version 3.12
|
||||
if(PYTHONINTERP_FOUND)
|
||||
set(Python_EXECUTABLE ${PYTHON_EXECUTABLE})
|
||||
endif()
|
||||
|
||||
if(NOT Python_INTERPRETER)
|
||||
# backward compatibility
|
||||
if(PYTHON_EXECUTABLE)
|
||||
set(Python_EXECUTABLE ${PYTHON_EXECUTABLE})
|
||||
endif()
|
||||
# search for the library matching the selected interpreter
|
||||
set(Python_ADDITIONAL_VERSIONS ${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR})
|
||||
find_package(PythonLibs REQUIRED) # Deprecated since version 3.12
|
||||
if(NOT (PYTHON_VERSION_STRING STREQUAL PYTHONLIBS_VERSION_STRING))
|
||||
message(FATAL_ERROR "Python Library version ${PYTHONLIBS_VERSION_STRING} does not match Interpreter version ${PYTHON_VERSION_STRING}")
|
||||
endif()
|
||||
target_include_directories(lammps PRIVATE ${PYTHON_INCLUDE_DIRS})
|
||||
target_link_libraries(lammps PRIVATE ${PYTHON_LIBRARIES})
|
||||
else()
|
||||
if(NOT Python_INTERPRETER)
|
||||
# backward compatibility
|
||||
if(PYTHON_EXECUTABLE)
|
||||
set(Python_EXECUTABLE ${PYTHON_EXECUTABLE})
|
||||
endif()
|
||||
find_package(Python COMPONENTS Interpreter)
|
||||
endif()
|
||||
find_package(Python REQUIRED COMPONENTS Interpreter Development)
|
||||
target_link_libraries(lammps PRIVATE Python::Python)
|
||||
find_package(Python COMPONENTS Interpreter)
|
||||
endif()
|
||||
find_package(Python REQUIRED COMPONENTS Interpreter Development)
|
||||
target_link_libraries(lammps PRIVATE Python::Python)
|
||||
target_compile_definitions(lammps PRIVATE -DLMP_PYTHON)
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
function(FindStyleHeaders path style_class file_pattern headers)
|
||||
file(GLOB files ${CONFIGURE_DEPENDS} "${path}/${file_pattern}*.h")
|
||||
file(GLOB files CONFIGURE_DEPENDS "${path}/${file_pattern}*.h")
|
||||
get_property(hlist GLOBAL PROPERTY ${headers})
|
||||
|
||||
foreach(file_name ${files})
|
||||
@ -187,7 +187,7 @@ endfunction(DetectBuildSystemConflict)
|
||||
|
||||
|
||||
function(FindPackagesHeaders path style_class file_pattern headers)
|
||||
file(GLOB files ${CONFIGURE_DEPENDS} "${path}/${file_pattern}*.h")
|
||||
file(GLOB files CONFIGURE_DEPENDS "${path}/${file_pattern}*.h")
|
||||
get_property(plist GLOBAL PROPERTY ${headers})
|
||||
|
||||
foreach(file_name ${files})
|
||||
|
||||
@ -6,7 +6,7 @@ if(ENABLE_TESTING)
|
||||
find_program(VALGRIND_BINARY NAMES valgrind)
|
||||
# generate custom suppression file
|
||||
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/lammps.supp "\n")
|
||||
file(GLOB VALGRIND_SUPPRESSION_FILES ${CONFIGURE_DEPENDS} ${LAMMPS_TOOLS_DIR}/valgrind/[^.]*.supp)
|
||||
file(GLOB VALGRIND_SUPPRESSION_FILES CONFIGURE_DEPENDS ${LAMMPS_TOOLS_DIR}/valgrind/[^.]*.supp)
|
||||
foreach(SUPP ${VALGRIND_SUPPRESSION_FILES})
|
||||
file(READ ${SUPP} SUPPRESSIONS)
|
||||
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/lammps.supp "${SUPPRESSIONS}")
|
||||
@ -19,7 +19,7 @@ if(ENABLE_TESTING)
|
||||
# we need to build and link a LOT of tester executables, so it is worth checking if
|
||||
# a faster linker is available. requires GNU or Clang compiler, newer CMake.
|
||||
# also only verified with Fedora Linux > 30 and Ubuntu 18.04 or 22.04+(Ubuntu 20.04 fails)
|
||||
if((CMAKE_SYSTEM_NAME STREQUAL "Linux") AND (CMAKE_VERSION VERSION_GREATER_EQUAL 3.13)
|
||||
if((CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
AND ((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")))
|
||||
if(((CMAKE_LINUX_DISTRO STREQUAL "Ubuntu") AND
|
||||
((CMAKE_DISTRO_VERSION VERSION_LESS_EQUAL 18.04) OR (CMAKE_DISTRO_VERSION VERSION_GREATER_EQUAL 22.04)))
|
||||
@ -66,16 +66,8 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||
option(ENABLE_COVERAGE "Enable collecting code coverage data" OFF)
|
||||
mark_as_advanced(ENABLE_COVERAGE)
|
||||
if(ENABLE_COVERAGE)
|
||||
if(CMAKE_VERSION VERSION_LESS 3.13)
|
||||
if(CMAKE_CXX_FLAGS)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage")
|
||||
else()
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_${CMAKE_BUILD_TYPE}_FLAGS} --coverage")
|
||||
endif()
|
||||
else()
|
||||
target_compile_options(lammps PUBLIC --coverage)
|
||||
target_link_options(lammps PUBLIC --coverage)
|
||||
endif()
|
||||
target_compile_options(lammps PUBLIC --coverage)
|
||||
target_link_options(lammps PUBLIC --coverage)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@ -118,16 +110,8 @@ validate_option(ENABLE_SANITIZER ENABLE_SANITIZER_VALUES)
|
||||
string(TOLOWER ${ENABLE_SANITIZER} ENABLE_SANITIZER)
|
||||
if(NOT ENABLE_SANITIZER STREQUAL "none")
|
||||
if((${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") OR (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang"))
|
||||
if(CMAKE_VERSION VERSION_LESS 3.13)
|
||||
if(CMAKE_CXX_FLAGS)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=${ENABLE_SANITIZER}")
|
||||
else()
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_${CMAKE_BUILD_TYPE}_FLAGS} -fsanitize=${ENABLE_SANITIZER}")
|
||||
endif()
|
||||
else()
|
||||
target_compile_options(lammps PUBLIC -fsanitize=${ENABLE_SANITIZER})
|
||||
target_link_options(lammps PUBLIC -fsanitize=${ENABLE_SANITIZER})
|
||||
endif()
|
||||
target_compile_options(lammps PUBLIC -fsanitize=${ENABLE_SANITIZER})
|
||||
target_link_options(lammps PUBLIC -fsanitize=${ENABLE_SANITIZER})
|
||||
else()
|
||||
message(WARNING "ENABLE_SANITIZER option not supported by ${CMAKE_CXX_COMPILER_ID} compilers. Ignoring.")
|
||||
set(ENABLE_SANITIZER "none")
|
||||
|
||||
@ -26,7 +26,7 @@ if(BUILD_TOOLS)
|
||||
|
||||
enable_language(C)
|
||||
get_filename_component(MSI2LMP_SOURCE_DIR ${LAMMPS_TOOLS_DIR}/msi2lmp/src ABSOLUTE)
|
||||
file(GLOB MSI2LMP_SOURCES ${CONFIGURE_DEPENDS} ${MSI2LMP_SOURCE_DIR}/[^.]*.c)
|
||||
file(GLOB MSI2LMP_SOURCES CONFIGURE_DEPENDS ${MSI2LMP_SOURCE_DIR}/[^.]*.c)
|
||||
add_executable(msi2lmp ${MSI2LMP_SOURCES})
|
||||
if(STANDARD_MATH_LIB)
|
||||
target_link_libraries(msi2lmp PRIVATE ${STANDARD_MATH_LIB})
|
||||
@ -37,12 +37,13 @@ if(BUILD_TOOLS)
|
||||
add_subdirectory(${LAMMPS_TOOLS_DIR}/phonon ${CMAKE_BINARY_DIR}/phana_build)
|
||||
endif()
|
||||
|
||||
find_package(PkgConfig QUIET)
|
||||
if(BUILD_LAMMPS_SHELL)
|
||||
if(NOT PkgConfig_FOUND)
|
||||
message(FATAL_ERROR "Must have pkg-config installed for building LAMMPS shell")
|
||||
endif()
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(READLINE IMPORTED_TARGET REQUIRED readline)
|
||||
if(NOT LAMMPS_EXCEPTIONS)
|
||||
message(WARNING "The LAMMPS shell needs LAMMPS_EXCEPTIONS enabled for full functionality")
|
||||
endif()
|
||||
|
||||
# include resource compiler to embed icons into the executable on Windows
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
@ -67,4 +68,8 @@ if(BUILD_LAMMPS_SHELL)
|
||||
install(FILES ${LAMMPS_TOOLS_DIR}/lammps-shell/lammps-shell.desktop DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications/)
|
||||
endif()
|
||||
|
||||
|
||||
if(BUILD_LAMMPS_GUI)
|
||||
get_filename_component(LAMMPS_GUI_DIR ${LAMMPS_SOURCE_DIR}/../tools/lammps-gui ABSOLUTE)
|
||||
get_filename_component(LAMMPS_GUI_BIN ${CMAKE_BINARY_DIR}/lammps-gui-build ABSOLUTE)
|
||||
add_subdirectory(${LAMMPS_GUI_DIR} ${LAMMPS_GUI_BIN})
|
||||
endif()
|
||||
|
||||
BIN
cmake/packaging/LAMMPS_DMG_Background.png
Normal file
|
After Width: | Height: | Size: 85 KiB |
34
cmake/packaging/MacOSXBundleInfo.plist.in
Normal file
@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>en-US</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${MACOSX_BUNDLE_EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>The LAMMPS Molecular Dynamics Software</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>lammps</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.lammps.gui</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleLongVersionString</key>
|
||||
<string>${MACOSX_BUNDLE_LONG_VERSION_STRING}</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>LAMMPS</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>${MACOSX_BUNDLE_SHORT_VERSION_STRING}</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>${MACOSX_BUNDLE_BUNDLE_VERSION}</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
<true/>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>${MACOSX_BUNDLE_COPYRIGHT}</string>
|
||||
</dict>
|
||||
</plist>
|
||||
69
cmake/packaging/README.macos
Normal file
@ -0,0 +1,69 @@
|
||||
LAMMPS and LAMMPS GUI universal binaries for macOS (arm64/x86_64)
|
||||
=================================================================
|
||||
|
||||
This package provides universal binaries of LAMMPS and LAMMPS GUI that should
|
||||
run on macOS systems running running macOS version 11 (Big Sur) or newer. Note
|
||||
the binaries are compiled without MPI support and contain a compatible subset
|
||||
of the available packages.
|
||||
|
||||
The following individual commands are included:
|
||||
binary2txt lammps-gui lmp msi2lmp phana stl_bin2txt
|
||||
|
||||
After copying the lammps-gui folder into your Applications folder, please follow
|
||||
these steps:
|
||||
|
||||
1. Open the Terminal app
|
||||
|
||||
2. Type the following command and press ENTER:
|
||||
|
||||
open ~/.zprofile
|
||||
|
||||
This will open a text editor for modifying the .zprofile file in your home
|
||||
directory.
|
||||
|
||||
3. Add the following lines to the end of the file, save it, and close the editor
|
||||
|
||||
LAMMPS_INSTALL_DIR=/Applications/LAMMPS.app/Contents
|
||||
LAMMPS_POTENTIALS=${LAMMPS_INSTALL_DIR}/share/lammps/potentials
|
||||
LAMMPS_BENCH_DIR=${LAMMPS_INSTALL_DIR}/share/lammps/bench
|
||||
MSI2LMP_LIBRARY=${LAMMPS_INSTALL_DIR}/share/lammps/frc_files
|
||||
PATH=${LAMMPS_INSTALL_DIR}/bin:$PATH
|
||||
export LAMMPS_POTENTIALS LAMMPS_BENCH_DIR PATH
|
||||
|
||||
4. In your existing terminal, type the following command make the settings active
|
||||
|
||||
source ~/.zprofile
|
||||
|
||||
Note, you don't have to type this in new terminals, since they will apply
|
||||
the changes from .zprofile automatically.
|
||||
|
||||
Note: the above assumes you use the default shell (zsh) that comes with
|
||||
MacOS. If you customized MacOS to use a different shell, you'll need to modify
|
||||
that shell's init file (.cshrc, .bashrc, etc.) instead with appropiate commands
|
||||
to modify the same environment variables.
|
||||
|
||||
5. Try running LAMMPS (which might fail, see step 7)
|
||||
|
||||
lmp -in ${LAMMPS_BENCH_DIR}/in.lj
|
||||
|
||||
6. Try running the LAMMPS GUI
|
||||
|
||||
lammps-gui ${LAMMPS_BENCH_DIR}/in.rhodo
|
||||
|
||||
Depending on the size and resolution of your screen, the fonts may
|
||||
be too small to read. This can be adjusted by setting the environment
|
||||
variable QT_FONT_DPI. The default value would be 72, so to increase
|
||||
the fonts by a third one can add to the .zprofile file the line
|
||||
|
||||
export QT_FONT_DPI=96
|
||||
|
||||
and reload as shown above.
|
||||
|
||||
7. Give permission to execute the commands (lmp, lammps-gui, msi2lmp, binary2txt, phana, stl_bin2txt)
|
||||
|
||||
MacOS will likely block the initial run of the executables, since they
|
||||
were downloaded from the internet and are missing a known signature from an
|
||||
identified developer. Go to "Settings" and search for "Security settings". It
|
||||
should display a message that an executable like "lmp" was blocked. Press
|
||||
"Open anyway", which might prompt you for your admin credentials. Afterwards
|
||||
"lmp" and the other executables should work as expected.
|
||||
77
cmake/packaging/build_linux_tgz.sh
Executable file
@ -0,0 +1,77 @@
|
||||
#!/bin/bash
|
||||
|
||||
APP_NAME=lammps-gui
|
||||
DESTDIR=${PWD}/../LAMMPS_GUI
|
||||
|
||||
echo "Delete old files, if they exist"
|
||||
rm -rf ${DESTDIR} ../LAMMPS-Linux-amd64.tar.gz
|
||||
|
||||
echo "Create staging area for deployment and populate"
|
||||
DESTDIR=${DESTDIR} cmake --install . --prefix "/"
|
||||
|
||||
echo "Remove debug info"
|
||||
for s in ${DESTDIR}/bin/* ${DESTDIR}/lib/liblammps*
|
||||
do \
|
||||
test -f $s && strip --strip-debug $s
|
||||
done
|
||||
|
||||
echo "Remove libc, gcc, and X11 related shared libs"
|
||||
rm -f ${DESTDIR}/lib/ld*.so ${DESTDIR}/lib/ld*.so.[0-9]
|
||||
rm -f ${DESTDIR}/lib/lib{c,dl,rt,m,pthread}.so.?
|
||||
rm -f ${DESTDIR}/lib/lib{c,dl,rt,m,pthread}-[0-9].[0-9]*.so
|
||||
rm -f ${DESTDIR}/lib/libX* ${DESTDIR}/lib/libxcb*
|
||||
rm -f ${DESTDIR}/lib/libgcc_s*
|
||||
rm -f ${DESTDIR}/lib/libstdc++*
|
||||
|
||||
# get qt dir
|
||||
QTDIR=$(ldd ${DESTDIR}/bin/lammps-gui | grep libQt5Core | sed -e 's/^.*=> *//' -e 's/libQt5Core.so.*$/qt5/')
|
||||
cat > ${DESTDIR}/bin/qt.conf <<EOF
|
||||
[Paths]
|
||||
Plugins = ../qt5plugins
|
||||
EOF
|
||||
|
||||
# platform plugin
|
||||
mkdir -p ${DESTDIR}/qt5plugins/platforms
|
||||
cp ${QTDIR}/plugins/platforms/libqxcb.so ${DESTDIR}/qt5plugins/platforms
|
||||
|
||||
# get platform plugin dependencies
|
||||
QTDEPS=$(LD_LIBRARY_PATH=${DESTDIR}/lib ldd ${QTDIR}/plugins/platforms/libqxcb.so | grep -v ${DESTDIR} | grep libQt5 | sed -e 's/^.*=> *//' -e 's/\(libQt5.*.so.*\) .*$/\1/')
|
||||
for dep in ${QTDEPS}
|
||||
do \
|
||||
cp ${dep} ${DESTDIR}/lib
|
||||
done
|
||||
|
||||
echo "Add additional plugins for Qt"
|
||||
for dir in styles imageformats
|
||||
do \
|
||||
cp -r ${QTDIR}/plugins/${dir} ${DESTDIR}/qt5plugins/
|
||||
done
|
||||
|
||||
# get imageplugin dependencies
|
||||
for s in ${DESTDIR}/qt5plugins/imageformats/*.so
|
||||
do \
|
||||
QTDEPS=$(LD_LIBRARY_PATH=${DESTDIR}/lib ldd $s | grep -v ${DESTDIR} | grep -E '(libQt5|jpeg)' | sed -e 's/^.*=> *//' -e 's/\(lib.*.so.*\) .*$/\1/')
|
||||
for dep in ${QTDEPS}
|
||||
do \
|
||||
cp ${dep} ${DESTDIR}/lib
|
||||
done
|
||||
done
|
||||
|
||||
echo "Set up wrapper script"
|
||||
MYDIR=$(dirname "$0")
|
||||
cp ${MYDIR}/linux_wrapper.sh ${DESTDIR}/bin
|
||||
for s in ${DESTDIR}/bin/*
|
||||
do \
|
||||
EXE=$(basename $s)
|
||||
test ${EXE} = linux_wrapper.sh && continue
|
||||
test ${EXE} = qt.conf && continue
|
||||
ln -s bin/linux_wrapper.sh ${DESTDIR}/${EXE}
|
||||
done
|
||||
|
||||
pushd ..
|
||||
tar -czvvf LAMMPS-Linux-amd64.tar.gz LAMMPS_GUI
|
||||
popd
|
||||
|
||||
echo "Cleanup dir"
|
||||
rm -r ${DESTDIR}
|
||||
exit 0
|
||||
111
cmake/packaging/build_macos_dmg.sh
Executable file
@ -0,0 +1,111 @@
|
||||
#!/bin/bash
|
||||
|
||||
APP_NAME=lammps-gui
|
||||
|
||||
echo "Delete old files, if they exist"
|
||||
rm -f ${APP_NAME}.dmg ${APP_NAME}-rw.dmg LAMMPS-macOS-multiarch.dmg
|
||||
|
||||
echo "Create initial dmg file with macdeployqt"
|
||||
macdeployqt lammps-gui.app -dmg
|
||||
echo "Create writable dmg file"
|
||||
hdiutil convert ${APP_NAME}.dmg -format UDRW -o ${APP_NAME}-rw.dmg
|
||||
|
||||
echo "Mount writeable DMG file in read-write mode. Keep track of device and volume names"
|
||||
DEVICE=$(hdiutil attach -readwrite -noverify ${APP_NAME}-rw.dmg | grep '^/dev/' | sed 1q | awk '{print $1}')
|
||||
VOLUME=$(df | grep ${DEVICE} | sed -e 's/^.*\(\/Volumes\/\)/\1/')
|
||||
sleep 2
|
||||
|
||||
echo "Create link to Application folder and move README and background image files"
|
||||
|
||||
pushd "${VOLUME}"
|
||||
ln -s /Applications .
|
||||
mv ${APP_NAME}.app/Contents/Resources/README.txt .
|
||||
mkdir .background
|
||||
mv ${APP_NAME}.app/Contents/Resources/LAMMPS_DMG_Background.png .background/background.png
|
||||
mv ${APP_NAME}.app LAMMPS.app
|
||||
cd LAMMPS.app/Contents
|
||||
|
||||
echo "Attach icons to LAMMPS console and GUI executables"
|
||||
echo "read 'icns' (-16455) \"Resources/lammps.icns\";" > icon.rsrc
|
||||
Rez -a icon.rsrc -o bin/lmp
|
||||
SetFile -a C bin/lmp
|
||||
Rez -a icon.rsrc -o MacOS/lammps-gui
|
||||
SetFile -a C MacOS/lammps-gui
|
||||
rm icon.rsrc
|
||||
popd
|
||||
|
||||
echo 'Tell the Finder to resize the window, set the background,'
|
||||
echo 'change the icon size, place the icons in the right position, etc.'
|
||||
echo '
|
||||
tell application "Finder"
|
||||
tell disk "'${APP_NAME}'"
|
||||
|
||||
-- wait for the image to finish mounting
|
||||
set open_attempts to 0
|
||||
repeat while open_attempts < 4
|
||||
try
|
||||
open
|
||||
delay 1
|
||||
set open_attempts to 5
|
||||
close
|
||||
on error errStr number errorNumber
|
||||
set open_attempts to open_attempts + 1
|
||||
delay 10
|
||||
end try
|
||||
end repeat
|
||||
delay 5
|
||||
|
||||
-- open the image the first time and save a .DS_Store
|
||||
-- just the background and icon setup
|
||||
open
|
||||
set current view of container window to icon view
|
||||
set theViewOptions to the icon view options of container window
|
||||
set background picture of theViewOptions to file ".background:background.png"
|
||||
set arrangement of theViewOptions to not arranged
|
||||
set icon size of theViewOptions to 64
|
||||
delay 5
|
||||
close
|
||||
|
||||
-- next set up the position of the app and Applications symlink
|
||||
-- plus hide all window decorations
|
||||
open
|
||||
update without registering applications
|
||||
tell container window
|
||||
set sidebar width to 0
|
||||
set statusbar visible to false
|
||||
set toolbar visible to false
|
||||
set the bounds to { 100, 40, 868, 640 }
|
||||
set position of item "'LAMMPS'.app" to { 190, 216 }
|
||||
set position of item "Applications" to { 576, 216 }
|
||||
set position of item "README.txt" to { 190, 400 }
|
||||
end tell
|
||||
update without registering applications
|
||||
delay 5
|
||||
close
|
||||
|
||||
-- one last open and close to check the results
|
||||
open
|
||||
delay 5
|
||||
close
|
||||
end tell
|
||||
delay 1
|
||||
end tell
|
||||
' | osascript
|
||||
|
||||
sync
|
||||
|
||||
echo "Unmount modified disk image and convert to compressed read-only image"
|
||||
hdiutil detach "${DEVICE}"
|
||||
hdiutil convert "${APP_NAME}-rw.dmg" -format UDZO -o "LAMMPS-macOS-multiarch.dmg"
|
||||
|
||||
echo "Attach icon to .dmg file"
|
||||
echo "read 'icns' (-16455) \"lammps-gui.app/Contents/Resources/lammps.icns\";" > icon.rsrc
|
||||
Rez -a icon.rsrc -o LAMMPS-macOS-multiarch.dmg
|
||||
SetFile -a C LAMMPS-macOS-multiarch.dmg
|
||||
rm icon.rsrc
|
||||
|
||||
echo "Delete temporary disk images"
|
||||
rm -f "${APP_NAME}-rw.dmg"
|
||||
rm -f "${APP_NAME}.dmg"
|
||||
|
||||
exit 0
|
||||
64
cmake/packaging/build_windows_cross_zip.sh
Executable file
@ -0,0 +1,64 @@
|
||||
#!/bin/bash
|
||||
|
||||
APP_NAME=lammps-gui
|
||||
DESTDIR=${PWD}/LAMMPS_GUI
|
||||
SYSROOT="$1"
|
||||
|
||||
echo "Delete old files, if they exist"
|
||||
rm -rvf ${DESTDIR}/LAMMPS_GUI ${DESTDIR}/LAMMPS-Win10-amd64.zip
|
||||
|
||||
echo "Create staging area for deployment and populate"
|
||||
DESTDIR=${DESTDIR} cmake --install . --prefix "/"
|
||||
|
||||
# no static libs needed
|
||||
rm -rvf ${DESTDIR}/lib
|
||||
# but the LAMMPS lib
|
||||
|
||||
echo "Copying required DLL files"
|
||||
for dll in $(objdump -p *.exe *.dll | sed -n -e '/DLL Name:/s/^.*DLL Name: *//p' | sort | uniq)
|
||||
do \
|
||||
doskip=0
|
||||
for skip in ADVAPI32 CFGMGR32 GDI32 KERNEL32 MPR NETAPI32 PSAPI SHELL32 USER32 USERENV UxTheme VERSION WS2_32 WSOCK32 d3d11 dwmapi liblammps msvcrt_ole32
|
||||
do \
|
||||
test ${dll} = ${skip}.dll && doskip=1
|
||||
done
|
||||
test ${doskip} -eq 1 && continue
|
||||
test -f ${DESTDIR}/bin/${dll} || cp -v ${SYSROOT}/bin/${dll} ${DESTDIR}/bin
|
||||
done
|
||||
|
||||
echo "Copy required Qt plugins"
|
||||
mkdir -p ${DESTDIR}/qt5plugins
|
||||
for plugin in imageformats platforms styles
|
||||
do \
|
||||
cp -r ${SYSROOT}/lib/qt5/plugins/${plugin} ${DESTDIR}/qt5plugins/
|
||||
done
|
||||
|
||||
echo "Check dependencies of DLL files"
|
||||
for dll in $(objdump -p ${DESTDIR}/bin/*.dll ${DESTDIR}/qt5plugins/*/*.dll | sed -n -e '/DLL Name:/s/^.*DLL Name: *//p' | sort | uniq)
|
||||
do \
|
||||
doskip=0
|
||||
for skip in ADVAPI32 CFGMGR32 GDI32 KERNEL32 MPR NETAPI32 PSAPI SHELL32 USER32 USERENV UxTheme VERSION WS2_32 WSOCK32 d3d11 dwmapi liblammps msvcrt_ole32
|
||||
do \
|
||||
test ${dll} = ${skip}.dll && doskip=1
|
||||
done
|
||||
test ${doskip} -eq 1 && continue
|
||||
test -f ${DESTDIR}/bin/${dll} || cp -v ${SYSROOT}/bin/${dll} ${DESTDIR}/bin
|
||||
done
|
||||
|
||||
for dll in $(objdump -p ${DESTDIR}/bin/*.dll ${DESTDIR}/qt5plugins/*/*.dll | sed -n -e '/DLL Name:/s/^.*DLL Name: *//p' | sort | uniq)
|
||||
do \
|
||||
doskip=0
|
||||
for skip in ADVAPI32 CFGMGR32 GDI32 KERNEL32 MPR NETAPI32 PSAPI SHELL32 USER32 USERENV UxTheme VERSION WS2_32 WSOCK32 d3d11 dwmapi liblammps msvcrt_ole32
|
||||
do \
|
||||
test ${dll} = ${skip}.dll && doskip=1
|
||||
done
|
||||
test ${doskip} -eq 1 && continue
|
||||
test -f ${DESTDIR}/bin/${dll} || cp -v ${SYSROOT}/bin/${dll} ${DESTDIR}/bin
|
||||
done
|
||||
|
||||
cat > ${DESTDIR}/bin/qt.conf <<EOF
|
||||
[Paths]
|
||||
Plugins = ../qt5plugins
|
||||
EOF
|
||||
zip -9rvD LAMMPS-Win10-amd64.zip LAMMPS_GUI
|
||||
|
||||
28
cmake/packaging/build_windows_vs.cmake
Normal file
@ -0,0 +1,28 @@
|
||||
# CMake script to be run post installation to build zipped package
|
||||
|
||||
# clean up old zipfile and deployment tree
|
||||
file(REMOVE LAMMPS-Win10-amd64.zip)
|
||||
file(REMOVE_RECURSE LAMMPS_GUI)
|
||||
file(RENAME ${INSTNAME} LAMMPS_GUI)
|
||||
|
||||
# move all executables and dlls to main folder and delete bin folder
|
||||
file(GLOB BINFILES LIST_DIRECTORIES FALSE LAMMPS_GUI/bin/*.exe LAMMPS_GUI/bin/*.dll)
|
||||
foreach(bin ${BINFILES})
|
||||
get_filename_component(exe ${bin} NAME)
|
||||
file(RENAME ${bin} LAMMPS_GUI/${exe})
|
||||
endforeach()
|
||||
file(REMOVE_RECURSE LAMMPS_GUI/bin)
|
||||
|
||||
# create qt.conf so Qt will find its plugins
|
||||
file(WRITE LAMMPS_GUI/qt.conf "[Paths]\r\nPlugins = qt5plugins\r\n")
|
||||
|
||||
# initialize environment and then run windeployqt to populate folder with missing dependencies and Qt plugins
|
||||
file(WRITE qtdeploy.bat "@ECHO OFF\r\nset VSCMD_DEBUG=0\r\nCALL ${VC_INIT} x64\r\nset PATH=${QT5_BIN_DIR};%PATH%\r\nwindeployqt --plugindir LAMMPS_GUI/qt5plugins --release LAMMPS_GUI/lammps-gui.exe --no-quick-import --no-webkit2 --no-translations --no-system-d3d-compiler --no-angle --no-opengl-sw\r\n")
|
||||
execute_process(COMMAND cmd.exe /c qtdeploy.bat COMMAND_ECHO STDERR)
|
||||
file(REMOVE qtdeploy.bat)
|
||||
|
||||
# create zip archive
|
||||
file(WRITE makearchive.ps1 "Compress-Archive -Path LAMMPS_GUI -CompressionLevel Optimal -DestinationPath LAMMPS-Win10-amd64.zip")
|
||||
execute_process(COMMAND powershell -ExecutionPolicy Bypass -File makearchive.ps1)
|
||||
file(REMOVE makearchive.ps1)
|
||||
file(REMOVE_RECURSE LAMMPS_GUI)
|
||||
BIN
cmake/packaging/lammps-icon-1024x1024.png
Normal file
|
After Width: | Height: | Size: 598 KiB |
BIN
cmake/packaging/lammps.icns
Normal file
18
cmake/packaging/linux_wrapper.sh
Executable file
@ -0,0 +1,18 @@
|
||||
#!/bin/sh
|
||||
# wrapper for bundled executables
|
||||
|
||||
# reset locale to avoid problems with decimal numbers
|
||||
export LC_ALL=C
|
||||
|
||||
BASEDIR=$(dirname "$0")
|
||||
EXENAME=$(basename "$0")
|
||||
|
||||
# append to LD_LIBRARY_PATH to prefer local (newer) libs
|
||||
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${BASEDIR}/lib
|
||||
|
||||
# set some environment variables for LAMMPS etc.
|
||||
LAMMPS_POTENTIALS=${BASEDIR}/share/lammps/potentials
|
||||
MSI2LMP_LIBRARY=${BASEDIR}/share/lammps/frc_files
|
||||
export LD_LIBRARY_PATH LAMMPS_POTENTIALS MSI2LMP_LIBRARY
|
||||
|
||||
exec "${BASEDIR}/bin/${EXENAME}" "$@"
|
||||
30
cmake/packaging/png2iconset.sh
Executable file
@ -0,0 +1,30 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ $# != 2 ]
|
||||
then
|
||||
echo "usage: $0 <pngfile> <iconset name>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
png="$1"
|
||||
ico="$2"
|
||||
|
||||
if [ ! -f ${png} ]
|
||||
then
|
||||
echo "PNG Image $1 not found"
|
||||
fi
|
||||
|
||||
rm -rf ${ico}.iconset
|
||||
mkdir ${ico}.iconset
|
||||
sips -z 16 16 ${png} --out ${ico}.iconset/icon_16x16.png
|
||||
sips -z 32 32 ${png} --out ${ico}.iconset/icon_16x16@2x.png
|
||||
sips -z 32 32 ${png} --out ${ico}.iconset/icon_32x32.png
|
||||
sips -z 64 64 ${png} --out ${ico}.iconset/icon_32x32@2x.png
|
||||
sips -z 128 128 ${png} --out ${ico}.iconset/icon_128x128.png
|
||||
sips -z 256 256 ${png} --out ${ico}.iconset/icon_128x128@2x.png
|
||||
sips -z 256 256 ${png} --out ${ico}.iconset/icon_256x256.png
|
||||
sips -z 512 512 ${png} --out ${ico}.iconset/icon_256x256@2x.png
|
||||
sips -z 512 512 ${png} --out ${ico}.iconset/icon_512x512.png
|
||||
sips -z 1024 1024 ${png} --out ${ico}.iconset/icon_512x512@2x.png
|
||||
iconutil -c icns ${ico}.iconset
|
||||
rm -rf ${ico}.iconset
|
||||
@ -63,8 +63,6 @@ set(ALL_PACKAGES
|
||||
MOFFF
|
||||
MOLECULE
|
||||
MOLFILE
|
||||
MPIIO
|
||||
MSCG
|
||||
NETCDF
|
||||
OPENMP
|
||||
OPT
|
||||
|
||||
@ -65,8 +65,6 @@ set(ALL_PACKAGES
|
||||
MOFFF
|
||||
MOLECULE
|
||||
MOLFILE
|
||||
MPIIO
|
||||
MSCG
|
||||
NETCDF
|
||||
OPENMP
|
||||
OPT
|
||||
|
||||
@ -9,7 +9,6 @@ endforeach()
|
||||
|
||||
set(DOWNLOAD_KIM ON CACHE BOOL "" FORCE)
|
||||
set(DOWNLOAD_MDI ON CACHE BOOL "" FORCE)
|
||||
set(DOWNLOAD_MSCG ON CACHE BOOL "" FORCE)
|
||||
set(DOWNLOAD_VORO ON CACHE BOOL "" FORCE)
|
||||
set(DOWNLOAD_EIGEN3 ON CACHE BOOL "" FORCE)
|
||||
set(DOWNLOAD_PACE ON CACHE BOOL "" FORCE)
|
||||
|
||||
14
cmake/presets/macos-multiarch.cmake
Normal file
@ -0,0 +1,14 @@
|
||||
# preset that will build portable multi-arch binaries on macOS without MPI
|
||||
|
||||
set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64" CACHE STRING "" FORCE)
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET 11.0 CACHE STRING "" FORCE)
|
||||
set(CMAKE_BUILD_TYPE Release CACHE STRING "" FORCE)
|
||||
|
||||
set(CMAKE_CXX_COMPILER "clang++" CACHE STRING "" FORCE)
|
||||
set(CMAKE_C_COMPILER "clang" CACHE STRING "" FORCE)
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE)
|
||||
set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE)
|
||||
|
||||
set(BUILD_MPI FALSE CACHE BOOL "" FORCE)
|
||||
set(BUILD_SHARED_LIBS FALSE CACHE BOOL "" FORCE)
|
||||
set(LAMMPS_EXCEPTIONS TRUE CACHE BOOL "" FORCE)
|
||||
@ -83,7 +83,6 @@ endforeach()
|
||||
|
||||
# these two packages require a full MPI implementation
|
||||
if(BUILD_MPI)
|
||||
set(PKG_MPIIO ON CACHE BOOL "" FORCE)
|
||||
set(PKG_LATBOLTZ ON CACHE BOOL "" FORCE)
|
||||
endif()
|
||||
|
||||
|
||||
@ -24,8 +24,8 @@ set(ALL_PACKAGES
|
||||
DPD-REACT
|
||||
DPD-SMOOTH
|
||||
DRUDE
|
||||
ELECTRODE
|
||||
EFF
|
||||
ELECTRODE
|
||||
EXTRA-COMPUTE
|
||||
EXTRA-DUMP
|
||||
EXTRA-FIX
|
||||
|
||||
@ -19,8 +19,6 @@ set(PACKAGES_WITH_LIB
|
||||
ML-PACE
|
||||
ML-QUIP
|
||||
MOLFILE
|
||||
MPIIO
|
||||
MSCG
|
||||
NETCDF
|
||||
PLUMED
|
||||
PYTHON
|
||||
|
||||
@ -32,6 +32,7 @@ set(WIN_PACKAGES
|
||||
INTERLAYER
|
||||
KSPACE
|
||||
LEPTON
|
||||
MACHDYN
|
||||
MANIFOLD
|
||||
MANYBODY
|
||||
MC
|
||||
@ -45,6 +46,7 @@ set(WIN_PACKAGES
|
||||
MOLECULE
|
||||
MOLFILE
|
||||
OPENMP
|
||||
OPT
|
||||
ORIENT
|
||||
PERI
|
||||
PHONON
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
.TH LAMMPS "1" "15 June 2023" "2023-06-15"
|
||||
.TH LAMMPS "1" "2 August 2023" "2023-08-2"
|
||||
.SH NAME
|
||||
.B LAMMPS
|
||||
\- Molecular Dynamics Simulator. Version 15 June 2023
|
||||
\- Molecular Dynamics Simulator. Version 2 August 2023
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B lmp
|
||||
|
||||
@ -90,7 +90,7 @@ standard. A more detailed discussion of that is below.
|
||||
directory, or ``make`` from the ``src/STUBS`` dir. If the build
|
||||
fails, you may need to edit the ``STUBS/Makefile`` for your
|
||||
platform. The stubs library does not provide MPI/IO functions
|
||||
required by some LAMMPS packages, e.g. ``MPIIO`` or ``LATBOLTZ``,
|
||||
required by some LAMMPS packages, e.g. ``LATBOLTZ``,
|
||||
and thus is not compatible with those packages.
|
||||
|
||||
.. note::
|
||||
@ -128,14 +128,13 @@ and adds vectorization support when compiled with compatible compilers,
|
||||
in particular the Intel compilers on top of OpenMP. Also, the ``KOKKOS``
|
||||
package can be compiled to include OpenMP threading.
|
||||
|
||||
In addition, there are a few commands in LAMMPS that have native
|
||||
OpenMP support included as well. These are commands in the ``MPIIO``,
|
||||
``ML-SNAP``, ``DIFFRACTION``, and ``DPD-REACT`` packages.
|
||||
Furthermore, some packages support OpenMP threading indirectly through
|
||||
the libraries they interface to: e.g. ``KSPACE``, and ``COLVARS``.
|
||||
See the :doc:`Packages details <Packages_details>` page for more info
|
||||
on these packages, and the pages for their respective commands for
|
||||
OpenMP threading info.
|
||||
In addition, there are a few commands in LAMMPS that have native OpenMP
|
||||
support included as well. These are commands in the ``ML-SNAP``,
|
||||
``DIFFRACTION``, and ``DPD-REACT`` packages. Furthermore, some packages
|
||||
support OpenMP threading indirectly through the libraries they interface
|
||||
to: e.g. ``KSPACE``, and ``COLVARS``. See the :doc:`Packages details
|
||||
<Packages_details>` page for more info on these packages, and the pages
|
||||
for their respective commands for OpenMP threading info.
|
||||
|
||||
For CMake, if you use ``BUILD_OMP=yes``, you can use these packages
|
||||
and turn on their native OpenMP support and turn on their native OpenMP
|
||||
|
||||
@ -16,8 +16,7 @@ environments is on a :doc:`separate page <Howto_cmake>`.
|
||||
|
||||
.. note::
|
||||
|
||||
LAMMPS currently requires that CMake version 3.10 or later is available;
|
||||
version 3.12 or later is preferred.
|
||||
LAMMPS currently requires that CMake version 3.16 or later is available.
|
||||
|
||||
.. warning::
|
||||
|
||||
@ -34,19 +33,18 @@ Advantages of using CMake
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
CMake is an alternative to compiling LAMMPS in the traditional way
|
||||
through :doc:`(manually customized) makefiles <Build_make>` and a recent
|
||||
addition to LAMMPS thanks to the efforts of Christoph Junghans (LANL)
|
||||
and Richard Berger (Temple U). Using CMake has multiple advantages that
|
||||
are specifically helpful for people with limited experience in compiling
|
||||
software or for people that want to modify or extend LAMMPS.
|
||||
through :doc:`(manually customized) makefiles <Build_make>`. Using
|
||||
CMake has multiple advantages that are specifically helpful for
|
||||
people with limited experience in compiling software or for people
|
||||
that want to modify or extend LAMMPS.
|
||||
|
||||
- CMake can detect available hardware, tools, features, and libraries
|
||||
and adapt the LAMMPS default build configuration accordingly.
|
||||
- CMake can generate files for different build tools and integrated
|
||||
development environments (IDE).
|
||||
- CMake supports customization of settings with a command line, text
|
||||
mode, or graphical user interface. No knowledge of file formats or
|
||||
complex command line syntax is required.
|
||||
mode, or graphical user interface. No manual editing of files,
|
||||
knowledge of file formats or complex command line syntax is required.
|
||||
- All enabled components are compiled in a single build operation.
|
||||
- Automated dependency tracking for all files and configuration options.
|
||||
- Support for true out-of-source compilation. Multiple configurations
|
||||
|
||||
@ -52,7 +52,6 @@ This is the list of packages that may require additional steps.
|
||||
* :ref:`ML-POD <ml-pod>`
|
||||
* :ref:`ML-QUIP <ml-quip>`
|
||||
* :ref:`MOLFILE <molfile>`
|
||||
* :ref:`MSCG <mscg>`
|
||||
* :ref:`NETCDF <netcdf>`
|
||||
* :ref:`OPENMP <openmp>`
|
||||
* :ref:`OPT <opt>`
|
||||
@ -140,6 +139,8 @@ CMake build
|
||||
# value = yes or no (default)
|
||||
-D CUDA_MPS_SUPPORT=value # enables some tweaks required to run with active nvidia-cuda-mps daemon
|
||||
# value = yes or no (default)
|
||||
-D CUDA_BUILD_MULTIARCH=value # enables building CUDA kernels for all supported GPU architectures
|
||||
# value = yes (default) or no
|
||||
-D USE_STATIC_OPENCL_LOADER=value # downloads/includes OpenCL ICD loader library, no local OpenCL headers/libs needed
|
||||
# value = yes (default) or no
|
||||
|
||||
@ -158,41 +159,49 @@ CMake build
|
||||
A more detailed list can be found, for example,
|
||||
at `Wikipedia's CUDA article <https://en.wikipedia.org/wiki/CUDA#GPUs_supported>`_
|
||||
|
||||
CMake can detect which version of the CUDA toolkit is used and thus will try
|
||||
to include support for **all** major GPU architectures supported by this toolkit.
|
||||
Thus the GPU_ARCH setting is merely an optimization, to have code for
|
||||
the preferred GPU architecture directly included rather than having to wait
|
||||
for the JIT compiler of the CUDA driver to translate it.
|
||||
CMake can detect which version of the CUDA toolkit is used and thus will
|
||||
try to include support for **all** major GPU architectures supported by
|
||||
this toolkit. Thus the GPU_ARCH setting is merely an optimization, to
|
||||
have code for the preferred GPU architecture directly included rather
|
||||
than having to wait for the JIT compiler of the CUDA driver to translate
|
||||
it. This behavior can be turned off (e.g. to speed up compilation) by
|
||||
setting :code:`CUDA_ENABLE_MULTIARCH` to :code:`no`.
|
||||
|
||||
When compiling for CUDA or HIP with CUDA, version 8.0 or later of the CUDA toolkit
|
||||
is required and a GPU architecture of Kepler or later, which must *also* be
|
||||
supported by the CUDA toolkit in use **and** the CUDA driver in use.
|
||||
When compiling for OpenCL, OpenCL version 1.2 or later is required and the
|
||||
GPU must be supported by the GPU driver and OpenCL runtime bundled with the driver.
|
||||
When compiling for CUDA or HIP with CUDA, version 8.0 or later of the
|
||||
CUDA toolkit is required and a GPU architecture of Kepler or later,
|
||||
which must *also* be supported by the CUDA toolkit in use **and** the
|
||||
CUDA driver in use. When compiling for OpenCL, OpenCL version 1.2 or
|
||||
later is required and the GPU must be supported by the GPU driver and
|
||||
OpenCL runtime bundled with the driver.
|
||||
|
||||
When building with CMake, you **must NOT** build the GPU library in ``lib/gpu``
|
||||
using the traditional build procedure. CMake will detect files generated by that
|
||||
process and will terminate with an error and a suggestion for how to remove them.
|
||||
When building with CMake, you **must NOT** build the GPU library in
|
||||
``lib/gpu`` using the traditional build procedure. CMake will detect
|
||||
files generated by that process and will terminate with an error and a
|
||||
suggestion for how to remove them.
|
||||
|
||||
If you are compiling for OpenCL, the default setting is to download, build, and
|
||||
link with a static OpenCL ICD loader library and standard OpenCL headers. This
|
||||
way no local OpenCL development headers or library needs to be present and only
|
||||
OpenCL compatible drivers need to be installed to use OpenCL. If this is not
|
||||
desired, you can set :code:`USE_STATIC_OPENCL_LOADER` to :code:`no`.
|
||||
If you are compiling for OpenCL, the default setting is to download,
|
||||
build, and link with a static OpenCL ICD loader library and standard
|
||||
OpenCL headers. This way no local OpenCL development headers or library
|
||||
needs to be present and only OpenCL compatible drivers need to be
|
||||
installed to use OpenCL. If this is not desired, you can set
|
||||
:code:`USE_STATIC_OPENCL_LOADER` to :code:`no`.
|
||||
|
||||
The GPU library has some multi-thread support using OpenMP. If LAMMPS is built
|
||||
with ``-D BUILD_OMP=on`` this will also be enabled.
|
||||
The GPU library has some multi-thread support using OpenMP. If LAMMPS
|
||||
is built with ``-D BUILD_OMP=on`` this will also be enabled.
|
||||
|
||||
If you are compiling with HIP, note that before running CMake you will have to
|
||||
set appropriate environment variables. Some variables such as
|
||||
:code:`HCC_AMDGPU_TARGET` (for ROCm <= 4.0) or :code:`CUDA_PATH` are necessary for :code:`hipcc`
|
||||
and the linker to work correctly.
|
||||
If you are compiling with HIP, note that before running CMake you will
|
||||
have to set appropriate environment variables. Some variables such as
|
||||
:code:`HCC_AMDGPU_TARGET` (for ROCm <= 4.0) or :code:`CUDA_PATH` are
|
||||
necessary for :code:`hipcc` and the linker to work correctly.
|
||||
|
||||
Using CHIP-SPV implementation of HIP is now supported. It allows one to run HIP
|
||||
code on Intel GPUs via the OpenCL or Level Zero backends. To use CHIP-SPV, you must
|
||||
set :code:`-DHIP_USE_DEVICE_SORT=OFF` in your CMake command line as CHIP-SPV does not
|
||||
yet support hipCUB. The use of HIP for Intel GPUs is still experimental so you
|
||||
should only use this option in preparations to run on Aurora system at ANL.
|
||||
.. versionadded:: 3Aug2022
|
||||
|
||||
Using the CHIP-SPV implementation of HIP is supported. It allows one to
|
||||
run HIP code on Intel GPUs via the OpenCL or Level Zero backends. To use
|
||||
CHIP-SPV, you must set :code:`-DHIP_USE_DEVICE_SORT=OFF` in your CMake
|
||||
command line as CHIP-SPV does not yet support hipCUB. As of Summer 2022,
|
||||
the use of HIP for Intel GPUs is experimental. You should only use this
|
||||
option in preparations to run on Aurora system at Argonne.
|
||||
|
||||
.. code:: bash
|
||||
|
||||
@ -629,6 +638,12 @@ They must be specified in uppercase.
|
||||
* - VEGA90A
|
||||
- GPU
|
||||
- AMD GPU MI200 GFX90A
|
||||
* - NAVI1030
|
||||
- GPU
|
||||
- AMD GPU V620/W6800
|
||||
* - NAVI1100
|
||||
- GPU
|
||||
- AMD GPU RX7900XTX
|
||||
* - INTEL_GEN
|
||||
- GPU
|
||||
- SPIR64-based devices, e.g. Intel GPUs, using JIT
|
||||
@ -651,7 +666,7 @@ They must be specified in uppercase.
|
||||
- GPU
|
||||
- Intel GPU Ponte Vecchio
|
||||
|
||||
This list was last updated for version 3.7.1 of the Kokkos library.
|
||||
This list was last updated for version 4.0.1 of the Kokkos library.
|
||||
|
||||
.. tabs::
|
||||
|
||||
@ -921,59 +936,6 @@ Python version 3.6 or later.
|
||||
|
||||
----------
|
||||
|
||||
.. _mscg:
|
||||
|
||||
MSCG package
|
||||
-----------------------
|
||||
|
||||
To build with this package, you must download and build the MS-CG
|
||||
library. Building the MS-CG library requires that the GSL
|
||||
(GNU Scientific Library) headers and libraries are installed on your
|
||||
machine. See the ``lib/mscg/README`` and ``MSCG/Install`` files for
|
||||
more details.
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. tab:: CMake build
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
-D DOWNLOAD_MSCG=value # download MSCG for build, value = no (default) or yes
|
||||
-D MSCG_LIBRARY=path # MSCG library file (only needed if a custom location)
|
||||
-D MSCG_INCLUDE_DIR=path # MSCG include directory (only needed if a custom location)
|
||||
|
||||
If ``DOWNLOAD_MSCG`` is set, the MSCG library will be downloaded
|
||||
and built inside the CMake build directory. If the MSCG library
|
||||
is already on your system (in a location CMake cannot find it),
|
||||
``MSCG_LIBRARY`` is the filename (plus path) of the MSCG library
|
||||
file, not the directory the library file is in.
|
||||
``MSCG_INCLUDE_DIR`` is the directory the MSCG include file is in.
|
||||
|
||||
.. tab:: Traditional make
|
||||
|
||||
You can download and build the MS-CG library manually if you
|
||||
prefer; follow the instructions in ``lib/mscg/README``\ . You can
|
||||
also do it in one step from the ``lammps/src`` dir, using a
|
||||
command like these, which simply invokes the
|
||||
``lib/mscg/Install.py`` script with the specified args:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
make lib-mscg # print help message
|
||||
make lib-mscg args="-b -m serial" # download and build in lib/mscg/MSCG-release-master
|
||||
# with the settings compatible with "make serial"
|
||||
make lib-mscg args="-b -m mpi" # download and build in lib/mscg/MSCG-release-master
|
||||
# with the settings compatible with "make mpi"
|
||||
make lib-mscg args="-p /usr/local/mscg-release" # use the existing MS-CG installation in /usr/local/mscg-release
|
||||
|
||||
Note that 2 symbolic (soft) links, ``includelink`` and ``liblink``,
|
||||
will be created in ``lib/mscg`` to point to the MS-CG
|
||||
``src/installation`` dir. When LAMMPS is built in src it will use
|
||||
these links. You should not need to edit the
|
||||
``lib/mscg/Makefile.lammps`` file.
|
||||
|
||||
----------
|
||||
|
||||
.. _opt:
|
||||
|
||||
OPT package
|
||||
|
||||
@ -55,7 +55,6 @@ packages:
|
||||
* :ref:`ML-POD <ml-pod>`
|
||||
* :ref:`ML-QUIP <ml-quip>`
|
||||
* :ref:`MOLFILE <molfile>`
|
||||
* :ref:`MSCG <mscg>`
|
||||
* :ref:`NETCDF <netcdf>`
|
||||
* :ref:`OPENMP <openmp>`
|
||||
* :ref:`OPT <opt>`
|
||||
|
||||
@ -459,27 +459,13 @@ those systems:
|
||||
.. _exceptions:
|
||||
|
||||
Exception handling when using LAMMPS as a library
|
||||
------------------------------------------------------------------
|
||||
-------------------------------------------------
|
||||
|
||||
This setting is useful when external codes drive LAMMPS as a library.
|
||||
With this option enabled, LAMMPS errors do not kill the calling code.
|
||||
Instead, the call stack is unwound and control returns to the caller,
|
||||
e.g. to Python. Of course, the calling code has to be set up to
|
||||
*catch* exceptions thrown from within LAMMPS.
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. tab:: CMake build
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
-D LAMMPS_EXCEPTIONS=value # yes or no (default)
|
||||
|
||||
.. tab:: Traditional make
|
||||
|
||||
.. code-block:: make
|
||||
|
||||
LMP_INC = -DLAMMPS_EXCEPTIONS <other LMP_INC settings>
|
||||
LAMMPS errors do not kill the calling code, but throw an exception. In
|
||||
the C-library interface, the call stack is unwound and control returns
|
||||
to the caller, e.g. to Python or a code that is coupled to LAMMPS and
|
||||
the error status can be queried. When using C++ directly, the calling
|
||||
code has to be set up to *catch* exceptions thrown from within LAMMPS.
|
||||
|
||||
.. note::
|
||||
|
||||
|
||||
@ -91,6 +91,7 @@ KOKKOS, o = OPENMP, t = OPT.
|
||||
* :doc:`ke/atom/eff <compute_ke_atom_eff>`
|
||||
* :doc:`ke/eff <compute_ke_eff>`
|
||||
* :doc:`ke/rigid <compute_ke_rigid>`
|
||||
* :doc:`composition/atom (k) <compute_composition_atom>`
|
||||
* :doc:`mliap <compute_mliap>`
|
||||
* :doc:`momentum <compute_momentum>`
|
||||
* :doc:`msd <compute_msd>`
|
||||
|
||||
@ -23,17 +23,14 @@ An alphabetic list of all LAMMPS :doc:`dump <dump>` commands.
|
||||
* :doc:`atom <dump>`
|
||||
* :doc:`atom/adios <dump_adios>`
|
||||
* :doc:`atom/gz <dump>`
|
||||
* :doc:`atom/mpiio <dump>`
|
||||
* :doc:`atom/zstd <dump>`
|
||||
* :doc:`cfg <dump>`
|
||||
* :doc:`cfg/gz <dump>`
|
||||
* :doc:`cfg/mpiio <dump>`
|
||||
* :doc:`cfg/uef <dump_cfg_uef>`
|
||||
* :doc:`cfg/zstd <dump>`
|
||||
* :doc:`custom <dump>`
|
||||
* :doc:`custom/adios <dump_adios>`
|
||||
* :doc:`custom/gz <dump>`
|
||||
* :doc:`custom/mpiio <dump>`
|
||||
* :doc:`custom/zstd <dump>`
|
||||
* :doc:`dcd <dump>`
|
||||
* :doc:`grid <dump>`
|
||||
@ -51,7 +48,6 @@ An alphabetic list of all LAMMPS :doc:`dump <dump>` commands.
|
||||
* :doc:`xtc <dump>`
|
||||
* :doc:`xyz <dump>`
|
||||
* :doc:`xyz/gz <dump>`
|
||||
* :doc:`xyz/mpiio <dump>`
|
||||
* :doc:`xyz/zstd <dump>`
|
||||
* :doc:`yaml <dump>`
|
||||
|
||||
|
||||
@ -116,7 +116,6 @@ OPT.
|
||||
* :doc:`momentum (k) <fix_momentum>`
|
||||
* :doc:`momentum/chunk <fix_momentum>`
|
||||
* :doc:`move <fix_move>`
|
||||
* :doc:`mscg <fix_mscg>`
|
||||
* :doc:`msst <fix_msst>`
|
||||
* :doc:`mvv/dpd <fix_mvv_dpd>`
|
||||
* :doc:`mvv/edpd <fix_mvv_dpd>`
|
||||
|
||||
@ -85,6 +85,35 @@ The same functionality is available through
|
||||
:doc:`bond style mesocnt <bond_mesocnt>` and
|
||||
:doc:`angle style mesocnt <angle_mesocnt>`.
|
||||
|
||||
MPIIO package
|
||||
-------------
|
||||
|
||||
.. deprecated:: TBD
|
||||
|
||||
The MPIIO package has been removed from LAMMPS since it was unmaintained
|
||||
for many years and thus not updated to incorporate required changes that
|
||||
had been applied to the corresponding non-MPIIO commands. As a
|
||||
consequence the MPIIO commands had become unreliable and sometimes
|
||||
crashing LAMMPS or corrupting data. Similar functionality is available
|
||||
through the :ref:`ADIOS package <PKG-ADIOS>` and the :ref:`NETCDF
|
||||
package <PKG-NETCDF>`. Also, the :doc:`dump_modify nfile or dump_modify
|
||||
fileper <dump_modify>` keywords may be used for an efficient way of
|
||||
writing out dump files when running on large numbers of processors.
|
||||
Similarly, the "nfile" and "fileper" keywords exist for restarts:
|
||||
see :doc:`restart <restart>`, :doc:`read_restart <read_restart>`,
|
||||
:doc:`write_restart <write_restart>`.
|
||||
|
||||
|
||||
MSCG package
|
||||
------------
|
||||
|
||||
.. deprecated:: TBD
|
||||
|
||||
The MSCG package has been removed from LAMMPS since it was unmaintained
|
||||
for many years and instead superseded by the `OpenMSCG software
|
||||
<https://software.rcc.uchicago.edu/mscg/>`_ of the Voth group at the
|
||||
University of Chicago, which can be used independent from LAMMPS.
|
||||
|
||||
REAX package
|
||||
------------
|
||||
|
||||
|
||||
@ -92,8 +92,8 @@ Arguments for these methods can be values returned by the
|
||||
*setup_grid()* method (described below), which define the extent of
|
||||
the grid cells (owned+ghost) the processor owns. These 4 methods
|
||||
allocate memory for 2d (first two) and 3d (second two) grid data. The
|
||||
two methods that end in "_one" allocate an array which stores a single
|
||||
value per grid cell. The two that end in "_multi" allocate an array
|
||||
two methods that end in "_offset" allocate an array which stores a single
|
||||
value per grid cell. The two that end in "_last" allocate an array
|
||||
which stores *Nvalues* per grid cell.
|
||||
|
||||
.. code-block:: c++
|
||||
|
||||
@ -7148,9 +7148,6 @@ keyword to allow for additional bonds to be formed
|
||||
*Read_dump xyz fields do not have consistent scaling/wrapping*
|
||||
Self-explanatory.
|
||||
|
||||
*Reading from MPI-IO filename when MPIIO package is not installed*
|
||||
Self-explanatory.
|
||||
|
||||
*Reax_defs.h setting for NATDEF is too small*
|
||||
Edit the setting in the ReaxFF library and re-compile the
|
||||
library and re-build LAMMPS.
|
||||
@ -8489,9 +8486,6 @@ keyword to allow for additional bonds to be formed
|
||||
The write_restart command cannot be used before a read_data,
|
||||
read_restart, or create_box command.
|
||||
|
||||
*Writing to MPI-IO filename when MPIIO package is not installed*
|
||||
Self-explanatory.
|
||||
|
||||
*Zero length rotation vector with displace_atoms*
|
||||
Self-explanatory.
|
||||
|
||||
|
||||
@ -104,8 +104,6 @@ Lowercase directories
|
||||
+-------------+------------------------------------------------------------------+
|
||||
| min | energy minimization of 2d LJ melt |
|
||||
+-------------+------------------------------------------------------------------+
|
||||
| mscg | parameterize a multi-scale coarse-graining (MSCG) model |
|
||||
+-------------+------------------------------------------------------------------+
|
||||
| msst | MSST shock dynamics |
|
||||
+-------------+------------------------------------------------------------------+
|
||||
| multi | multi neighboring for systems with large interaction disparities |
|
||||
|
||||
@ -2278,19 +2278,13 @@ Procedures Bound to the :f:type:`lammps` Derived Type
|
||||
|
||||
.. versionadded:: 3Nov2022
|
||||
|
||||
In case of an error, LAMMPS will either abort or throw a C++ exception.
|
||||
The latter has to be :ref:`enabled at compile time <exceptions>`.
|
||||
This function checks if exceptions were enabled.
|
||||
|
||||
When using the library interface with C++ exceptions enabled, the library
|
||||
interface functions will "catch" them, and the error status can then be
|
||||
checked by calling :f:func:`has_error`. The most recent error message can be
|
||||
retrieved via :f:func:`get_last_error_message`.
|
||||
This can allow one to restart a calculation or delete and recreate
|
||||
the LAMMPS instance when a C++ exception occurs. One application
|
||||
of using exceptions this way is the :ref:`lammps_shell`. If C++
|
||||
exceptions are disabled and an error happens during a call to
|
||||
LAMMPS or the Fortran API, the application will terminate.
|
||||
When using the library interface, the library interface functions
|
||||
will "catch" exceptions, and then the error status can be checked by
|
||||
calling :f:func:`has_error`. The most recent error message can be
|
||||
retrieved via :f:func:`get_last_error_message`. This allows to
|
||||
restart a calculation or delete and recreate the LAMMPS instance when
|
||||
a C++ exception occurs. One application of using exceptions this way
|
||||
is the :ref:`lammps_shell`.
|
||||
|
||||
:to: :cpp:func:`lammps_config_has_exceptions`
|
||||
:r has_exceptions:
|
||||
|
||||
@ -100,6 +100,7 @@ Tutorials howto
|
||||
|
||||
Howto_cmake
|
||||
Howto_github
|
||||
Howto_lammps_gui
|
||||
Howto_pylammps
|
||||
Howto_wsl
|
||||
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
Using CMake with LAMMPS tutorial
|
||||
================================
|
||||
Using CMake with LAMMPS
|
||||
=======================
|
||||
|
||||
The support for building LAMMPS with CMake is a recent addition to
|
||||
LAMMPS thanks to the efforts of Christoph Junghans (LANL) and Richard
|
||||
Berger (Temple U). One of the key strengths of CMake is that it is not
|
||||
tied to a specific platform or build system and thus generate the files
|
||||
necessary to build and develop for different build systems and on
|
||||
Berger (LANL). One of the key strengths of CMake is that it is not
|
||||
tied to a specific platform or build system. Instead it generates the
|
||||
files necessary to build and develop for different build systems and on
|
||||
different platforms. Note, that this applies to the build system itself
|
||||
not the LAMMPS code. In other words, without additional porting effort,
|
||||
it is not possible - for example - to compile LAMMPS with Visual C++ on
|
||||
@ -14,7 +14,7 @@ necessary to program LAMMPS as a project in integrated development
|
||||
environments (IDE) like Eclipse, Visual Studio, QtCreator, Xcode,
|
||||
CodeBlocks, Kate and others.
|
||||
|
||||
A second important feature of CMake is, that it can detect and validate
|
||||
A second important feature of CMake is that it can detect and validate
|
||||
available libraries, optimal settings, available support tools and so
|
||||
on, so that by default LAMMPS will take advantage of available tools
|
||||
without requiring to provide the details about how to enable/integrate
|
||||
@ -32,8 +32,8 @@ program ``cmake`` (or ``cmake3``), a text mode interactive user
|
||||
interface (TUI) program ``ccmake`` (or ``ccmake3``), or a graphical user
|
||||
interface (GUI) program ``cmake-gui``. All of them are portable
|
||||
software available on all supported platforms and can be used
|
||||
interchangeably. The minimum supported CMake version is 3.10 (3.12 or
|
||||
later is recommended).
|
||||
interchangeably. As of LAMMPS version 2 August 2023, the minimum
|
||||
required CMake version is 3.16.
|
||||
|
||||
All details about features and settings for CMake are in the `CMake
|
||||
online documentation <https://cmake.org/documentation/>`_. We focus
|
||||
@ -43,11 +43,20 @@ Prerequisites
|
||||
-------------
|
||||
|
||||
This tutorial assumes that you are operating in a command-line environment
|
||||
using a shell like Bash.
|
||||
using a shell like Bash or Zsh.
|
||||
|
||||
- Linux: any Terminal window will work
|
||||
- macOS: launch the Terminal application.
|
||||
- Windows 10: install and run the :doc:`Windows Subsystem for Linux <Howto_wsl>`
|
||||
- Linux: any Terminal window will work or text console
|
||||
- macOS: launch the Terminal application
|
||||
- Windows 10 or 11: install and run the :doc:`Windows Subsystem for Linux <Howto_wsl>`
|
||||
- other Unix-like operating systems like FreeBSD
|
||||
|
||||
.. note::
|
||||
|
||||
It is also possible to use CMake on Windows 10 or 11 through either the Microsoft
|
||||
Visual Studio IDE with the bundled CMake or from the Windows command prompt using
|
||||
a separately installed CMake package, both using the native Microsoft Visual C++
|
||||
compilers and (optionally) the Microsoft MPI SDK. This tutorial, however, only
|
||||
covers unix-like command line interfaces.
|
||||
|
||||
We also assume that you have downloaded and unpacked a recent LAMMPS source code package
|
||||
or used Git to create a clone of the LAMMPS sources on your compilation machine.
|
||||
@ -338,8 +347,6 @@ Some common LAMMPS specific variables
|
||||
- common compiler flags, for optimization or instrumentation (default:)
|
||||
* - ``LAMMPS_MACHINE``
|
||||
- when set to ``name`` the LAMMPS executable and library will be called ``lmp_name`` and ``liblammps_name.a``
|
||||
* - ``LAMMPS_EXCEPTIONS``
|
||||
- when set to ``on`` errors will throw a C++ exception instead of aborting (default: ``off``)
|
||||
* - ``FFT``
|
||||
- select which FFT library to use: ``FFTW3``, ``MKL``, ``KISS`` (default, unless FFTW3 is found)
|
||||
* - ``FFT_SINGLE``
|
||||
@ -412,9 +419,9 @@ interface (``ccmake`` or ``cmake-gui``).
|
||||
|
||||
Using a preset to select a compiler package (``clang.cmake``,
|
||||
``gcc.cmake``, ``intel.cmake``, ``oneapi.cmake``, or ``pgi.cmake``)
|
||||
are an exception to the mechanism of updating the configuration incrementally,
|
||||
as they will trigger a reset of cached internal CMake settings and thus
|
||||
reset settings to their default values.
|
||||
are an exception to the mechanism of updating the configuration
|
||||
incrementally, as they will trigger a reset of cached internal CMake
|
||||
settings and thus reset settings to their default values.
|
||||
|
||||
Compilation and build targets
|
||||
-----------------------------
|
||||
|
||||
402
doc/src/Howto_lammps_gui.rst
Normal file
@ -0,0 +1,402 @@
|
||||
Using the LAMMPS GUI
|
||||
====================
|
||||
|
||||
LAMMPS GUI is a simple graphical text editor that is linked to the
|
||||
:ref:`LAMMPS C-library interface <lammps_c_api>` and thus can run LAMMPS
|
||||
directly using the contents of the editor's text buffer as input.
|
||||
|
||||
This is similar to what people traditionally would do to run LAMMPS:
|
||||
using a regular text editor to edit the input and run the necessary
|
||||
commands, possibly including the text editor, too, from a command line
|
||||
terminal window. That is quite effective when running LAMMPS on
|
||||
high-performance computing facilities and when you are very proficient
|
||||
in using the command line. The main benefit of a GUI application is
|
||||
that this integrates well with graphical desktop environments and many
|
||||
basic tasks can be done directly from within the GUI without switching
|
||||
to a text console or requiring external programs or scripts to extract
|
||||
data from the generated output. This makes it easier for beginners to
|
||||
get started running simple LAMMPS simulations and thus very suitable for
|
||||
tutorials on LAMMPS. But also makes it easier to switch to a full
|
||||
featured text editor and more sophisticated visualization and analysis
|
||||
tools.
|
||||
|
||||
-----
|
||||
|
||||
The following text provides a detailed tour of the features and
|
||||
functionality of the LAMMPS GUI. This document describes LAMMPS GUI
|
||||
version 1.2.
|
||||
|
||||
Main window
|
||||
-----------
|
||||
|
||||
When LAMMPS GUI starts, it will show the main window with either an
|
||||
empty buffer, or have a file loaded. In the latter case it may look like
|
||||
the following:
|
||||
|
||||
.. image:: JPG/lammps-gui-main.png
|
||||
:align: center
|
||||
:scale: 50%
|
||||
|
||||
There is the menu bar at the top, then the main editor buffer with the
|
||||
input file contents in the center with line numbers on the left and the
|
||||
input colored according to the LAMMPS input file syntax. At the bottom
|
||||
is the status bar, which shows the status of LAMMPS execution on the
|
||||
left ("Ready." when idle) and the current working directory on the
|
||||
right. The size of the main window will be stored when exiting and
|
||||
restored when starting again. The name of the current file in the
|
||||
buffer is shown in the window title and the text `*modified*` is added
|
||||
in case the buffer has modifications that are not yet saved to a file.
|
||||
|
||||
Opening Files
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
The LAMMPS GUI application will try to open the first command line
|
||||
argument as input file, further arguments are ignored. When no
|
||||
argument is given LAMMPS GUI will start with an empty buffer.
|
||||
Files can also be opened via the ``File`` menu or by drag-and-drop
|
||||
of a file from a file manager to the editor window. Only one
|
||||
file can be open at a time, so opening a new file with a filled
|
||||
buffer will close this buffer and in case the buffer has unsaved
|
||||
modifications will ask to either cancel the load, discard the
|
||||
changes or save them.
|
||||
|
||||
|
||||
Running LAMMPS
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
From within the LAMMPS GUI main window LAMMPS can be started either from
|
||||
the ``Run`` menu, by the hotkey `Ctrl-Enter` (`Command-Enter` on macOS),
|
||||
or by clicking on the green button in the status bar. LAMMPS runs in a
|
||||
separate thread, so the GUI stays responsive and thus it is able to
|
||||
interact with the calculation and access its data. It is important to
|
||||
note, that LAMMPS is using the contents of the input buffer for the run,
|
||||
**not** the file it was read from. If there are unsaved changes in the
|
||||
buffer, they *will* be used.
|
||||
|
||||
.. image:: JPG/lammps-gui-running.png
|
||||
:align: center
|
||||
:scale: 75%
|
||||
|
||||
While LAMMPS is running, the contents of the status bar change: on the
|
||||
left side there is a text indicating that LAMMPS is running, which will
|
||||
contain the selected number of threads, if thread-parallel acceleration
|
||||
was selected in the ``Preferences`` dialog. On the right side, a
|
||||
progress bar is shown that displays the estimated progress on the
|
||||
current :doc:`run command <run>`. Additionally, two windows will open:
|
||||
the log window with the captured screen output and the chart window with
|
||||
a line graph created from the thermodynamic output of the run.
|
||||
|
||||
The run can be stopped cleanly by using either the ``Stop LAMMPS`` entry
|
||||
in the ``Run`` menu, the hotkey `Ctrl-/` (`Command-/` on macOS), or
|
||||
clicking on the red button in the status bar. This will cause that the
|
||||
running LAMMPS process will complete the current iteration and then
|
||||
stop. This is equivalent to the command :doc:`timer timeout 0 <timer>`
|
||||
and implemented by calling the :cpp:func:`lammps_force_timeout()`
|
||||
function of the LAMMPS C-library interface.
|
||||
|
||||
|
||||
Viewing Snapshot Images
|
||||
^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
By selecting the ``View Image`` entry in the ``Run`` menu, by hitting
|
||||
the `Ctrl-I` (`Command-I` on macOS) hotkey or by clicking on the
|
||||
"palette" button in the status bar, LAMMPS GUI will issue a
|
||||
:doc:`write_dump image <dump_image>` command and read the resulting
|
||||
snapshot image into an image viewer window. When possible, LAMMPS
|
||||
GUI will try to detect which elements the atoms correspond to (via
|
||||
their mass) and then colorize them accordingly. Otherwise just some
|
||||
predefined sequence of colors are assigned to different atom types.
|
||||
|
||||
.. image:: JPG/lammps-gui-image.png
|
||||
:align: center
|
||||
:scale: 50%
|
||||
|
||||
The default image size, some default image quality settings, the view
|
||||
style and some colors can be changed in the ``Preferences`` dialog
|
||||
window. From the image viewer window further adjustments can be made:
|
||||
actual image size, high-quality rendering, anti-aliasing, view style,
|
||||
display of box or axes, zoom factor. The the image can be rotated
|
||||
horizontally and vertically and it is possible to only display the atoms
|
||||
within a predefined group (default is "all"). After each change, the
|
||||
image is rendered again and the display updated. The small palette icon
|
||||
on the top left will be colored while LAMMPS is running to render the
|
||||
image and it will be grayed out again, when it is done. When there are
|
||||
many items to show and high quality images with anti-aliasing are
|
||||
requested, re-rendering can take several seconds. From the ``File``
|
||||
menu, the shown image can be saved to a file permanently or copied into
|
||||
the cut-n-paste buffer for pasting into another application.
|
||||
|
||||
|
||||
Editor Functions
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
The editor has most the usual functionality that similar programs have:
|
||||
text selection via mouse or with cursor moves while holding the Shift
|
||||
key, Cut, Copy, Paste, Undo, Redo. All of these editing functions are
|
||||
available via hotkeys. When trying to exit the editor with a modified
|
||||
buffer, a dialog will pop up asking whether to cancel the quit, or don't
|
||||
save or save the buffer's contents to a file.
|
||||
|
||||
Context Specific Help
|
||||
^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. image:: JPG/lammps-gui-popup-help.png
|
||||
:align: center
|
||||
:scale: 50%
|
||||
|
||||
A unique feature of the LAMMPS GUI is the option to look up the
|
||||
documentation for the command in the current line. This can be achieved
|
||||
by either clicking the right mouse button or by using the `Ctrl-?`
|
||||
hotkey. When clicking the mouse there are additional entries in the
|
||||
context menu that will open the corresponding documentation page in the
|
||||
online LAMMPS documentation. When using the hotkey, the first of those
|
||||
entries will be chosen directly.
|
||||
|
||||
Menu
|
||||
----
|
||||
|
||||
The menu bar the entries ``File``, ``Edit``, ``Run``, ``View``, and ``About``.
|
||||
Instead of using the mouse to click on them, the individual menus can also
|
||||
be activated by hitting the `Alt` key together with the corresponding underlined
|
||||
letter, that is `Alt-f` will activate the ``File`` menu. For the corresponding
|
||||
activated sub-menus, also the underlined letter, together with the `Alt` key can
|
||||
be used to select instead of the mouse.
|
||||
|
||||
File
|
||||
^^^^
|
||||
|
||||
The ``File`` menu offers the usual options:
|
||||
|
||||
- ``New`` will clear the current buffer and reset the file name to ``*unknown*``
|
||||
- ``Open`` will open a dialog to select a new file
|
||||
- ``Save`` will save the current file; if the file name is ``*unknown*``
|
||||
a dialog will open to select a new file name
|
||||
- ``Save As`` will open a dialog to select and new file name and save
|
||||
the buffer to it
|
||||
- ``Quit`` will exit LAMMPS GUI. If there are unsaved changes, a dialog
|
||||
will appear to either cancel the quit, save or don't save the file.
|
||||
|
||||
In addition, up to 5 recent file names will be listed after the ``Open``
|
||||
entry that allows to re-open recent files. This list is stored when
|
||||
quitting and recovered when starting again.
|
||||
|
||||
Edit
|
||||
^^^^
|
||||
|
||||
The ``Edit`` menu offers the usual editor functions like ``Undo``,
|
||||
``Redo``, ``Cut``, ``Copy``, ``Paste``, but also offers to open the
|
||||
``Preferences`` dialog and to delete all stored preferences so they
|
||||
will be reset to their defaults.
|
||||
|
||||
Run
|
||||
^^^
|
||||
|
||||
The ``Run`` menu allows to start and stop a LAMMPS process. Rather than
|
||||
calling the LAMMPS executable as a separate executable, the LAMMPS GUI
|
||||
is linked to the LAMMPS library and thus can run LAMMPS internally
|
||||
through the :ref:`LAMMPS C-library interface <lammps_c_api>`.
|
||||
Specifically, a LAMMPS instance will be created by calling
|
||||
:cpp:func:`lammps_open_no_mpi` and then the buffer contents run by
|
||||
calling :cpp:func:`lammps_commands_string`. Certain commands and
|
||||
features are only available, after a LAMMPS instance is created. Its
|
||||
presence is indicated by a small LAMMPS ``L`` logo in the status bar at
|
||||
the bottom left of the main window.
|
||||
|
||||
The LAMMPS calculation will be run in a concurrent thread so that the
|
||||
GUI will stay responsive and will be updated during the run. This can
|
||||
be used to tell the running LAMMPS instance to stop at the next
|
||||
timestep. The ``Stop LAMMPS`` entry will do this by calling
|
||||
:cpp:func:`lammps_force_timeout`, which is equivalent to a :doc:`timer
|
||||
timeout 0 <timer>` command.
|
||||
|
||||
The ``Set Variables`` entry will open a dialog box where :doc:`index style variables <variable>`
|
||||
can be set. Those variables will be passed to the LAMMPS instance when
|
||||
it is created and are thus set *before* a run is started.
|
||||
|
||||
.. image:: JPG/lammps-gui-variables.png
|
||||
:align: center
|
||||
:scale: 75%
|
||||
|
||||
The ``Set Variables`` dialog will be pre-populated with entries that are
|
||||
set as index variables in the input and any variables that are used but
|
||||
not defined as far as the built-in parser can detect them. New rows for
|
||||
additional variables can be added through the ``Add Row`` button and
|
||||
existing rows deleted by clicking on the ``X`` icons on the right.
|
||||
|
||||
The ``View Image`` entry will send a :doc:`dump image <dump_image>`
|
||||
command to the LAMMPS instance, read the resulting file, and show it in
|
||||
an ``Image Viewer`` window.
|
||||
|
||||
The ``View in OVITO`` entry will launch `OVITO <https://ovito.org>`_
|
||||
with a :doc:`data file <write_data>` of the current state of the system.
|
||||
This option is only available, if the LAMMPS GUI can find the OVITO
|
||||
executable in the system path.
|
||||
|
||||
The ``View in VMD`` entry will instead launch VMD, also to load a
|
||||
:doc:`data file <write_data>` of the current state of the system. This
|
||||
option is only available, if the LAMMPS GUI can find the VMD executable
|
||||
in the system path.
|
||||
|
||||
View
|
||||
^^^^
|
||||
|
||||
The ``View`` menu offers to show or hide the three optional windows
|
||||
with log output, graphs, or images. The default settings for those
|
||||
can be changed in the ``Preferences dialog``.
|
||||
|
||||
About
|
||||
^^^^^
|
||||
|
||||
The ``About`` menu finally offers a couple of dialog windows and an
|
||||
option to launch the LAMMPS online documentation in a web browser. The
|
||||
``About LAMMPS GUI`` entry displays a dialog with a summary of the
|
||||
configuration settings of the LAMMPS library in use and the version
|
||||
number of LAMMPS GUI itself. The ``Quick Help`` displays a dialog with
|
||||
a minimal description of LAMMPS GUI. And ``LAMMPS Manual`` will open
|
||||
the main page of this LAMMPS documentation at https://docs.lammps.org/.
|
||||
|
||||
Preferences
|
||||
-----------
|
||||
|
||||
The ``Preferences`` dialog allows to customize some of the behavior
|
||||
and looks of the LAMMPS GUI application. The settings are grouped
|
||||
and each group is displayed within a tab.
|
||||
|
||||
.. |guiprefs1| image:: JPG/lammps-gui-prefs-general.png
|
||||
:width: 25%
|
||||
|
||||
.. |guiprefs2| image:: JPG/lammps-gui-prefs-accel.png
|
||||
:width: 25%
|
||||
|
||||
.. |guiprefs3| image:: JPG/lammps-gui-prefs-image.png
|
||||
:width: 25%
|
||||
|
||||
|guiprefs1| |guiprefs2| |guiprefs3|
|
||||
|
||||
General Settings:
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
- *Echo input to log:* when checked, all input commands, including
|
||||
variable expansions, will be echoed to the log window. This is
|
||||
equivalent to using `-echo screen` at the command line. There is no
|
||||
log *file* produced since it always uses `-log none`.
|
||||
- *Include citation details:* when checked full citation info will be
|
||||
included to the log window. This is equivalent to using `-cite
|
||||
screen` on the command line.
|
||||
- *Show log window by default:* when checked, the screen output of a
|
||||
LAMMPS run will be collected in a log window during the run
|
||||
- *Show chart window by default:* when checked, the thermodynamic
|
||||
output of a LAMMPS run will be collected and displayed in a chart
|
||||
window as line graphs.
|
||||
- *Replace log window on new run:* when checked, an existing log
|
||||
window will be replaced on a new LAMMPS run, otherwise each run will
|
||||
create a new log window.
|
||||
- *Replace chart window on new run:* when checked, an existing chart
|
||||
window will be replaced on a new LAMMPS run, otherwise each run will
|
||||
create a new chart window.
|
||||
- *Replace image window on new render:* when checked, an existing
|
||||
chart window will be replaced when a new snapshot image is requested,
|
||||
otherwise each command will create a new image window.
|
||||
- *Path to LAMMPS Shared Library File:* this options is only available
|
||||
when LAMMPS GUI was compiled to load the LAMMPS library at run time
|
||||
instead of being linked to it directly. With the ``Browse..`` button
|
||||
or by changing the text, a different shared library file with a
|
||||
different compilation of LAMMPS with different settings or from a
|
||||
different version can be loaded. After this setting was changed,
|
||||
LAMMPS GUI needs to be re-launched.
|
||||
- *Select Default Font:* Opens a font selection dialog where the type
|
||||
and size for the default font (used for everything but the editor and
|
||||
log) of the application can be set.
|
||||
- *Select Text Font:* Opens a font selection dialog where the type and
|
||||
size for the text editor and log font of the application can be set.
|
||||
|
||||
Accelerators:
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
This tab enables to select which accelerator package is used and is
|
||||
equivalent to using the `-suffix` and `-package` flags on the command
|
||||
line. Only settings supported by the LAMMPS library and local hardware
|
||||
are available. The `Number of threads` field allows to set the maximum
|
||||
number of threads for the accelerator packages that use threads.
|
||||
|
||||
Snapshot Image:
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
This tab allows to set some defaults for the snapshot images displayed
|
||||
in the ``Image Viewer`` window, like its dimensions and the zoom factor
|
||||
applied. The *Antialias* switch requests to render images with twice
|
||||
the number of pixels for width and height and then smoothly scales the
|
||||
image back to the requested size. This produces higher quality images
|
||||
with smoother edges at the expense of requiring more CPU time to render
|
||||
the image. The *HQ Image mode* option turns on using a screen space
|
||||
ambient occlusion mode (SSAO) when rendering images. This is also more
|
||||
time consuming, but produces a more 'spatial' representation of the
|
||||
system. The *VDW Style* checkbox selects whether atoms are represented
|
||||
by space filling spheres when checked or by smaller spheres and stick.
|
||||
Finally there are a couple of drop down lists to select the background
|
||||
and box color.
|
||||
|
||||
|
||||
Hotkeys
|
||||
-------
|
||||
|
||||
Almost all functionality is accessible from the menu or via hotkeys.
|
||||
The following hotkeys are available (On macOS use the Command key
|
||||
instead of Ctrl/Control).
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: auto
|
||||
|
||||
* - Hotkey
|
||||
- Function
|
||||
- Hotkey
|
||||
- Function
|
||||
- Hotkey
|
||||
- Function
|
||||
- Hotkey
|
||||
- Function
|
||||
* - Ctrl+N
|
||||
- New File
|
||||
- Ctrl+Z
|
||||
- Undo edit
|
||||
- Ctrl+Enter
|
||||
- Run LAMMPS
|
||||
- Ctrl+Shift+A
|
||||
- About LAMMPS GUI
|
||||
* - Ctrl+O
|
||||
- Open File
|
||||
- Ctrl+Shift+Z
|
||||
- Redo edit
|
||||
- Ctrl+/
|
||||
- Stop Active Run
|
||||
- Ctrl+Shift+H
|
||||
- Quick Help
|
||||
* - CTRL+S
|
||||
- Save File
|
||||
- Ctrl+C
|
||||
- Copy text
|
||||
- Ctrl+Shift+V
|
||||
- Set Variables
|
||||
- Ctrl+Shift+G
|
||||
- LAMMPS GUI Howto
|
||||
* - Ctrl+Shift+S
|
||||
- Save File As
|
||||
- Ctrl+X
|
||||
- Cut text
|
||||
- Ctrl+I
|
||||
- Create Snapshot Image
|
||||
- Ctrl+Shift+M
|
||||
- LAMMPS Manual
|
||||
* - Ctrl+Q
|
||||
- Quit
|
||||
- Ctrl+V
|
||||
- Paste text
|
||||
- Ctrl+P
|
||||
- Preferences
|
||||
- Ctrl+?
|
||||
- Context Help
|
||||
|
||||
Further editing keybindings `are documented with the Qt documentation
|
||||
<https://doc.qt.io/qt-5/qplaintextedit.html#editing-key-bindings>`_. In
|
||||
case of conflicts the list above takes precedence.
|
||||
@ -53,10 +53,10 @@ System-wide Installation
|
||||
Step 1: Building LAMMPS as a shared library
|
||||
"""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
To use LAMMPS inside of Python it has to be compiled as shared library. This
|
||||
library is then loaded by the Python interface. In this example we enable the
|
||||
MOLECULE package and compile LAMMPS with C++ exceptions, PNG, JPEG and FFMPEG
|
||||
output support enabled.
|
||||
To use LAMMPS inside of Python it has to be compiled as shared
|
||||
library. This library is then loaded by the Python interface. In this
|
||||
example we enable the MOLECULE package and compile LAMMPS with PNG, JPEG
|
||||
and FFMPEG output support enabled.
|
||||
|
||||
Step 1a: For the CMake based build system, the steps are:
|
||||
|
||||
@ -66,7 +66,7 @@ Step 1a: For the CMake based build system, the steps are:
|
||||
cd $LAMMPS_DIR/build-shared
|
||||
|
||||
# MPI, PNG, Jpeg, FFMPEG are auto-detected
|
||||
cmake ../cmake -DPKG_MOLECULE=yes -DLAMMPS_EXCEPTIONS=yes -DBUILD_LIB=yes -DBUILD_SHARED_LIBS=yes
|
||||
cmake ../cmake -DPKG_MOLECULE=yes -DBUILD_LIB=yes -DBUILD_SHARED_LIBS=yes
|
||||
make
|
||||
|
||||
Step 1b: For the legacy, make based build system, the steps are:
|
||||
@ -79,7 +79,7 @@ Step 1b: For the legacy, make based build system, the steps are:
|
||||
make yes-MOLECULE
|
||||
|
||||
# compile shared library using Makefile
|
||||
make mpi mode=shlib LMP_INC="-DLAMMPS_PNG -DLAMMPS_JPEG -DLAMMPS_FFMPEG -DLAMMPS_EXCEPTIONS" JPG_LIB="-lpng -ljpeg"
|
||||
make mpi mode=shlib LMP_INC="-DLAMMPS_PNG -DLAMMPS_JPEG -DLAMMPS_FFMPEG" JPG_LIB="-lpng -ljpeg"
|
||||
|
||||
Step 2: Installing the LAMMPS Python package
|
||||
""""""""""""""""""""""""""""""""""""""""""""
|
||||
@ -356,18 +356,16 @@ Together with matplotlib plotting data out of LAMMPS becomes simple:
|
||||
Error handling with PyLammps
|
||||
----------------------------
|
||||
|
||||
Compiling the shared library with C++ exception support provides a better error
|
||||
handling experience. Without exceptions the LAMMPS code will terminate the
|
||||
current Python process with an error message. C++ exceptions allow capturing
|
||||
them on the C++ side and rethrowing them on the Python side. This way you
|
||||
can handle LAMMPS errors through the Python exception handling mechanism.
|
||||
Using C++ exceptions in LAMMPS for errors allows capturing them on the
|
||||
C++ side and rethrowing them on the Python side. This way you can handle
|
||||
LAMMPS errors through the Python exception handling mechanism.
|
||||
|
||||
.. warning::
|
||||
|
||||
Capturing a LAMMPS exception in Python can still mean that the
|
||||
current LAMMPS process is in an illegal state and must be terminated. It is
|
||||
advised to save your data and terminate the Python instance as quickly as
|
||||
possible.
|
||||
current LAMMPS process is in an illegal state and must be
|
||||
terminated. It is advised to save your data and terminate the Python
|
||||
instance as quickly as possible.
|
||||
|
||||
Using PyLammps in IPython notebooks and Jupyter
|
||||
-----------------------------------------------
|
||||
|
||||
@ -5,7 +5,7 @@ LAMMPS can be downloaded, built, and configured for macOS with `Homebrew
|
||||
<homebrew_>`_. (Alternatively, see the installation instructions for
|
||||
:doc:`downloading an executable via Conda <Install_conda>`.) The
|
||||
following LAMMPS packages are unavailable at this time because of
|
||||
additional requirements not yet met: GPU, KOKKOS, MSCG, MPIIO, POEMS,
|
||||
additional requirements not yet met: GPU, KOKKOS, MSCG, POEMS,
|
||||
VORONOI.
|
||||
|
||||
After installing Homebrew, you can install LAMMPS on your system with
|
||||
|
||||
@ -18,11 +18,10 @@ needed to run in parallel with MPI.
|
||||
|
||||
The LAMMPS binaries contain *all* :doc:`optional packages <Packages>`
|
||||
included in the source distribution except: ADIOS, H5MD, KIM, ML-PACE,
|
||||
ML-QUIP, MSCG, NETCDF, PLUMED, QMMM, SCAFACOS, and VTK. The serial
|
||||
version also does not include the MPIIO and LATBOLTZ packages. The
|
||||
PYTHON package is only available in the Python installers that bundle a
|
||||
Python runtime. The GPU package is compiled for OpenCL with mixed
|
||||
precision kernels.
|
||||
ML-QUIP, MSCG, NETCDF, QMMM, SCAFACOS, and VTK. The serial version also
|
||||
does not include the LATBOLTZ package. The PYTHON package is only
|
||||
available in the Python installers that bundle a Python runtime. The
|
||||
GPU package is compiled for OpenCL with mixed precision kernels.
|
||||
|
||||
The LAMMPS library is compiled as a shared library and the
|
||||
:doc:`LAMMPS Python module <Python_module>` is installed, so that
|
||||
|
||||
@ -12,7 +12,7 @@ Programming language standards
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Most of the C++ code currently requires a compiler compatible with the
|
||||
C++11 standard, the KOKKOS package currently requires C++14. Most of
|
||||
C++11 standard, the KOKKOS package currently requires C++17. Most of
|
||||
the Python code is written to be compatible with Python 3.5 or later or
|
||||
Python 2.7. Some Python scripts *require* Python 3 and a few others
|
||||
still need to be ported from Python 2 to Python 3.
|
||||
@ -25,7 +25,7 @@ LAMMPS can be compiled from source code using a (traditional) build
|
||||
system based on shell scripts, a few shell utilities (grep, sed, cat,
|
||||
tr) and the GNU make program. This requires running within a Bourne
|
||||
shell (``/bin/sh``). Alternatively, a build system with different back ends
|
||||
can be created using CMake. CMake must be at least version 3.10.
|
||||
can be created using CMake. CMake must be at least version 3.16.
|
||||
|
||||
Operating systems
|
||||
^^^^^^^^^^^^^^^^^
|
||||
@ -62,9 +62,9 @@ regularly tested.
|
||||
Portability compliance
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Only a subset of the LAMMPS source code is fully compliant to all of the
|
||||
above mentioned standards. This is rather typical for projects like
|
||||
LAMMPS that largely depend on contributions from the user community.
|
||||
Only a subset of the LAMMPS source code is *fully* compliant to *all*
|
||||
of the above mentioned standards. This is rather typical for projects
|
||||
like LAMMPS that largely depend on contributions from the user community.
|
||||
Not all contributors are trained as programmers and not all of them have
|
||||
access to multiple platforms for testing. As part of the continuous
|
||||
integration process, however, all contributions are automatically tested
|
||||
|
||||
BIN
doc/src/JPG/image.both.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
doc/src/JPG/image.default.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
doc/src/JPG/image.fsaa.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
doc/src/JPG/image.ssao.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
doc/src/JPG/lammps-gui-chart.png
Normal file
|
After Width: | Height: | Size: 73 KiB |
BIN
doc/src/JPG/lammps-gui-image.png
Normal file
|
After Width: | Height: | Size: 123 KiB |
BIN
doc/src/JPG/lammps-gui-log.png
Normal file
|
After Width: | Height: | Size: 185 KiB |
BIN
doc/src/JPG/lammps-gui-main.png
Normal file
|
After Width: | Height: | Size: 91 KiB |
BIN
doc/src/JPG/lammps-gui-popup-help.png
Normal file
|
After Width: | Height: | Size: 119 KiB |
BIN
doc/src/JPG/lammps-gui-prefs-accel.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
doc/src/JPG/lammps-gui-prefs-general.png
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
doc/src/JPG/lammps-gui-prefs-image.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
doc/src/JPG/lammps-gui-running.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
doc/src/JPG/lammps-gui-variables.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
@ -28,20 +28,34 @@ Include files (varied)
|
||||
packages and hard-to-find bugs have regularly manifested in the
|
||||
past.
|
||||
|
||||
- Header files, especially those defining a "style", should only use
|
||||
the absolute minimum number of include files and **must not**
|
||||
contain any ``using`` statements. Typically, that would only be the
|
||||
header for the base class. Instead, any include statements should
|
||||
be put in the corresponding implementation files and forward
|
||||
declarations be used. For implementation files, the "include what
|
||||
you use" principle should be employed. However, there is the
|
||||
notable exception that when the ``pointers.h`` header is included
|
||||
(or one of the base classes derived from it) certain headers will
|
||||
always be included and thus do not need to be explicitly specified.
|
||||
These are: `mpi.h`, `cstddef`, `cstdio`, `cstdlib`, `string`,
|
||||
`utils.h`, `vector`, `fmt/format.h`, `climits`, `cinttypes`. This
|
||||
also means any such file can assume that `FILE`, `NULL`, and
|
||||
`INT_MAX` are defined.
|
||||
- Header files, especially those defining a "style", should only use the
|
||||
absolute minimum number of include files and **must not** contain any
|
||||
``using`` statements. Typically, that would only be the header for the
|
||||
base class. Instead, any include statements should be put in the
|
||||
corresponding implementation files and forward declarations be used.
|
||||
For implementation files, the "include what you use" principle should
|
||||
be employed. However, there is the notable exception that when the
|
||||
``pointers.h`` header is included (or the header of one of the classes
|
||||
derived from it), certain headers will *always* be included and thus
|
||||
do not need to be explicitly specified. These are: `mpi.h`,
|
||||
`cstddef`, `cstdio`, `cstdlib`, `string`, `utils.h`, `vector`,
|
||||
`fmt/format.h`, `climits`, `cinttypes`. This also means any such file
|
||||
can assume that `FILE`, `NULL`, and `INT_MAX` are defined.
|
||||
|
||||
- Class members variables should not be initialized in the header file,
|
||||
but instead should be initialized either in the initializer list of
|
||||
the constructor or explicitly assigned in the body of the constructor.
|
||||
If the member variable is relevant to the functionality of a class
|
||||
(for example when it stores a value from a command line argument), the
|
||||
member variable declaration is followed by a brief comment explaining
|
||||
its purpose and what its values can be. Class members that are
|
||||
pointers should always be initialized to ``nullptr`` in the
|
||||
initializer list of the constructor. This reduces clutter in the
|
||||
header and avoids accessing uninitialized pointers, which leads to
|
||||
hard to debug issues, class members are often implicitly initialized
|
||||
to ``NULL`` on the first use (but *not* after a :doc:`clear command
|
||||
<clear>`). Please see the files ``reset_atoms_mol.h`` and
|
||||
``reset_atoms_mol.cpp`` as an example.
|
||||
|
||||
- System headers or headers from installed libraries are included with
|
||||
angular brackets (example: ``#include <vector>``), while local
|
||||
|
||||
@ -87,8 +87,6 @@ page gives those details.
|
||||
* :ref:`MOFFF <PKG-MOFFF>`
|
||||
* :ref:`MOLECULE <PKG-MOLECULE>`
|
||||
* :ref:`MOLFILE <PKG-MOLFILE>`
|
||||
* :ref:`MPIIO <PKG-MPIIO>`
|
||||
* :ref:`MSCG <PKG-MSCG>`
|
||||
* :ref:`NETCDF <PKG-NETCDF>`
|
||||
* :ref:`OPENMP <PKG-OPENMP>`
|
||||
* :ref:`OPT <PKG-OPT>`
|
||||
@ -1257,7 +1255,7 @@ Also see the :ref:`GPU <PKG-GPU>`, :ref:`OPT <PKG-OPT>`, :ref:`INTEL
|
||||
<PKG-INTEL>`, and :ref:`OPENMP <PKG-OPENMP>` packages, which have styles
|
||||
optimized for CPUs, KNLs, and GPUs.
|
||||
|
||||
You must have a C++14 compatible compiler to use this package.
|
||||
You must have a C++17 compatible compiler to use this package.
|
||||
KOKKOS makes extensive use of advanced C++ features, which can
|
||||
expose compiler bugs, especially when compiling for maximum
|
||||
performance at high optimization levels. Please see the file
|
||||
@ -2034,70 +2032,6 @@ This package has :ref:`specific installation instructions <molfile>` on the :doc
|
||||
|
||||
----------
|
||||
|
||||
.. _PKG-MPIIO:
|
||||
|
||||
MPIIO package
|
||||
-------------
|
||||
|
||||
**Contents:**
|
||||
|
||||
Support for parallel output/input of dump and restart files via the
|
||||
MPIIO library. It adds :doc:`dump styles <dump>` with a "mpiio" in
|
||||
their style name. Restart files with an ".mpiio" suffix are also
|
||||
written and read in parallel.
|
||||
|
||||
.. warning::
|
||||
|
||||
The MPIIO package is currently unmaintained and has become
|
||||
unreliable. Use with caution.
|
||||
|
||||
|
||||
**Install:**
|
||||
|
||||
The MPIIO package requires that LAMMPS is build in :ref:`MPI parallel mode <serial>`.
|
||||
|
||||
**Supporting info:**
|
||||
|
||||
* src/MPIIO: filenames -> commands
|
||||
* :doc:`dump <dump>`
|
||||
* :doc:`restart <restart>`
|
||||
* :doc:`write_restart <write_restart>`
|
||||
* :doc:`read_restart <read_restart>`
|
||||
|
||||
----------
|
||||
|
||||
.. _PKG-MSCG:
|
||||
|
||||
MSCG package
|
||||
------------
|
||||
|
||||
**Contents:**
|
||||
|
||||
A :doc:`fix mscg <fix_mscg>` command which can parameterize a
|
||||
Multi-Scale Coarse-Graining (MSCG) model using the open-source `MS-CG library <mscg-home_>`_.
|
||||
|
||||
.. _mscg-home: https://github.com/uchicago-voth/MSCG-release
|
||||
|
||||
To use this package you must have the MS-CG library available on your
|
||||
system.
|
||||
|
||||
**Authors:** The fix was written by Lauren Abbott (Sandia). The MS-CG
|
||||
library was developed by Jacob Wagner in Greg Voth's group at the
|
||||
University of Chicago.
|
||||
|
||||
**Install:**
|
||||
|
||||
This package has :ref:`specific installation instructions <mscg>` on the :doc:`Build extras <Build_extras>` page.
|
||||
|
||||
**Supporting info:**
|
||||
|
||||
* src/MSCG: filenames -> commands
|
||||
* src/MSCG/README
|
||||
* lib/mscg/README
|
||||
* examples/mscg
|
||||
|
||||
----------
|
||||
|
||||
.. _PKG-NETCDF:
|
||||
|
||||
NETCDF package
|
||||
|
||||
@ -333,16 +333,6 @@ whether an extra library is needed to build and use the package:
|
||||
- :doc:`dump molfile <dump_molfile>`
|
||||
- n/a
|
||||
- ext
|
||||
* - :ref:`MPIIO <PKG-MPIIO>`
|
||||
- MPI parallel I/O dump and restart
|
||||
- :doc:`dump <dump>`
|
||||
- n/a
|
||||
- no
|
||||
* - :ref:`MSCG <PKG-MSCG>`
|
||||
- multi-scale coarse-graining wrapper
|
||||
- :doc:`fix mscg <fix_mscg>`
|
||||
- mscg
|
||||
- ext
|
||||
* - :ref:`NETCDF <PKG-NETCDF>`
|
||||
- dump output via NetCDF
|
||||
- :doc:`dump netcdf <dump_netcdf>`
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
Handling LAMMPS errors
|
||||
*******************************
|
||||
**********************
|
||||
|
||||
Compiling the shared library with :ref:`C++ exception support <exceptions>` provides a better error
|
||||
handling experience. Without exceptions the LAMMPS code will terminate the
|
||||
current Python process with an error message. C++ exceptions allow capturing
|
||||
them on the C++ side and rethrowing them on the Python side. This way
|
||||
LAMMPS errors can be handled through the Python exception handling mechanism.
|
||||
The shared library is compiled with :ref:`C++ exception support
|
||||
<exceptions>` to provide a better error handling experience. C++
|
||||
exceptions allow capturing errors on the C++ side and rethrowing them on
|
||||
the Python side. This way LAMMPS errors can be handled through the
|
||||
Python exception handling mechanism.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
@ -31,6 +31,6 @@ LAMMPS errors can be handled through the Python exception handling mechanism.
|
||||
.. warning::
|
||||
|
||||
Capturing a LAMMPS exception in Python can still mean that the
|
||||
current LAMMPS process is in an illegal state and must be terminated. It is
|
||||
advised to save your data and terminate the Python instance as quickly as
|
||||
possible.
|
||||
current LAMMPS process is in an illegal state and must be
|
||||
terminated. It is advised to save your data and terminate the Python
|
||||
instance as quickly as possible when running in parallel with MPI.
|
||||
|
||||
@ -18,7 +18,7 @@ package was developed primarily by Christian Trott (Sandia) and Stan
|
||||
Moore (Sandia) with contributions of various styles by others,
|
||||
including Sikandar Mashayak (UIUC), Ray Shan (Sandia), and Dan Ibanez
|
||||
(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
|
||||
task). These are Serial (MPI-only for CPUs and Intel Phi), OpenMP
|
||||
@ -26,23 +26,30 @@ task). These are Serial (MPI-only for CPUs and Intel Phi), OpenMP
|
||||
GPUs) and HIP (for AMD GPUs). You choose the mode at build time to
|
||||
produce an executable compatible with a specific hardware.
|
||||
|
||||
.. admonition:: C++14 support
|
||||
.. admonition:: C++17 support
|
||||
:class: note
|
||||
|
||||
Kokkos requires using a compiler that supports the c++14 standard. For
|
||||
some compilers, it may be necessary to add a flag to enable c++14 support.
|
||||
For example, the GNU compiler uses the -std=c++14 flag. For a list of
|
||||
compilers that have been tested with the Kokkos library, see the Kokkos
|
||||
`README <https://github.com/kokkos/kokkos/blob/master/README.md>`_.
|
||||
Kokkos requires using a compiler that supports the c++17 standard. For
|
||||
some compilers, it may be necessary to add a flag to enable c++17 support.
|
||||
For example, the GNU compiler uses the -std=c++17 flag. For a list of
|
||||
compilers that have been tested with the Kokkos library, see the
|
||||
`requirements document of the Kokkos Wiki
|
||||
<https://kokkos.github.io/kokkos-core-wiki/requirements.html>`_.
|
||||
|
||||
.. admonition:: NVIDIA CUDA support
|
||||
:class: note
|
||||
|
||||
To build with Kokkos support for NVIDIA GPUs, the NVIDIA CUDA toolkit
|
||||
software version 9.0 or later must be installed on your system. See
|
||||
software version 11.0 or later must be installed on your system. See
|
||||
the discussion for the :doc:`GPU package <Speed_gpu>` for details of
|
||||
how to check and do this.
|
||||
|
||||
.. admonition:: AMD ROCm (HIP) support
|
||||
:class: note
|
||||
|
||||
To build with Kokkos support for AMD GPUs, the AMD ROCm toolkit
|
||||
software version 5.2.0 or later must be installed on your system.
|
||||
|
||||
.. admonition:: CUDA and MPI library compatibility
|
||||
:class: note
|
||||
|
||||
|
||||
@ -93,6 +93,7 @@ Miscellaneous tools
|
||||
* :ref:`i-pi <ipi>`
|
||||
* :ref:`kate <kate>`
|
||||
* :ref:`LAMMPS shell <lammps_shell>`
|
||||
* :ref:`LAMMPS GUI <lammps_gui>`
|
||||
* :ref:`LAMMPS magic patterns for file(1) <magic>`
|
||||
* :ref:`Offline build tool <offline>`
|
||||
* :ref:`singularity/apptainer <singularity_tool>`
|
||||
@ -634,6 +635,195 @@ you first need to use the :doc:`clear` command.
|
||||
|
||||
----------
|
||||
|
||||
.. _lammps_gui:
|
||||
|
||||
LAMMPS GUI
|
||||
----------
|
||||
|
||||
.. versionadded:: 2Aug2023
|
||||
|
||||
Overview
|
||||
^^^^^^^^
|
||||
|
||||
LAMMPS GUI is a simple graphical text editor that is linked to the
|
||||
:ref:`LAMMPS C-library interface <lammps_c_api>` and thus can run LAMMPS
|
||||
directly using the contents of the editor's text buffer as input.
|
||||
|
||||
This is similar to what people traditionally would do to run LAMMPS:
|
||||
using a regular text editor to edit the input and run the necessary
|
||||
commands, possibly including the text editor, too, from a command line
|
||||
terminal window. This similarity is a design goal. While making it easy
|
||||
for beginners to start with LAMMPS, it is also the intention to simplify
|
||||
the transition to workflows like most experienced LAMMPS users do.
|
||||
|
||||
All features have been extensively exposed to hotkeys, so that there is
|
||||
also appeal for experienced LAMMPS users, too, especially for
|
||||
prototyping and testing simulations setups.
|
||||
|
||||
Features
|
||||
^^^^^^^^
|
||||
|
||||
A detailed discussion and explanation of all features and functionality
|
||||
are in the :doc:`Howto_lammps_gui` tutorial Howto page.
|
||||
|
||||
Here are a few highlights of LAMMPS GUI
|
||||
|
||||
- Text editor with syntax highlighting customized for LAMMPS
|
||||
- Text editor will switch working directory to folder of file in buffer
|
||||
- Text editor will remember up to 5 recent files
|
||||
- Context specific LAMMPS command help via online documentation
|
||||
- LAMMPS is running in a concurrent thread, so the GUI remains responsive
|
||||
- Support for accelerator packages
|
||||
- Progress bar indicates that LAMMPS is running
|
||||
- LAMMPS can be started and stopped with a hotkey
|
||||
- Screen output is captured in a Log Window
|
||||
- Thermodynamic output is captured and displayed as line graph in a Chart Window
|
||||
- Visualization of current state in Image Viewer (via :doc:`dump image <dump_image>`)
|
||||
- Many adjustable settings and preferences that are persistent
|
||||
- Dialog to set variables from the LAMMPS command line
|
||||
|
||||
Parallelization
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
Due to its nature as a graphical application, it is not possible to use
|
||||
the LAMMPS GUI in parallel with MPI, but OpenMP multi-threading and GPU
|
||||
acceleration is available and enabled by default.
|
||||
|
||||
Prerequisites and portability
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
LAMMPS GUI is programmed in C++ based on the C++11 standard and using
|
||||
the `Qt GUI framework <https://www.qt.io/product/framework>`_.
|
||||
Currently, Qt version 5.12 or later is required; Qt 5.15LTS is
|
||||
recommended; Qt 6.x not (yet) supported. Building LAMMPS with CMake is
|
||||
required. The LAMMPS GUI has been successfully compiled and tested on:
|
||||
|
||||
- Ubuntu Linux 20.04LTS x86_64 using GCC 9, Qt version 5.12
|
||||
- Fedora Linux 38 x86\_64 using GCC 13 and Clang 16, Qt version 5.15LTS
|
||||
- Apple macOS 12 (Monterey) and macOS 13 (Ventura) with Xcode on arm64 and x86\_64, Qt version 5.15LTS
|
||||
- Windows 10 and 11 x86_64 with Visual Studio 2022 and Visual C++ 14.36, Qt version 5.15LTS
|
||||
- Windows 10 and 11 x86_64 with MinGW / GCC 10.0 cross-compiler on Fedora 38, Qt version 5.15LTS
|
||||
|
||||
Pre-compiled executables
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Pre-compiled LAMMPS executables including the GUI are currently
|
||||
available from https://download.lammps.org/static or
|
||||
https://github.com/lammps/lammps/releases. You can unpack the archives
|
||||
(or mount the macOS disk image) and run the GUI directly in place. The
|
||||
folder may also be moved around and added to the ``PATH`` environment
|
||||
variable so the executables will be found automatically. The LAMMPS GUI
|
||||
executable is called ``lammps-gui`` and either takes no arguments or
|
||||
attempts to load the first argument as LAMMPS input file.
|
||||
|
||||
Compilation
|
||||
^^^^^^^^^^^
|
||||
|
||||
The source for the LAMMPS GUI is included with the LAMMPS source code
|
||||
distribution in the folder ``tools/lammps-gui`` and thus it can be can
|
||||
be built as part of a regular LAMMPS compilation. :doc:`Using CMake
|
||||
<Howto_cmake>` is required. To enable its compilation, the CMake
|
||||
variable ``-D BUILD_LAMMPS_GUI=on`` must be set when creating the CMake
|
||||
configuration. All other settings (compiler, flags, compile type) for
|
||||
LAMMPS GUI are then inherited from the regular LAMMPS build. If the Qt
|
||||
library is packaged for Linux distributions, then its location is
|
||||
typically auto-detected since the required CMake configuration files are
|
||||
stored in a location where CMake can find them without additional help.
|
||||
Otherwise, the location of the Qt library installation must be indicated
|
||||
by setting ``-D Qt5_DIR=/path/to/qt5/lib/cmake/Qt5``, which is a path to
|
||||
a folder inside the Qt installation that contains the file
|
||||
``Qt5Config.cmake``.
|
||||
|
||||
It should be possible to build the LAMMPS GUI as a standalone
|
||||
compilation (e.g. when LAMMPS has been compiled with traditional make),
|
||||
then the CMake configuration needs to be told where to find the LAMMPS
|
||||
headers and the LAMMPS library, via ``-D
|
||||
LAMMPS_SOURCE_DIR=/path/to/lammps/src``. CMake will try to guess a
|
||||
build folder with the LAMMPS library from that path, but it can also be
|
||||
set with ``-D LAMMPS_LIB_DIR=/path/to/lammps/lib``.
|
||||
|
||||
Rather than linking to the LAMMPS library during compilation, it is also
|
||||
possible to compile the GUI with a plugin loader library that will load
|
||||
the LAMMPS library dynamically at runtime during the start of the GUI
|
||||
from a shared library; e.g. ``liblammps.so`` or ``liblammps.dylib`` or
|
||||
``liblammps.dll`` (depending on the operating system). This has the
|
||||
advantage that the LAMMPS library can be updated LAMMPS without having
|
||||
to recompile the GUI. The ABI of the LAMMPS C-library interface is very
|
||||
stable and generally backward compatible. This feature is enabled by
|
||||
setting ``-D LAMMPS_GUI_USE_PLUGIN=on`` and then ``-D
|
||||
LAMMPS_PLUGINLIB_DIR=/path/to/lammps/plugin/loader``. Typically, this
|
||||
would be the ``examples/COUPLE/plugin`` folder of the LAMMPS
|
||||
distribution.
|
||||
|
||||
Platform notes
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
macOS
|
||||
"""""
|
||||
|
||||
When building on macOS, the build procedure will try to manufacture a
|
||||
drag-n-drop installer, LAMMPS-macOS-multiarch.dmg, when using the 'dmg'
|
||||
target (i.e. ``cmake --build <build dir> --target dmg`` or ``make dmg``.
|
||||
|
||||
To build multi-arch executables that will run on both, arm64 and x86_64
|
||||
architectures natively, it is necessary to set the CMake variable ``-D
|
||||
CMAKE_OSX_ARCHITECTURES=arm64;x86_64``. To achieve wide compatibility
|
||||
with different macOS versions, you can also set ``-D
|
||||
CMAKE_OSX_DEPLOYMENT_TARGET=11.0`` which will set compatibility to macOS
|
||||
11 (Big Sur) and later, even if you are compiling on a more recent macOS
|
||||
version.
|
||||
|
||||
Windows
|
||||
"""""""
|
||||
|
||||
On Windows either native compilation from within Visual Studio 2022 with
|
||||
Visual C++ is supported and tested, or compilation with the MinGW / GCC
|
||||
cross-compiler environment on Fedora Linux.
|
||||
|
||||
**Visual Studio**
|
||||
|
||||
Using CMake and Ninja as build system are required. Qt needs to be
|
||||
installed, tested was a binary package downloaded from
|
||||
https://www.qt.io, which installs into the ``C:\\Qt`` folder by default.
|
||||
There is a custom `x64-GUI-MSVC` build configuration provided in the
|
||||
``CMakeSettings.json`` file that Visual Studio uses to store different
|
||||
compilation settings for project. Choosing this configuration will
|
||||
activate building the `lammps-gui.exe` executable in addition to LAMMPS
|
||||
through importing package selection from the ``windows.cmake`` preset
|
||||
file and enabling building the LAMMPS GUI and disabling building with MPI.
|
||||
When requesting an installation from the `Build` menu in Visual Studio,
|
||||
it will create a compressed ``LAMMPS-Win10-amd64.zip`` zip file with the
|
||||
executables and required dependent .dll files. This zip file can be
|
||||
uncompressed and ``lammps-gui.exe`` run directly from there. The
|
||||
uncompressed folder can be added to the ``PATH`` environment and LAMMPS
|
||||
and LAMMPS GUI can be launched from anywhere from the command line.
|
||||
|
||||
**MinGW64 Cross-compiler**
|
||||
|
||||
The standard CMake build procedure can be applied and the
|
||||
``mingw-cross.cmake`` preset used. By using ``mingw64-cmake`` the CMake
|
||||
command will automatically include a suitable CMake toolset file (the
|
||||
regular cmake command can be used after that). After building the
|
||||
libraries and executables, you can build the target 'zip'
|
||||
(i.e. ``cmake --build <build dir> --target zip`` or ``make zip``
|
||||
to stage all installed files into a LAMMPS_GUI folder and then
|
||||
run a script to copy all required dependencies, some other files,
|
||||
and create a zip file from it.
|
||||
|
||||
Linux
|
||||
"""""
|
||||
|
||||
Version 5.12 or later of the Qt library is required. Those are provided
|
||||
by, e.g., Ubuntu 20.04LTS. Thus older Linux distributions are not
|
||||
likely to be supported, while more recent ones will work, even for
|
||||
pre-compiled executables (see above). After compiling with
|
||||
``cmake --build <build folder>``, use ``cmake --build <build
|
||||
folder> --target tgz`` or ``make tgz`` to build a
|
||||
``LAMMPS-Linux-amd64.tar.gz`` file with the executables and their
|
||||
support libraries.
|
||||
|
||||
----------
|
||||
|
||||
.. _arc:
|
||||
|
||||
lmp2arc tool
|
||||
|
||||
@ -245,6 +245,7 @@ The individual style names on the :doc:`Commands compute <Commands_compute>` pag
|
||||
* :doc:`ke/atom/eff <compute_ke_atom_eff>` - per-atom translational and radial kinetic energy in the electron force field model
|
||||
* :doc:`ke/eff <compute_ke_eff>` - kinetic energy of a group of nuclei and electrons in the electron force field model
|
||||
* :doc:`ke/rigid <compute_ke_rigid>` - translational kinetic energy of rigid bodies
|
||||
* :doc:`composition/atom <compute_composition_atom>` - local composition for each atom
|
||||
* :doc:`mliap <compute_mliap>` - gradients of energy and forces with respect to model parameters and related quantities for training machine learning interatomic potentials
|
||||
* :doc:`momentum <compute_momentum>` - translational momentum
|
||||
* :doc:`msd <compute_msd>` - mean-squared displacement of group of atoms
|
||||
|
||||
118
doc/src/compute_composition_atom.rst
Normal file
@ -0,0 +1,118 @@
|
||||
.. index:: compute composition/atom
|
||||
.. index:: compute composition/atom/kk
|
||||
|
||||
compute composition/atom command
|
||||
================================
|
||||
|
||||
Accelerator Variants: *composition/atom/kk*
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
compute ID group-ID composition/atom keyword values ...
|
||||
|
||||
* ID, group-ID are documented in :doc:`compute <compute>` command
|
||||
* composition/atom = style name of this compute command
|
||||
* one or more keyword/value pairs may be appended
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
keyword = *cutoff*
|
||||
*cutoff* value = distance cutoff
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
compute 1 all composition/atom
|
||||
|
||||
compute 1 all composition/atom cutoff 9.0
|
||||
comm_modify cutoff 9.0
|
||||
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
.. versionadded:: TBD
|
||||
|
||||
Define a computation that calculates a local composition vector for each
|
||||
atom. For a central atom with :math:`M` neighbors within the neighbor cutoff sphere,
|
||||
composition is defined as the number of atoms of a given type
|
||||
(including the central atom) divided by (:math:`M+1`). For a given central atom,
|
||||
the sum of all compositions equals one.
|
||||
|
||||
.. note::
|
||||
|
||||
This compute uses the number of atom types, not chemical species, assigned in
|
||||
:doc:`pair_coeff <pair_coeff>` command. If an interatomic potential has two
|
||||
species (i.e., Cu and Ni) assigned to four different atom types in
|
||||
:doc:`pair_coeff <pair_coeff>` (i.e., 'Cu Cu Ni Ni'), the compute will
|
||||
output four fractional values. In those cases, the user may desire an extra
|
||||
calculation step to consolidate per-type fractions into per-species fractions.
|
||||
This calculation can be conducted within LAMMPS using another compute such as
|
||||
:doc:`compute reduce <compute_reduce>`, an atom-style :doc:`variable`, or as a
|
||||
post-processing step.
|
||||
|
||||
----------
|
||||
|
||||
The optional keyword *cutoff* defines the distance cutoff used when
|
||||
searching for neighbors. The default value is the cutoff specified by
|
||||
the pair style. If no pair style is defined, then a cutoff must be
|
||||
defined using this keyword. If the specified cutoff is larger than
|
||||
that of the pair_style plus neighbor skin (or no pair style is
|
||||
defined), the *comm_modify cutoff* option must also be set to match
|
||||
that of the *cutoff* keyword.
|
||||
|
||||
The neighbor list needed to compute this quantity is constructed each
|
||||
time the calculation is performed (i.e. each time a snapshot of atoms
|
||||
is dumped). Thus it can be inefficient to compute/dump this quantity
|
||||
too frequently.
|
||||
|
||||
.. note::
|
||||
|
||||
If you have a bonded system, then the settings of
|
||||
:doc:`special_bonds <special_bonds>` command can remove pairwise
|
||||
interactions between atoms in the same bond, angle, or dihedral.
|
||||
This is the default setting for the :doc:`special_bonds
|
||||
<special_bonds>` command, and means those pairwise interactions do
|
||||
not appear in the neighbor list. Because this compute uses the
|
||||
neighbor list, it also means those pairs will not be included in
|
||||
the order parameter. This difficulty can be circumvented by
|
||||
writing a dump file, and using the :doc:`rerun <rerun>` command to
|
||||
compute the order parameter for snapshots in the dump file. The
|
||||
rerun script can use a :doc:`special_bonds <special_bonds>` command
|
||||
that includes all pairs in the neighbor list.
|
||||
|
||||
----------
|
||||
|
||||
Output info
|
||||
"""""""""""
|
||||
|
||||
This compute calculates a per-atom array with :math:`1 + N` columns, where :math:`N`
|
||||
is the number of atom types. The first column is a count of the number of atoms
|
||||
used to calculate composition (including the central atom), and each subsequent
|
||||
column indicates the fraction of that atom type within the cutoff sphere.
|
||||
|
||||
These values can be accessed by any command that uses per-atom values
|
||||
from a compute as input. See the :doc:`Howto output <Howto_output>`
|
||||
doc page for an overview of LAMMPS output options.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
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
|
||||
<Build_package>` page for more info.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`comm_modify <comm_modify>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
The option defaults are *cutoff* = pair style cutoff.
|
||||
@ -19,6 +19,7 @@ Syntax
|
||||
|
||||
attributes = id, ix, iy, iz, x, y, z, xs, ys, zs, xc, yc, zc, xsc, ysc, zsc
|
||||
id = ID of grid cell, x fastest, y next, z slowest
|
||||
proc = processor ID (0 to Nprocs-1) which owns the grid cell
|
||||
ix,iy,iz = grid indices in each dimension (1 to N inclusive)
|
||||
x,y,z = coords of lower left corner of grid cell
|
||||
xs,ys,zs = scaled coords of lower left corner of grid cell (0.0 to 1.0)
|
||||
@ -30,8 +31,8 @@ Examples
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
compute 1 all property/grid id ix iy iz
|
||||
compute 1 all property/grid id xc yc zc
|
||||
compute 1 all property/grid 10 10 20 id ix iy iz
|
||||
compute 1 all property/grid 100 100 1 id xc yc zc
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
@ -53,13 +54,20 @@ to output per-grid values from other computes of fixes, the grid size
|
||||
specified for this command must be consistent with the grid sizes
|
||||
used by the other commands.
|
||||
|
||||
The *id* attribute stores the grid ID for each grid cell. For a
|
||||
global grid of size Nx by Ny by Nz (in 3d simulations) the grid IDs
|
||||
range from 1 to Nx*Ny*Nz. They are ordered with the X index of the 3d
|
||||
grid varying fastest, then Y, then Z slowest. For 2d grids (in 2d
|
||||
The *id* attribute is the grid ID for each grid cell. For a global
|
||||
grid of size Nx by Ny by Nz (in 3d simulations) the grid IDs range
|
||||
from 1 to Nx*Ny*Nz. They are ordered with the X index of the 3d grid
|
||||
varying fastest, then Y, then Z slowest. For 2d grids (in 2d
|
||||
simulations), the grid IDs range from 1 to Nx*Ny, with X varying
|
||||
fastest and Y slowest.
|
||||
|
||||
.. versionadded:: TBD
|
||||
|
||||
The *proc* attribute is the ID of the processor which owns the grid
|
||||
cell. Processor IDs range from 0 to Nprocs - 1, where Nprocs is the
|
||||
number of processors the simulation is running on. Each grid cell is
|
||||
owned by a single processor.
|
||||
|
||||
The *ix*, *iy*, *iz* attributes are the indices of a grid cell in
|
||||
each dimension. They range from 1 to Nx inclusive in the X dimension,
|
||||
and similar for Y and Z.
|
||||
|
||||
@ -14,10 +14,6 @@
|
||||
.. index:: dump custom/gz
|
||||
.. index:: dump local/gz
|
||||
.. index:: dump xyz/gz
|
||||
.. index:: dump atom/mpiio
|
||||
.. index:: dump cfg/mpiio
|
||||
.. index:: dump custom/mpiio
|
||||
.. index:: dump xyz/mpiio
|
||||
.. index:: dump atom/zstd
|
||||
.. index:: dump cfg/zstd
|
||||
.. index:: dump custom/zstd
|
||||
@ -63,7 +59,7 @@ Syntax
|
||||
|
||||
* ID = user-assigned name for the dump
|
||||
* group-ID = ID of the group of atoms to be dumped
|
||||
* style = *atom* or *atom/adios* or *atom/gz* or *atom/zstd* or *atom/mpiio* or *cfg* or *cfg/gz* or *cfg/zstd* or *cfg/mpiio* or *cfg/uef* or *custom* or *custom/gz* or *custom/zstd* or *custom/mpiio* or *custom/adios* or *dcd* or *grid* or *grid/vtk* or *h5md* or *image* or *local* or *local/gz* or *local/zstd* or *molfile* or *movie* or *netcdf* or *netcdf/mpiio* or *vtk* or *xtc* or *xyz* or *xyz/gz* or *xyz/zstd* or *xyz/mpiio* or *yaml*
|
||||
* style = *atom* or *atom/adios* or *atom/gz* or *atom/zstd* or *cfg* or *cfg/gz* or *cfg/zstd* or *cfg/uef* or *custom* or *custom/gz* or *custom/zstd* or *custom/adios* or *dcd* or *grid* or *grid/vtk* or *h5md* or *image* or *local* or *local/gz* or *local/zstd* or *molfile* or *movie* or *netcdf* or *netcdf/mpiio* or *vtk* or *xtc* or *xyz* or *xyz/gz* or *xyz/zstd* or *yaml*
|
||||
* N = dump on timesteps which are multiples of N
|
||||
* file = name of file to write dump info to
|
||||
* attribute1,attribute2,... = list of attributes for a particular style
|
||||
@ -74,13 +70,11 @@ Syntax
|
||||
*atom/adios* attributes = none, discussed on :doc:`dump atom/adios <dump_adios>` page
|
||||
*atom/gz* attributes = none
|
||||
*atom/zstd* attributes = none
|
||||
*atom/mpiio* attributes = none
|
||||
*cfg* attributes = same as *custom* attributes, see below
|
||||
*cfg/gz* attributes = same as *custom* attributes, see below
|
||||
*cfg/zstd* attributes = same as *custom* attributes, see below
|
||||
*cfg/mpiio* attributes = same as *custom* attributes, see below
|
||||
*cfg/uef* attributes = same as *custom* attributes, discussed on :doc:`dump cfg/uef <dump_cfg_uef>` page
|
||||
*custom*, *custom/gz*, *custom/zstd*, *custom/mpiio* attributes = see below
|
||||
*custom*, *custom/gz*, *custom/zstd* attributes = see below
|
||||
*custom/adios* attributes = same as *custom* attributes, discussed on :doc:`dump custom/adios <dump_adios>` page
|
||||
*dcd* attributes = none
|
||||
*h5md* attributes = discussed on :doc:`dump h5md <dump_h5md>` page
|
||||
@ -97,10 +91,9 @@ Syntax
|
||||
*xyz* attributes = none
|
||||
*xyz/gz* attributes = none
|
||||
*xyz/zstd* attributes = none
|
||||
*xyz/mpiio* attributes = none
|
||||
*yaml* attributes = same as *custom* attributes, see below
|
||||
|
||||
* *custom* or *custom/gz* or *custom/zstd* or *custom/mpiio* or *cfg* or *cfg/gz* or *cfg/zstd* or *cfg/mpiio* or *cfg/uef* or *netcdf* or *netcdf/mpiio* or *yaml* attributes:
|
||||
* *custom* or *custom/gz* or *custom/zstd* or *cfg* or *cfg/gz* or *cfg/zstd* or *cfg/uef* or *netcdf* or *netcdf/mpiio* or *yaml* attributes:
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -179,11 +172,9 @@ Examples
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
dump myDump all atom 100 dump.lammpstrj
|
||||
dump myDump all atom/mpiio 100 dump.atom.mpiio
|
||||
dump myDump all atom/gz 100 dump.atom.gz
|
||||
dump myDump all atom/zstd 100 dump.atom.zst
|
||||
dump 2 subgroup atom 50 dump.run.bin
|
||||
dump 2 subgroup atom/mpiio 50 dump.run.mpiio.bin
|
||||
dump 4a all custom 100 dump.myforce.* id type x y vx fx
|
||||
dump 4a all custom 100 dump.myvel.lammpsbin id type x y z vx vy vz
|
||||
dump 4b flow custom 100 dump.%.myforce id type c_myF[3] v_ke
|
||||
@ -622,27 +613,10 @@ when running on large numbers of processors.
|
||||
Note that using the "\*" and "%" characters together can produce a
|
||||
large number of small dump files!
|
||||
|
||||
For styles that end with *mpiio* an ".mpiio" must appear somewhere in
|
||||
the specified filename. These styles write their dump file in
|
||||
parallel via the MPI-IO library, which is part of the MPI standard for
|
||||
versions 2.0 and above. Note these styles are identical in command
|
||||
syntax to the corresponding styles without "mpiio". Likewise, the
|
||||
dump files produced by these MPI-IO styles are identical in format to
|
||||
the files produced by their non-MPI-IO style counterparts. This means
|
||||
you can write a dump file using MPI-IO and use the :doc:`read_dump
|
||||
<read_dump>` command or perform other post-processing, just as if the
|
||||
dump file was not written using MPI-IO.
|
||||
.. deprecated:: TBD
|
||||
|
||||
Because MPI-IO dump files are one large file which all processors
|
||||
write to, you cannot use the "%" wildcard character described above in
|
||||
the filename. However you can use the ".bin" or ".lammpsbin" suffix
|
||||
described below. Again, this file will be written in parallel and
|
||||
have the same binary format as if it were written without MPI-IO.
|
||||
|
||||
.. warning::
|
||||
|
||||
The MPIIO package within LAMMPS is currently unmaintained and has
|
||||
become unreliable. Use with caution.
|
||||
The MPIIO package and the the corresponding "/mpiio" dump styles, except
|
||||
for the unrelated "netcdf/mpiio" style were removed from LAMMPS.
|
||||
|
||||
----------
|
||||
|
||||
@ -956,11 +930,6 @@ the COMPRESS package. They are only enabled if LAMMPS was built with
|
||||
that package. See the :doc:`Build package <Build_package>` page for
|
||||
more info.
|
||||
|
||||
The *atom/mpiio*, *cfg/mpiio*, *custom/mpiio*, and *xyz/mpiio* styles
|
||||
are part of the MPIIO package. They are only enabled if LAMMPS was
|
||||
built with that package. See the :doc:`Build package <Build_package>`
|
||||
page for more info.
|
||||
|
||||
The *xtc*, *dcd*, and *yaml* styles are part of the EXTRA-DUMP package.
|
||||
They are only enabled if LAMMPS was built with that package. See the
|
||||
:doc:`Build package <Build_package>` page for more info.
|
||||
@ -971,6 +940,7 @@ Related commands
|
||||
:doc:`dump atom/adios <dump_adios>`, :doc:`dump custom/adios <dump_adios>`,
|
||||
:doc:`dump cfg/uef <dump_cfg_uef>`, :doc:`dump h5md <dump_h5md>`,
|
||||
:doc:`dump image <dump_image>`, :doc:`dump molfile <dump_molfile>`,
|
||||
:doc:`dump netcdf <dump_netcdf>`, :doc:`dump netcdf/mpiio <dump_netcdf>`,
|
||||
:doc:`dump_modify <dump_modify>`, :doc:`undump <undump>`,
|
||||
:doc:`write_dump <write_dump>`
|
||||
|
||||
|
||||
@ -24,7 +24,7 @@ Syntax
|
||||
* color = atom attribute that determines color of each atom
|
||||
* diameter = atom attribute that determines size of each atom
|
||||
* zero or more keyword/value pairs may be appended
|
||||
* keyword = *atom* or *adiam* or *bond* or *grid* or *line* or *tri* or *body* or *fix* or *size* or *view* or *center* or *up* or *zoom* or *box* or *axes* or *subbox* or *shiny* or *ssao*
|
||||
* keyword = *atom* or *adiam* or *bond* or *grid* or *line* or *tri* or *body* or *fix* or *size* or *view* or *center* or *up* or *zoom* or *box* or *axes* or *subbox* or *shiny* or *fsaa* or *ssao*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -85,6 +85,8 @@ Syntax
|
||||
diam = diameter of subdomain lines as fraction of shortest box length
|
||||
*shiny* value = sfactor = shinyness of spheres and cylinders
|
||||
sfactor = shinyness of spheres and cylinders from 0.0 to 1.0
|
||||
*fsaa* arg = yes/no
|
||||
yes/no = do or do not apply anti-aliasing
|
||||
*ssao* value = shading seed dfactor = SSAO depth shading
|
||||
shading = *yes* or *no* = turn depth shading on/off
|
||||
seed = random # seed (positive integer)
|
||||
@ -227,7 +229,7 @@ details have to be looked up in the `FFmpeg documentation
|
||||
described below.
|
||||
|
||||
To write out JPEG and PNG format files, you must build LAMMPS with
|
||||
support for the corresponding JPEG or PNG library. To convert images
|
||||
support for the corresponding JPEG or PNG library. To convert images
|
||||
into movies, LAMMPS has to be compiled with the -DLAMMPS_FFMPEG
|
||||
flag. See the :doc:`Build settings <Build_settings>` page for
|
||||
details.
|
||||
@ -597,13 +599,47 @@ image will appear. The *sfactor* value must be a value 0.0 <=
|
||||
*sfactor* <= 1.0, where *sfactor* = 1 is a highly reflective surface
|
||||
and *sfactor* = 0 is a rough non-shiny surface.
|
||||
|
||||
The *ssao* keyword turns on/off a screen space ambient occlusion
|
||||
(SSAO) model for depth shading. If *yes* is set, then atoms further
|
||||
away from the viewer are darkened via a randomized process, which is
|
||||
perceived as depth. The calculation of this effect can increase the
|
||||
cost of computing the image by roughly 2x. The strength of the effect
|
||||
can be scaled by the *dfactor* parameter. If *no* is set, no depth
|
||||
shading is performed.
|
||||
.. versionadded:: TBD
|
||||
|
||||
The *fsaa* keyword can be used with the dump image command to improve
|
||||
the image quality by enabling full scene anti-aliasing. Internally the
|
||||
image is rendered at twice the width and height and then scaled down by
|
||||
computing the average of each 2x2 block of pixels to produce a single
|
||||
pixel in the final image at the original size. This produces images with
|
||||
smoother, less ragged edges. The application of this algorithm can
|
||||
increase the cost of computing the image by about 3x or more.
|
||||
|
||||
The *ssao* keyword turns on/off a screen space ambient occlusion (SSAO)
|
||||
model for depth shading. If *yes* is set, then atoms further away from
|
||||
the viewer are darkened via a randomized process, which is perceived as
|
||||
depth. The strength of the effect can be scaled by the *dfactor*
|
||||
parameter. If *no* is set, no depth shading is performed. The
|
||||
calculation of this effect can increase the cost of computing the image
|
||||
substantially by 5x or more, especially with larger images. When used
|
||||
in combination with the *fsaa* keyword the computational cost of depth
|
||||
shading is particularly large.
|
||||
|
||||
----------
|
||||
|
||||
Image Quality Settings
|
||||
""""""""""""""""""""""
|
||||
|
||||
The two keywords *fsaa* and *ssao* can be used to improve the image
|
||||
quality at the expense of additional computational cost to render the
|
||||
images. The images below show from left to right the same render with
|
||||
default settings, with *fsaa* added, with *ssao* added, and with both
|
||||
keywords added.
|
||||
|
||||
.. |imagequality1| image:: JPG/image.default.png
|
||||
:width: 24%
|
||||
.. |imagequality2| image:: JPG/image.fsaa.png
|
||||
:width: 24%
|
||||
.. |imagequality3| image:: JPG/image.ssao.png
|
||||
:width: 24%
|
||||
.. |imagequality4| image:: JPG/image.both.png
|
||||
:width: 24%
|
||||
|
||||
|imagequality1| |imagequality2| |imagequality3| |imagequality4|
|
||||
|
||||
----------
|
||||
|
||||
@ -1051,6 +1087,7 @@ The defaults for the dump_modify keywords specific to dump image and dump movie
|
||||
* boxcolor = yellow
|
||||
* color = 140 color names are pre-defined as listed below
|
||||
* framerate = 24
|
||||
* fsaa = no
|
||||
* gmap = min max cf 0.0 2 min blue max red
|
||||
|
||||
----------
|
||||
|
||||
@ -124,17 +124,6 @@ Description
|
||||
Modify the parameters of a previously defined dump command. Not all
|
||||
parameters are relevant to all dump styles.
|
||||
|
||||
As explained on the :doc:`dump <dump>` doc page, the *atom/mpiio*,
|
||||
*custom/mpiio*, and *xyz/mpiio* dump styles are identical in command
|
||||
syntax and in the format of the dump files they create, to the
|
||||
corresponding styles without "mpiio", except the single dump file they
|
||||
produce is written in parallel via the MPI-IO library. Thus if a
|
||||
dump_modify option below is valid for the *atom* style, it is also
|
||||
valid for the *atom/mpiio* style, and similarly for the other styles
|
||||
which allow for use of MPI-IO.
|
||||
|
||||
----------
|
||||
|
||||
Unless otherwise noted, the following keywords apply to all the
|
||||
various dump styles, including the :doc:`dump image <dump_image>` and
|
||||
:doc:`dump movie <dump_image>` styles.
|
||||
@ -181,19 +170,20 @@ extra buffering.
|
||||
.. versionadded:: 4May2022
|
||||
|
||||
The *colname* keyword can be used to change the default header keyword
|
||||
for dump styles: *atom*, *custom*, *cfg*, and *local* and their compressed,
|
||||
ADIOS, and MPIIO variants. The setting for *ID string* replaces the default
|
||||
text with the provided string. *ID* can be a positive integer when it
|
||||
represents the column number counting from the left, a negative integer
|
||||
when it represents the column number from the right (i.e. -1 is the last
|
||||
column/keyword), or a custom dump keyword (or compute, fix, property, or
|
||||
variable reference) and then it replaces the string for that specific
|
||||
keyword. For *atom* dump styles only the keywords "id", "type", "x",
|
||||
"y", "z", "ix", "iy", "iz" can be accessed via string regardless of
|
||||
whether scaled or unwrapped coordinates were enabled or disabled, and
|
||||
it always assumes 8 columns for indexing regardless of whether image
|
||||
flags are enabled or not. For dump style *cfg* only changes to the
|
||||
"auxiliary" keywords (6th or later keyword) will become visible.
|
||||
for dump styles: *atom*, *custom*, *cfg*, and *local* and their
|
||||
compressed, ADIOS variants. The setting for *ID string* replaces the
|
||||
default text with the provided string. *ID* can be a positive integer
|
||||
when it represents the column number counting from the left, a negative
|
||||
integer when it represents the column number from the right (i.e. -1 is
|
||||
the last column/keyword), or a custom dump keyword (or compute, fix,
|
||||
property, or variable reference) and then it replaces the string for
|
||||
that specific keyword. For *atom* dump styles only the keywords "id",
|
||||
"type", "x", "y", "z", "ix", "iy", "iz" can be accessed via string
|
||||
regardless of whether scaled or unwrapped coordinates were enabled or
|
||||
disabled, and it always assumes 8 columns for indexing regardless of
|
||||
whether image flags are enabled or not. For dump style *cfg* only
|
||||
changes to the "auxiliary" keywords (6th or later keyword) will become
|
||||
visible.
|
||||
|
||||
The *colname* keyword can be used multiple times. If multiple *colname*
|
||||
settings refer to the same keyword, the last setting has precedence. A
|
||||
@ -417,10 +407,10 @@ performed with dump style *xtc*\ .
|
||||
|
||||
----------
|
||||
|
||||
The *format* keyword can be used to change the default numeric format output
|
||||
by the text-based dump styles: *atom*, *local*, *custom*, *cfg*, and
|
||||
*xyz* styles, and their MPIIO variants. Only the *line* or *none*
|
||||
options can be used with the *atom* and *xyz* styles.
|
||||
The *format* keyword can be used to change the default numeric format
|
||||
output by the text-based dump styles: *atom*, *local*, *custom*, *cfg*,
|
||||
and *xyz* styles. Only the *line* or *none* options can be used with the
|
||||
*atom* and *xyz* styles.
|
||||
|
||||
All the specified format strings are C-style formats, such as used by
|
||||
the C/C++ printf() command. The *line* keyword takes a single
|
||||
|
||||
@ -268,7 +268,6 @@ accelerated styles exist.
|
||||
* :doc:`momentum <fix_momentum>` - zero the linear and/or angular momentum of a group of atoms
|
||||
* :doc:`momentum/chunk <fix_momentum>` - zero the linear and/or angular momentum of a chunk of atoms
|
||||
* :doc:`move <fix_move>` - move atoms in a prescribed fashion
|
||||
* :doc:`mscg <fix_mscg>` - apply MSCG method for force-matching to generate coarse grain models
|
||||
* :doc:`msst <fix_msst>` - multi-scale shock technique (MSST) integration
|
||||
* :doc:`mvv/dpd <fix_mvv_dpd>` - DPD using the modified velocity-Verlet integration algorithm
|
||||
* :doc:`mvv/edpd <fix_mvv_dpd>` - constant energy DPD using the modified velocity-Verlet algorithm
|
||||
|
||||
@ -1,141 +0,0 @@
|
||||
.. index:: fix mscg
|
||||
|
||||
fix mscg command
|
||||
================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix ID group-ID mscg N keyword args ...
|
||||
|
||||
* ID, group-ID are documented in :doc:`fix <fix>` command
|
||||
* mscg = style name of this fix command
|
||||
* N = envoke this fix every this many timesteps
|
||||
* zero or more keyword/value pairs may be appended
|
||||
* keyword = *range* or *name* or *max*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*range* arg = *on* or *off*
|
||||
*on* = range finding functionality is performed
|
||||
*off* = force matching functionality is performed
|
||||
*name* args = name1 ... nameN
|
||||
name1,...,nameN = string names for each atom type (1-Ntype)
|
||||
*max* args = maxb maxa maxd
|
||||
maxb,maxa,maxd = maximum bonds/angles/dihedrals per atom
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix 1 all mscg 1
|
||||
fix 1 all mscg 1 range name A B
|
||||
fix 1 all mscg 1 max 4 8 20
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
This fix applies the Multi-Scale Coarse-Graining (MSCG) method to
|
||||
snapshots from a dump file to generate potentials for coarse-grained
|
||||
simulations from all-atom simulations, using a force-matching technique
|
||||
(:ref:`Izvekov <Izvekov>`, :ref:`Noid <Noid>`).
|
||||
|
||||
It makes use of the MS-CG library, written and maintained by Greg Voth's
|
||||
group at the University of Chicago, which is freely available on their
|
||||
`MS-CG GitHub site <https://github.com/uchicago-voth/MSCG-release>`_.
|
||||
See instructions on obtaining and installing the MS-CG library in the
|
||||
src/MSCG/README file, which must be done before you build LAMMPS with
|
||||
this fix command and use the command in a LAMMPS input script.
|
||||
|
||||
An example script using this fix is provided the examples/mscg
|
||||
directory.
|
||||
|
||||
The general workflow for using LAMMPS in conjunction with the MS-CG
|
||||
library to create a coarse-grained model and run coarse-grained
|
||||
simulations is as follows:
|
||||
|
||||
1. Perform all-atom simulations on the system to be coarse grained.
|
||||
2. Generate a trajectory mapped to the coarse-grained model.
|
||||
3. Create input files for the MS-CG library.
|
||||
4. Run the range finder functionality of the MS-CG library.
|
||||
5. Run the force matching functionality of the MS-CG library.
|
||||
6. Check the results of the force matching.
|
||||
7. Run coarse-grained simulations using the new coarse-grained potentials.
|
||||
|
||||
This fix can perform the range finding and force matching steps 4 and 5
|
||||
of the above workflow when used in conjunction with the :doc:`rerun
|
||||
<rerun>` command. It does not perform steps 1-3 and 6-7.
|
||||
|
||||
Step 2 can be performed using a Python script (cgmap), which defines the
|
||||
coarse-grained model and converts a standard LAMMPS dump file for an
|
||||
all-atom simulation (step 1) into a LAMMPS dump file which has the
|
||||
positions of and forces on the coarse-grained beads. To use cgmap the
|
||||
following repositories need to be downloaded and installed.
|
||||
|
||||
#. The custom lammpsdata branch of mdtraj from https://github.com/hockyg/mdtraj/tree/lammpsdata
|
||||
#. The master branch of cgmap from https://github.com/uchicago-voth/cgmap
|
||||
|
||||
In step 3, an input file named "control.in" is needed by the MS-CG
|
||||
library which sets parameters for the range finding and force matching
|
||||
functionalities. See the examples/mscg/control.in file as an example.
|
||||
And see the documentation provided with the MS-CG library for more
|
||||
info on this file.
|
||||
|
||||
When this fix is used to perform steps 4 and 5, the MS-CG library also
|
||||
produces additional output files. The range finder functionality
|
||||
(step 4) outputs files defining pair and bonded interaction ranges. The
|
||||
force matching functionality (step 5) outputs tabulated force files for
|
||||
every interaction in the system. Other diagnostic files can also be
|
||||
output depending on the parameters in the MS-CG library input script.
|
||||
Again, see the documentation provided with the MS-CG library for more
|
||||
info.
|
||||
|
||||
----------
|
||||
|
||||
The *range* keyword specifies which MS-CG library functionality should
|
||||
be invoked. If *on*, the step 4 range finder functionality is invoked.
|
||||
*off*, the step 5 force matching functionality is invoked.
|
||||
|
||||
If the *name* keyword is used, string names are defined to associate
|
||||
with the integer atom types in LAMMPS. *Ntype* names must be provided,
|
||||
one for each atom type (1-Ntype).
|
||||
|
||||
The *max* keyword specifies the maximum number of bonds, angles, and
|
||||
dihedrals a bead can have in the coarse-grained model.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This fix is part of the MSCG package. It is only enabled if LAMMPS was
|
||||
built with that package. Building the MSCG package also requires
|
||||
external libraries. See the :doc:`Build_package` and :doc:`Build_extras`
|
||||
pages for more info.
|
||||
|
||||
Currently, the MS-CG library is not set up to run in parallel with MPI,
|
||||
so this fix can only be used in a serial LAMMPS build and run on a
|
||||
single processor.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
none
|
||||
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
The default keyword settings are range off, max 4 12 36.
|
||||
|
||||
----------
|
||||
|
||||
.. _Izvekov:
|
||||
|
||||
**(Izvekov)** Izvekov, Voth, J Chem Phys 123, 134105 (2005).
|
||||
|
||||
.. _Noid:
|
||||
|
||||
**(Noid)** Noid, Chu, Ayton, Krishna, Izvekov, Voth, Das, Andersen, J
|
||||
Chem Phys 128, 134105 (2008).
|
||||
@ -8,7 +8,7 @@ Syntax
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix ID group-ID vector Nevery value1 value2 ...
|
||||
fix ID group-ID vector Nevery value1 value2 ... keyword args ...
|
||||
|
||||
* ID, group-ID are documented in :doc:`fix <fix>` command
|
||||
* vector = style name of this fix command
|
||||
@ -25,6 +25,13 @@ Syntax
|
||||
v_name = value calculated by an equal-style variable with name
|
||||
v_name[I] = Ith component of vector-style variable with name
|
||||
|
||||
* zero or more keyword/args pairs may be appended
|
||||
* keyword = *nmax*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*nmax* length = set maximal length of vector to <length>
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
@ -32,21 +39,26 @@ Examples
|
||||
|
||||
fix 1 all vector 100 c_myTemp
|
||||
fix 1 all vector 5 c_myTemp v_integral
|
||||
fix 1 all vector 50 c_myTemp nmax 200
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
Use one or more global values as inputs every few timesteps, and
|
||||
simply store them. For a single specified value, the values are
|
||||
Use one or more global values as inputs every few timesteps, and simply
|
||||
store them as a sequence. For a single specified value, the values are
|
||||
stored as a global vector of growing length. For multiple specified
|
||||
values, they are stored as rows in a global array, whose number of
|
||||
rows is growing. The resulting vector or array can be used by other
|
||||
values, they are stored as rows in a global array, whose number of rows
|
||||
is growing. The resulting vector or array can be used by other
|
||||
:doc:`output commands <Howto_output>`.
|
||||
|
||||
The optional *nmax* keyword can be used to restrict the length of the
|
||||
vector to the given *length* value. Once the restricted vector is
|
||||
filled, the oldest entry will be discarded when a entry is added.
|
||||
|
||||
One way to to use this command is to accumulate a vector that is
|
||||
time-integrated using the :doc:`variable trap() <variable>` function.
|
||||
For example the velocity auto-correlation function (VACF) can be
|
||||
time-integrated, to yield a diffusion coefficient, as follows:
|
||||
numerically integrated using the :doc:`variable trap() <variable>`
|
||||
function. For example, the velocity auto-correlation function (VACF)
|
||||
can be integrated, to yield a diffusion coefficient, as follows:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
@ -77,6 +89,15 @@ The *Nevery* argument specifies on what timesteps the input values
|
||||
will be used in order to be stored. Only timesteps that are a
|
||||
multiple of *Nevery*, including timestep 0, will contribute values.
|
||||
|
||||
.. note::
|
||||
:class: warning
|
||||
|
||||
If *Nevery* is a small number and the simulation runs for many
|
||||
steps, the accumulated vector or array can become very large and
|
||||
thus consume a lot of memory. The implementation limit is about
|
||||
2 billion entries. Using the *nmax* keyword mentioned above can
|
||||
avoid that by limiting the size of the vector.
|
||||
|
||||
Note that if you perform multiple runs, using the "pre no" option of
|
||||
the :doc:`run <run>` command to avoid initialization on subsequent runs,
|
||||
then you need to use the *stop* keyword with the first :doc:`run <run>`
|
||||
@ -94,11 +115,12 @@ calculated by the compute is used.
|
||||
|
||||
Note that there is a :doc:`compute reduce <compute_reduce>` command
|
||||
which can sum per-atom quantities into a global scalar or vector which
|
||||
can thus be accessed by fix vector. Or it can be a compute defined
|
||||
not in your input script, but by :doc:`thermodynamic output <thermo_style>` or other fixes such as :doc:`fix nvt <fix_nh>`
|
||||
or :doc:`fix temp/rescale <fix_temp_rescale>`. See the doc pages for
|
||||
these commands which give the IDs of these computes. Users can also
|
||||
write code for their own compute styles and :doc:`add them to LAMMPS <Modify>`.
|
||||
can thus be accessed by fix vector. Or it can be a compute defined not
|
||||
in your input script, but by :doc:`thermodynamic output <thermo_style>`
|
||||
or other fixes such as :doc:`fix nvt <fix_nh>` or :doc:`fix temp/rescale
|
||||
<fix_temp_rescale>`. See the doc pages for these commands which give
|
||||
the IDs of these computes. Users can also write code for their own
|
||||
compute styles and :doc:`add them to LAMMPS <Modify>`.
|
||||
|
||||
If a value begins with "f\_", a fix ID must follow which has been
|
||||
previously defined in the input script. If no bracketed term is
|
||||
@ -108,7 +130,8 @@ calculated by the fix is used.
|
||||
|
||||
Note that some fixes only produce their values on certain timesteps,
|
||||
which must be compatible with *Nevery*, else an error will result.
|
||||
Users can also write code for their own fix styles and :doc:`add them to LAMMPS <Modify>`.
|
||||
Users can also write code for their own fix styles and :doc:`add them to
|
||||
LAMMPS <Modify>`.
|
||||
|
||||
If a value begins with "v\_", a variable name must follow which has
|
||||
been previously defined in the input script. An equal-style or
|
||||
@ -126,8 +149,9 @@ quantities to be stored by fix vector.
|
||||
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 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.
|
||||
|
||||
This fix produces a global vector or global array which can be
|
||||
accessed by various :doc:`output commands <Howto_output>`. The values
|
||||
@ -144,15 +168,15 @@ the vector are "intensive" or "extensive". If the fix produces an
|
||||
array, then all elements in the array must be the same, either
|
||||
"intensive" or "extensive". If a compute or fix provides the value
|
||||
stored, then the compute or fix determines whether the value is
|
||||
intensive or extensive; see the page for that compute or fix for
|
||||
further info. Values produced by a variable are treated as intensive.
|
||||
intensive or extensive; see the page for that compute or fix for further
|
||||
info. Values produced by a variable are treated as intensive.
|
||||
|
||||
This fix can allocate storage for stored values accumulated 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. If using the :doc:`run pre no <run>` command option,
|
||||
this is required to allow the fix to allocate sufficient storage for
|
||||
stored values.
|
||||
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. If using the :doc:`run pre no <run>` command option, this is
|
||||
required to allow the fix to allocate sufficient storage for stored
|
||||
values.
|
||||
|
||||
This fix is not invoked during :doc:`energy minimization <minimize>`.
|
||||
|
||||
@ -165,7 +189,10 @@ Related commands
|
||||
|
||||
:doc:`compute <compute>`, :doc:`variable <variable>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
Defaults
|
||||
""""""""
|
||||
|
||||
none
|
||||
The default value of *nmax* is deduced from the number of steps
|
||||
in a run (or multiple runs when using the *start* and *stop*
|
||||
keywords of the :doc:`run command <run>`) divided by the choice
|
||||
of *Nevery* plus 1.
|
||||
|
||||
@ -19,7 +19,6 @@ Examples
|
||||
|
||||
read_restart save.10000
|
||||
read_restart restart.*
|
||||
read_restart restart.*.mpiio
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
@ -120,22 +119,6 @@ different the number of processors in the current LAMMPS simulation.
|
||||
This can be a fast mode of input on parallel machines that support
|
||||
parallel I/O.
|
||||
|
||||
A restart file can also be read in parallel as one large binary file
|
||||
via the MPI-IO library, assuming it was also written with MPI-IO.
|
||||
MPI-IO is part of the MPI standard for versions 2.0 and above. Using
|
||||
MPI-IO requires two steps. First, build LAMMPS with its MPIIO package
|
||||
installed, e.g.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
make yes-mpiio # installs the MPIIO package
|
||||
make mpi # build LAMMPS for your platform
|
||||
|
||||
Second, use a restart filename which contains ".mpiio". Note that it
|
||||
does not have to end in ".mpiio", just contain those characters.
|
||||
Unlike MPI-IO dump files, a particular restart file must be both
|
||||
written and read using MPI-IO.
|
||||
|
||||
----------
|
||||
|
||||
Here is the list of information included in a restart file, which
|
||||
@ -268,8 +251,7 @@ information about these bonds is written to the restart file.
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
To write and read restart files in parallel with MPI-IO, the MPIIO
|
||||
package must be installed.
|
||||
none
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
@ -33,7 +33,6 @@ Examples
|
||||
|
||||
restart 0
|
||||
restart 1000 poly.restart
|
||||
restart 1000 poly.restart.mpiio
|
||||
restart 1000 restart.*.equil
|
||||
restart 10000 poly.%.1 poly.%.2 nfile 10
|
||||
restart v_mystep poly.restart
|
||||
@ -81,21 +80,6 @@ of output and subsequent input on parallel machines that support
|
||||
parallel I/O. The optional *fileper* and *nfile* keywords discussed
|
||||
below can alter the number of files written.
|
||||
|
||||
The restart file can also be written in parallel as one large binary
|
||||
file via the MPI-IO library, which is part of the MPI standard for
|
||||
versions 2.0 and above. Using MPI-IO requires two steps. First,
|
||||
build LAMMPS with its MPIIO package installed, e.g.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
make yes-mpiio # installs the MPIIO package
|
||||
make mpi # build LAMMPS for your platform
|
||||
|
||||
Second, use a restart filename which contains ".mpiio". Note that it
|
||||
does not have to end in ".mpiio", just contain those characters.
|
||||
Unlike MPI-IO dump files, a particular restart file must be both
|
||||
written and read using MPI-IO.
|
||||
|
||||
Restart files are written on timesteps that are a multiple of N but
|
||||
not on the first timestep of a run or minimization. You can use the
|
||||
:doc:`write_restart <write_restart>` command to write a restart file
|
||||
@ -104,15 +88,17 @@ timestep of a run unless it is a multiple of N. A restart file is
|
||||
written on the last timestep of a minimization if N > 0 and the
|
||||
minimization converges.
|
||||
|
||||
Instead of a numeric value, N can be specified as an :doc:`equal-style variable <variable>`, which should be specified as v_name, where
|
||||
name is the variable name. In this case, the variable is evaluated at
|
||||
the beginning of a run to determine the next timestep at which a
|
||||
restart file will be written out. On that timestep, the variable will
|
||||
be evaluated again to determine the next timestep, etc. Thus the
|
||||
variable should return timestep values. See the stagger() and
|
||||
logfreq() and stride() math functions for :doc:`equal-style variables <variable>`, as examples of useful functions to use in
|
||||
this context. Other similar math functions could easily be added as
|
||||
options for :doc:`equal-style variables <variable>`.
|
||||
Instead of a numeric value, N can be specified as an :doc:`equal-style
|
||||
variable <variable>`, which should be specified as v_name, where name is
|
||||
the variable name. In this case, the variable is evaluated at the
|
||||
beginning of a run to determine the next timestep at which a restart
|
||||
file will be written out. On that timestep, the variable will be
|
||||
evaluated again to determine the next timestep, etc. Thus the variable
|
||||
should return timestep values. See the stagger() and logfreq() and
|
||||
stride() math functions for :doc:`equal-style variables <variable>`, as
|
||||
examples of useful functions to use in this context. Other similar math
|
||||
functions could easily be added as options for :doc:`equal-style
|
||||
variables <variable>`.
|
||||
|
||||
For example, the following commands will write restart files
|
||||
every step from 1100 to 1200, and could be useful for debugging
|
||||
@ -170,8 +156,7 @@ next 3 processors and write it to a restart file.
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
To write and read restart files in parallel with MPI-IO, the MPIIO
|
||||
package must be installed.
|
||||
none
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
@ -27,7 +27,6 @@ Examples
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
write_restart restart.equil
|
||||
write_restart restart.equil.mpiio
|
||||
write_restart poly.%.* nfile 10
|
||||
|
||||
Description
|
||||
@ -53,32 +52,6 @@ output and subsequent input on parallel machines that support parallel
|
||||
I/O. The optional *fileper* and *nfile* keywords discussed below can
|
||||
alter the number of files written.
|
||||
|
||||
The restart file can also be written in parallel as one large binary
|
||||
file via the MPI-IO library, which is part of the MPI standard for
|
||||
versions 2.0 and above. Using MPI-IO requires two steps. First,
|
||||
build LAMMPS with its MPIIO package installed, e.g.
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. tab:: CMake build
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
cmake . -DPKG_MPIIO=on # enables the MPIIO package in the build folder
|
||||
cmake --build . # recompiles LAMMPS with the package code included
|
||||
|
||||
.. tab:: Traditional make
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
make yes-mpiio # installs the MPIIO package
|
||||
make mpi # build LAMMPS for your platform
|
||||
|
||||
Second, use a restart filename which contains ".mpiio". Note that it
|
||||
does not have to end in ".mpiio", just contain those characters.
|
||||
Unlike MPI-IO dump files, a particular restart file must be both
|
||||
written and read using MPI-IO.
|
||||
|
||||
Restart files can be read by a :doc:`read_restart <read_restart>`
|
||||
command to restart a simulation from a particular state. Because the
|
||||
file is binary (to enable exact restarts), it may not be readable on
|
||||
@ -128,9 +101,6 @@ before the restart file is written. This means that your system must
|
||||
be ready to perform a simulation before using this command (force
|
||||
fields setup, atom masses initialized, etc).
|
||||
|
||||
To write and read restart files in parallel with MPI-IO, the MPIIO
|
||||
package must be installed.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
Sphinx >= 5.3.0, <7.1.0
|
||||
Sphinx >= 5.3.0, <7.2.0
|
||||
sphinxcontrib-spelling
|
||||
sphinxcontrib-jquery
|
||||
git+https://github.com/akohlmey/sphinx-fortran@parallel-read
|
||||
|
||||
@ -1195,6 +1195,7 @@ Freitas
|
||||
Frenkel
|
||||
Friedrichs
|
||||
fs
|
||||
fsaa
|
||||
fsh
|
||||
fstyle
|
||||
fsw
|
||||
@ -1528,6 +1529,7 @@ inhomogeneous
|
||||
init
|
||||
initialdelay
|
||||
initialisms
|
||||
initializer
|
||||
initializations
|
||||
InitiatorIDs
|
||||
initio
|
||||
@ -2228,6 +2230,7 @@ monolayer
|
||||
monopole
|
||||
monovalent
|
||||
Montalenti
|
||||
Monterey
|
||||
Montero
|
||||
Monti
|
||||
Mora
|
||||
@ -3488,6 +3491,7 @@ supercell
|
||||
superset
|
||||
supersphere
|
||||
Supinski
|
||||
Sur
|
||||
Surblys
|
||||
surfactant
|
||||
surfactants
|
||||
@ -3619,6 +3623,7 @@ Tk
|
||||
Tkin
|
||||
tloop
|
||||
tlsph
|
||||
tm
|
||||
tmax
|
||||
Tmax
|
||||
tmd
|
||||
@ -3635,6 +3640,7 @@ tokyo
|
||||
tol
|
||||
tomic
|
||||
toolchain
|
||||
toolset
|
||||
topologies
|
||||
Toporov
|
||||
Torder
|
||||
@ -3833,6 +3839,7 @@ vectorized
|
||||
Vegt
|
||||
vel
|
||||
Velázquez
|
||||
Ventura
|
||||
venv
|
||||
Verlag
|
||||
verlet
|
||||
@ -4090,6 +4097,7 @@ zmq
|
||||
zN
|
||||
zs
|
||||
zsc
|
||||
Zsh
|
||||
zst
|
||||
Zstandard
|
||||
zstd
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
|
||||
units lj
|
||||
atom_style tri
|
||||
atom_modify first big
|
||||
atom_modify first big map yes
|
||||
|
||||
read_data data.tri.srd
|
||||
|
||||
@ -52,12 +52,12 @@ pair_coeff 1 2 0.0 1.0 0.0
|
||||
|
||||
timestep 0.001
|
||||
|
||||
fix 1 big rigid molecule #langevin 1.0 1.0 0.1 12398
|
||||
fix 2 small srd 20 big 1.0 0.25 49894 &
|
||||
fix 1 big rigid/small molecule #langevin 1.0 1.0 0.1 12398
|
||||
fix 2 small srd 20 big 1.0 1.0 49894 &
|
||||
search 0.2 cubic warn 0.0001 shift yes 49829 &
|
||||
overlap yes collision noslip
|
||||
overlap yes collision noslip inside ignore
|
||||
|
||||
fix 3 all deform 1 x scale 0.6 y scale 0.6 z scale 0.6
|
||||
fix 3 all deform 1 x scale 0.8 y scale 0.8 z scale 0.8
|
||||
|
||||
# diagnostics
|
||||
|
||||
@ -73,8 +73,8 @@ compute 2 all ke
|
||||
compute 3 all pe
|
||||
variable toteng equal (c_1+c_2+c_3)/atoms
|
||||
|
||||
thermo 1000
|
||||
thermo_style custom step f_1 c_tsmall f_2[9] temp press
|
||||
thermo 100
|
||||
thermo_style custom step f_1 c_tsmall temp press f_2[9] f_2[4]
|
||||
thermo_modify temp tbig
|
||||
|
||||
compute 10 all property/atom corner1x corner1y corner1z &
|
||||
@ -93,9 +93,9 @@ unfix 3
|
||||
|
||||
change_box all triclinic
|
||||
|
||||
fix 2 small srd 20 big 1.0 0.25 49894 &
|
||||
fix 2 small srd 20 big 1.0 1.0 49894 &
|
||||
search 0.2 cubic warn 0.0001 shift yes 49829 &
|
||||
overlap yes collision noslip tstat yes
|
||||
overlap yes collision noslip tstat yes inside ignore
|
||||
|
||||
#dump 1 all custom 500 dump2.atom.srd id type x y z ix iy iz
|
||||
#dump 2 all custom 500 dump2.tri.srd id type &
|
||||
|
||||
812
examples/ASPHERE/tri/log.15Aug23.tri.srd.g++.8
Normal file
@ -0,0 +1,812 @@
|
||||
LAMMPS (2 Aug 2023 - Development - patch_2Aug2023-114-gdad8081d55-modified)
|
||||
WARNING: Using I/O redirection is unreliable with parallel runs. Better to use the -in switch to read input files. (../lammps.cpp:537)
|
||||
# Aspherical shear demo - 3d triangle boxes, solvated by SRD particles
|
||||
|
||||
units lj
|
||||
atom_style tri
|
||||
atom_modify first big map yes
|
||||
|
||||
read_data data.tri.srd
|
||||
Reading data file ...
|
||||
orthogonal box = (-8.4373405 -8.4373405 -8.4373405) to (8.4373405 8.4373405 8.4373405)
|
||||
2 by 2 by 2 MPI processor grid
|
||||
reading atoms ...
|
||||
1500 atoms
|
||||
1500 triangles
|
||||
read_data CPU = 0.007 seconds
|
||||
|
||||
# add small particles as hi density lattice
|
||||
|
||||
lattice sc 0.4
|
||||
Lattice spacing in x,y,z = 1.3572088 1.3572088 1.3572088
|
||||
region box block INF INF INF INF INF INF
|
||||
lattice sc 20.0
|
||||
Lattice spacing in x,y,z = 0.36840315 0.36840315 0.36840315
|
||||
create_atoms 2 region box
|
||||
Created 91125 atoms
|
||||
using lattice units in orthogonal box = (-8.4373405 -8.4373405 -8.4373405) to (8.4373405 8.4373405 8.4373405)
|
||||
create_atoms CPU = 0.002 seconds
|
||||
|
||||
group big type 1
|
||||
1500 atoms in group big
|
||||
group small type 2
|
||||
91125 atoms in group small
|
||||
set group small mass 0.01
|
||||
Setting atom values ...
|
||||
91125 settings made for mass
|
||||
|
||||
# delete overlaps
|
||||
# must set 1-2 cutoff to non-zero value
|
||||
|
||||
pair_style lj/cut 1.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
|
||||
|
||||
delete_atoms overlap 1.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 = 1.8
|
||||
ghost atom cutoff = 1.8
|
||||
binsize = 0.9, bins = 19 19 19
|
||||
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/3d
|
||||
bin: standard
|
||||
(2) pair lj/cut, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/atomonly/newton
|
||||
stencil: half/bin/3d
|
||||
bin: standard
|
||||
WARNING: Delete_atoms cutoff > minimum neighbor cutoff (../delete_atoms.cpp:312)
|
||||
Deleted 76354 atoms, new total = 16271
|
||||
|
||||
# SRD run
|
||||
|
||||
reset_timestep 0
|
||||
|
||||
velocity small create 1.44 87287 loop geom
|
||||
|
||||
neighbor 0.3 multi
|
||||
neigh_modify delay 0 every 1 check yes
|
||||
neigh_modify exclude molecule/intra big include big
|
||||
|
||||
comm_modify mode multi group big vel yes
|
||||
neigh_modify include big
|
||||
|
||||
# no pairwise interactions with small particles
|
||||
|
||||
pair_style tri/lj 3.5
|
||||
pair_coeff 1 1 0.1 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/small molecule #langevin 1.0 1.0 0.1 12398
|
||||
create bodies CPU = 0.000 seconds
|
||||
125 rigid bodies with 1500 atoms
|
||||
1.8601881 = max distance from body owner to body atom
|
||||
fix 2 small srd 20 big 1.0 1.0 49894 search 0.2 cubic warn 0.0001 shift yes 49829 overlap yes collision noslip inside ignore
|
||||
|
||||
fix 3 all deform 1 x scale 0.8 y scale 0.8 z scale 0.8
|
||||
|
||||
# diagnostics
|
||||
|
||||
compute tsmall small temp/deform
|
||||
compute tbig big temp
|
||||
variable pebig equal pe*atoms/count(big)
|
||||
variable ebig equal etotal*atoms/count(big)
|
||||
|
||||
compute_modify tbig extra/dof -4500
|
||||
|
||||
compute 1 big erotate/asphere
|
||||
compute 2 all ke
|
||||
compute 3 all pe
|
||||
variable toteng equal (c_1+c_2+c_3)/atoms
|
||||
|
||||
thermo 100
|
||||
thermo_style custom step f_1 c_tsmall temp press f_2[9] f_2[4]
|
||||
thermo_modify temp tbig
|
||||
WARNING: Temperature for thermo pressure is not for group all (../thermo.cpp:527)
|
||||
|
||||
compute 10 all property/atom corner1x corner1y corner1z corner2x corner2y corner2z corner3x corner3y corner3z
|
||||
|
||||
#dump 1 all custom 500 dump1.atom.srd id type x y z ix iy iz
|
||||
#dump 2 all custom 500 dump1.tri.srd id type # c_10[1] c_10[2] c_10[3] c_10[4] c_10[5] c_10[6] # c_10[7] c_10[8] c_10[9]
|
||||
|
||||
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
|
||||
WARNING: Using compute temp/deform with inconsistent fix deform remap option (../compute_temp_deform.cpp:71)
|
||||
WARNING: Using fix srd with box deformation but no SRD thermostat (../fix_srd.cpp:405)
|
||||
SRD info:
|
||||
SRD/big particles = 14771 1500
|
||||
big particle diameter max/min = 2.9202881 0.87320391
|
||||
SRD temperature & lamda = 1 0.2
|
||||
SRD max distance & max velocity = 0.8 40
|
||||
SRD grid counts: 17 17 17
|
||||
SRD grid size: request, actual (xyz) = 1, 0.99262829 0.99262829 0.99262829
|
||||
SRD per actual grid cell = -3.9971745
|
||||
SRD viscosity = -34.162587
|
||||
big/SRD mass density ratio = -3.3753691
|
||||
WARNING: SRD bin size for fix srd differs from user request (../fix_srd.cpp:2805)
|
||||
WARNING: Fix srd grid size > 1/4 of big particle diameter (../fix_srd.cpp:2826)
|
||||
WARNING: Fix srd viscosity < 0.0 due to low SRD density (../fix_srd.cpp:2828)
|
||||
# of rescaled SRD velocities = 0
|
||||
ave/max small velocity = 19.970837 35.150443
|
||||
ave/max big velocity = 0 0
|
||||
Neighbor list info ...
|
||||
update: every = 1 steps, delay = 0 steps, check = yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 3.8
|
||||
ghost atom cutoff = 3.8
|
||||
binsize = 16.874681, bins = 1 1 1
|
||||
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||
(1) pair tri/lj, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/multi/newton
|
||||
stencil: half/multi/3d
|
||||
bin: multi
|
||||
Per MPI rank memory allocation (min/avg/max) = 125.9 | 126.4 | 126.7 Mbytes
|
||||
Step f_1 c_tsmall Temp Press f_2[9] f_2[4]
|
||||
0 0 1.4401779 0 -0.15917996 0 0
|
||||
100 0.36662911 1.1475389 0.24585067 1.0290503 1.1382325 18
|
||||
200 0.73133134 1.0558153 0.49986673 0.73932383 1.049638 34
|
||||
300 1.1229361 1.0218621 0.82641583 0.7589689 1.0205369 40
|
||||
400 1.5826262 0.99541508 1.2201293 0.69171726 0.99190857 52
|
||||
500 1.8834563 0.99351667 1.4778822 1.0147794 1.0005581 63
|
||||
600 2.4225372 0.98954834 1.8740966 1.1362893 0.99760042 61
|
||||
700 3.0172772 0.99153625 2.3351502 1.3284877 0.98731355 39
|
||||
800 3.5307913 1.0012521 2.6477224 1.1404922 0.9846605 52
|
||||
900 3.757064 0.99743944 2.7220653 1.4078087 0.97538456 55
|
||||
1000 4.3165268 1.002214 3.055501 1.2252972 0.99123745 63
|
||||
1100 4.2796945 1.0075233 3.1022956 1.1893685 1.0139864 69
|
||||
1200 4.3719315 1.0037271 3.0054509 1.3886162 1.002661 64
|
||||
1300 4.5628012 0.99368316 3.2690604 1.3621012 0.9810568 56
|
||||
1400 4.6954389 0.99365088 3.1940001 1.8485712 0.99571089 71
|
||||
1500 5.0270163 0.99455258 3.4120396 1.5992539 0.98294263 77
|
||||
1600 5.5897797 1.0021621 3.647347 1.7796904 0.98967622 66
|
||||
1700 5.5330194 1.0130853 3.6407996 1.8005429 1.0068955 62
|
||||
1800 5.3606928 1.0090284 3.5863618 1.3308757 1.0214092 59
|
||||
1900 5.6086195 1.0071865 3.7427101 1.5296314 0.99886937 55
|
||||
2000 5.3726474 1.0064207 3.603621 1.9473142 0.99999816 54
|
||||
2100 5.836183 1.0124553 3.7321841 1.7889397 1.0188986 59
|
||||
2200 5.5090061 1.0113832 3.5884963 1.6617781 1.0071583 59
|
||||
2300 5.4011211 1.0095947 3.520406 1.8937582 0.99689983 61
|
||||
2400 5.2219281 1.0053246 3.3699458 1.7231672 0.99899754 59
|
||||
2500 5.7695275 1.0141459 3.6211469 1.7767598 1.0143133 65
|
||||
2600 5.4206253 1.0182828 3.521774 2.0800518 1.0081603 70
|
||||
2700 5.1401099 1.0085209 3.4200563 2.4019836 1.0107652 59
|
||||
2800 6.5420721 1.0159876 4.1996904 1.863842 1.0160738 61
|
||||
2900 5.9082962 1.0106921 3.7223419 2.0586998 1.0073885 67
|
||||
3000 5.6556123 1.0099021 3.6768976 1.921987 1.0068962 76
|
||||
3100 5.2913762 1.0008567 3.4103831 1.9831969 0.99187526 80
|
||||
3200 5.1032361 0.99756662 3.1967156 2.2448433 0.99743574 93
|
||||
3300 5.2622386 1.0024934 3.3325614 2.0078097 1.0047789 86
|
||||
3400 5.1247527 0.99810102 3.1363556 1.8907269 0.98936508 82
|
||||
3500 4.9424333 1.0009344 3.2153968 1.9002728 0.99161849 71
|
||||
3600 5.1243735 1.0037377 3.3117313 2.1267438 1.0078943 65
|
||||
3700 5.5045819 1.0006119 3.5686193 2.3466538 0.99876164 68
|
||||
3800 5.5355384 1.0022639 3.6701457 2.0383269 1.0008683 76
|
||||
3900 6.4915796 1.0137733 4.3225864 2.6996933 1.0064787 79
|
||||
4000 6.6631737 1.0236248 4.3057163 2.6352666 1.0255232 75
|
||||
4100 6.2999507 1.0263876 4.0101385 2.5479077 1.0168303 79
|
||||
4200 6.7902489 1.0247392 4.4616158 2.4926177 1.0191403 91
|
||||
4300 6.505908 1.0182073 4.0675428 2.168754 1.0177101 74
|
||||
4400 5.9554283 1.0115938 3.5787297 2.9258144 1.0133896 72
|
||||
4500 6.2276609 1.0202416 3.8211204 2.5308249 1.0174385 74
|
||||
4600 6.0485727 1.0195757 3.8217434 2.6421797 1.0201441 78
|
||||
4700 6.511063 1.0220764 3.933486 2.8591093 1.0147269 83
|
||||
4800 6.9478172 1.0106414 4.345402 3.3257663 1.00469 85
|
||||
4900 6.7547045 1.0211842 4.1874576 3.6503845 1.022873 94
|
||||
5000 7.2603949 1.0234313 4.5393985 3.4667806 1.0222306 105
|
||||
5100 7.1899652 1.0256566 4.5421834 3.8137207 1.0317242 99
|
||||
5200 7.1960739 1.026746 4.4288606 3.5523675 1.0242269 97
|
||||
5300 7.1294458 1.017883 4.5799808 3.3917274 1.0145317 99
|
||||
5400 6.2810892 1.0291953 4.0109229 2.8604571 1.0289438 97
|
||||
5500 6.15246 1.0288734 3.8714587 3.2760394 1.0210757 89
|
||||
5600 6.5860526 1.0192882 4.0272883 3.3124298 1.0096258 93
|
||||
5700 7.0296116 1.0097293 4.2652722 3.6049788 1.012463 82
|
||||
5800 6.8372302 1.0140065 4.2205065 4.3686183 1.0088542 93
|
||||
5900 7.8887098 1.0090612 4.9724078 4.457317 1.0045137 92
|
||||
6000 10.120663 1.0312443 6.3025192 4.72018 1.0374722 91
|
||||
6100 9.1318265 1.0304199 5.7084296 4.244548 1.0259056 97
|
||||
6200 8.9758903 1.0295285 5.1842704 4.870955 1.0178851 95
|
||||
6300 9.0088218 1.022484 5.3742805 5.1554352 1.0138365 101
|
||||
6400 10.470322 1.0287848 6.4602103 4.5461489 1.0335978 105
|
||||
6500 11.100779 1.0347405 6.9630121 4.9840664 1.0339044 99
|
||||
6600 10.139333 1.0476079 6.4284839 4.5523893 1.0433517 104
|
||||
6700 8.9706766 1.0386262 5.8387485 4.247024 1.0408151 101
|
||||
6800 7.7799532 1.0362651 4.9946283 4.6093924 1.0274763 102
|
||||
6900 8.0866551 1.0337743 4.9942769 4.1679939 1.0454805 102
|
||||
7000 8.0224277 1.0193598 4.9380527 3.9173115 1.0185001 109
|
||||
7100 7.8361001 1.0211143 4.872673 5.3471479 1.024779 110
|
||||
7200 7.8542147 1.0057183 4.8666653 4.668317 0.99980296 122
|
||||
7300 7.9313852 1.0159181 5.0062527 4.1410294 1.0195705 114
|
||||
7400 7.2769846 1.0155245 4.6349779 4.9138895 1.0005886 119
|
||||
7500 7.5974523 1.0196295 4.7918247 4.2525935 1.0211412 124
|
||||
7600 6.7835063 1.0203187 4.2674694 4.9251624 1.0218296 113
|
||||
7700 6.4039017 1.0119494 4.1086667 5.5240525 1.0078246 118
|
||||
7800 7.0715134 1.0149015 4.2450776 4.8796778 1.0164737 125
|
||||
7900 6.3626535 1.02294 4.202778 4.482164 1.0235878 136
|
||||
8000 6.2423869 1.0212553 4.0460303 5.2753307 1.0124884 132
|
||||
8100 6.550891 1.0223318 4.2993545 5.2634985 1.0163244 143
|
||||
8200 6.9122202 1.008347 4.3551124 5.4108909 1.0084913 142
|
||||
8300 6.9104634 1.0103936 4.4622206 5.6762373 0.99559355 143
|
||||
8400 6.4918879 1.0084381 4.1050732 5.8389788 1.0036021 135
|
||||
8500 7.4377218 1.0216662 4.5229841 5.5431311 1.0260799 123
|
||||
8600 7.572198 1.0228381 4.9058913 7.1028185 1.0015164 116
|
||||
8700 8.204675 1.03457 5.2231696 6.4790244 1.0214635 132
|
||||
8800 8.3118914 1.0381333 5.1795799 6.7437722 1.0290086 132
|
||||
8900 8.2559198 1.0268665 5.218352 7.2191395 1.019804 138
|
||||
9000 8.0403128 1.0339414 4.9310394 6.4942331 1.041527 156
|
||||
9100 7.1773079 1.0397062 4.4993688 7.0272109 1.0388012 167
|
||||
9200 7.1793935 1.0373589 4.3481663 7.4894459 1.0078785 157
|
||||
9300 8.3705146 1.0248112 5.1036971 8.2173072 1.010168 156
|
||||
9400 9.4935002 1.0252907 5.7846951 9.7466018 1.028941 170
|
||||
9500 9.5208037 1.0371093 5.9635099 7.6444933 1.022673 165
|
||||
9600 8.9992217 1.0292895 5.6224192 8.8071452 1.0101362 169
|
||||
9700 8.682661 1.0422224 5.3997636 8.6827834 1.0337928 149
|
||||
9800 7.6191562 1.0350948 4.7198842 8.6125595 1.0300395 151
|
||||
9900 8.0910913 1.0319432 4.8843183 7.9013334 1.0272495 167
|
||||
10000 7.4438347 1.0186098 4.7184985 8.999795 0.99762661 177
|
||||
Loop time of 162.325 on 8 procs for 10000 steps with 16271 atoms
|
||||
|
||||
Performance: 5322.658 tau/day, 61.605 timesteps/s, 1.002 Matom-step/s
|
||||
99.3% CPU use with 8 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 33.647 | 64.106 | 79.639 | 169.5 | 39.49
|
||||
Neigh | 0.30808 | 0.44033 | 0.50863 | 9.8 | 0.27
|
||||
Comm | 26.611 | 43.438 | 74.998 | 215.7 | 26.76
|
||||
Output | 0.0072573 | 0.0087791 | 0.0097993 | 0.9 | 0.01
|
||||
Modify | 53.171 | 54.121 | 55.362 | 12.3 | 33.34
|
||||
Other | | 0.2104 | | | 0.13
|
||||
|
||||
Nlocal: 2033.88 ave 2601 max 1413 min
|
||||
Histogram: 1 2 0 0 0 0 2 1 1 1
|
||||
Nghost: 1647.25 ave 1714 max 1617 min
|
||||
Histogram: 4 0 1 0 0 1 1 0 0 1
|
||||
Neighs: 12482.8 ave 17009 max 8679 min
|
||||
Histogram: 1 1 1 0 1 1 2 0 0 1
|
||||
|
||||
Total # of neighbors = 99862
|
||||
Ave neighs/atom = 6.1374224
|
||||
Neighbor list builds = 562
|
||||
Dangerous builds = 0
|
||||
|
||||
#undump 1
|
||||
#undump 2
|
||||
unfix 3
|
||||
|
||||
change_box all triclinic
|
||||
Changing box ...
|
||||
triclinic box = (-6.7498724 -6.7498724 -6.7498724) to (6.7498724 6.7498724 6.7498724) with tilt (0 0 0)
|
||||
|
||||
fix 2 small srd 20 big 1.0 1.0 49894 search 0.2 cubic warn 0.0001 shift yes 49829 overlap yes collision noslip tstat yes inside ignore
|
||||
|
||||
#dump 1 all custom 500 dump2.atom.srd id type x y z ix iy iz
|
||||
#dump 2 all custom 500 dump2.tri.srd id type # c_10[1] c_10[2] c_10[3] c_10[4] c_10[5] c_10[6] # c_10[7] c_10[8] c_10[9]
|
||||
|
||||
fix 3 all deform 1 xy erate 0.05 units box remap v
|
||||
|
||||
run 40000
|
||||
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
|
||||
SRD info:
|
||||
SRD/big particles = 14771 1500
|
||||
big particle diameter max/min = 2.9202881 0.87320391
|
||||
SRD temperature & lamda = 1 0.2
|
||||
SRD max distance & max velocity = 0.8 40
|
||||
SRD grid counts: 13 13 13
|
||||
SRD grid size: request, actual (xyz) = 1, 1.0384419 1.0384419 1.0384419
|
||||
SRD per actual grid cell = -2.775698
|
||||
SRD viscosity = -12.180602
|
||||
big/SRD mass density ratio = -5.5653033
|
||||
WARNING: SRD bin size for fix srd differs from user request (../fix_srd.cpp:2805)
|
||||
WARNING: Fix srd grid size > 1/4 of big particle diameter (../fix_srd.cpp:2826)
|
||||
WARNING: Fix srd viscosity < 0.0 due to low SRD density (../fix_srd.cpp:2828)
|
||||
# of rescaled SRD velocities = 1
|
||||
ave/max small velocity = 16.14994 40
|
||||
ave/max big velocity = 1.6952661 5.2200074
|
||||
Neighbor list info ...
|
||||
update: every = 1 steps, delay = 0 steps, check = yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 3.8
|
||||
ghost atom cutoff = 3.8
|
||||
binsize = 13.499745, bins = 1 1 1
|
||||
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||
(1) pair tri/lj, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/multi/newton/tri
|
||||
stencil: half/multi/3d/tri
|
||||
bin: multi
|
||||
Per MPI rank memory allocation (min/avg/max) = 106.9 | 107.5 | 107.7 Mbytes
|
||||
Step f_1 c_tsmall Temp Press f_2[9] f_2[4]
|
||||
10000 7.4438347 1.0189789 4.7184481 7.9505614 0 0
|
||||
10100 7.0770142 1.0021471 4.4491455 6.606701 1 141
|
||||
10200 6.7628072 1.002308 4.152988 8.5190386 1 125
|
||||
10300 6.5333319 1.0007472 4.1295404 8.2341747 1 109
|
||||
10400 6.3237519 1.0024029 3.8636034 9.4058128 1 95
|
||||
10500 6.6411054 1.0026261 4.2975997 7.6122304 1 82
|
||||
10600 5.7470775 1.0004827 3.7959947 7.3091777 1 67
|
||||
10700 5.9744919 1.0014977 3.6885649 7.5517197 1 59
|
||||
10800 5.8028731 1.0029627 3.7553961 6.2787087 1 49
|
||||
10900 5.3755286 1.0019318 3.5334739 7.1318348 1 41
|
||||
11000 5.3915962 1.001463 3.483172 7.6362496 1 40
|
||||
11100 5.8683672 1.0022459 3.6697589 6.9711866 1 33
|
||||
11200 5.4351801 0.99956703 3.4548447 7.0745257 1 29
|
||||
11300 4.9397513 1.0008287 3.1990325 6.0917337 1 27
|
||||
11400 4.9159845 1.0017862 3.0005677 7.653817 1 26
|
||||
11500 4.9243103 1.0013135 3.1799841 7.744414 1 23
|
||||
11600 5.2036357 1.0017984 3.2963749 7.540477 1 22
|
||||
11700 4.8991892 1.0020757 3.1773032 8.7218471 1 27
|
||||
11800 4.9489399 1.003438 3.1679764 7.1605486 1 26
|
||||
11900 4.82398 1.0019946 3.1939566 7.1397869 1 21
|
||||
12000 4.3531411 1.000532 2.8321416 7.6672501 1 23
|
||||
12100 4.8226081 1.0018898 3.0382137 6.8343432 1 25
|
||||
12200 4.7456418 1.0032116 2.9186038 7.3067818 1 20
|
||||
12300 4.4280468 1.0005857 2.734593 8.0365684 1 22
|
||||
12400 4.7311239 1.0000982 2.8898839 7.9231831 1 22
|
||||
12500 4.7261054 1.0016127 2.9090517 7.6085854 1 24
|
||||
12600 4.7719025 1.0016702 2.9736761 7.6101796 1 26
|
||||
12700 4.386248 1.001394 2.8508378 6.4765102 1 28
|
||||
12800 4.3313538 1.0019737 2.6258221 6.3164681 1 19
|
||||
12900 4.2219861 1.0007469 2.5345699 7.0901077 1 22
|
||||
13000 4.1775643 1.0011891 2.5807017 7.3579938 1 25
|
||||
13100 4.3060837 1.0008671 2.5974066 6.9301328 1 22
|
||||
13200 4.3529062 0.99996469 2.7571632 6.7806287 1 21
|
||||
13300 4.2178709 1.000673 2.7819091 7.6449064 1 18
|
||||
13400 4.2714169 1.0021294 2.7280794 8.0986691 1 18
|
||||
13500 4.3430969 1.0037732 2.6768429 8.1267941 1 18
|
||||
13600 4.3664374 1.0016083 2.6470186 6.2797727 1 20
|
||||
13700 4.4904769 1.0008993 2.7885718 7.7410193 1 22
|
||||
13800 4.2966193 1.001532 2.73862 7.9651302 1 21
|
||||
13900 4.4003185 1.0009984 2.7484129 8.7160439 1 24
|
||||
14000 4.5948292 1.0011748 2.9051777 7.842121 1 22
|
||||
14100 4.6901122 1.0001265 2.9404111 8.9953816 1 20
|
||||
14200 4.8517518 0.99998743 2.9647625 6.6450509 1 22
|
||||
14300 4.889628 1.0018051 3.0891097 7.2671824 1 20
|
||||
14400 4.578862 1.0010629 2.8239776 6.1317183 1 23
|
||||
14500 4.0865406 1.0013917 2.5119661 6.864665 1 19
|
||||
14600 4.30688 1.0009041 2.6817814 6.9007433 1 18
|
||||
14700 4.1295726 1.002342 2.6032093 7.1441648 1 15
|
||||
14800 4.2176021 1.0015157 2.7332903 6.8394683 1 16
|
||||
14900 4.2012664 0.99986345 2.6498409 7.4568241 1 15
|
||||
15000 4.6124269 1.0014751 2.9584178 7.9341875 1 16
|
||||
15100 4.947327 1.0010615 3.0784409 7.6241305 1 21
|
||||
15200 5.253281 1.002095 3.3093754 8.1872718 1 25
|
||||
15300 5.2642369 1.0017799 3.1511136 7.4668389 1 25
|
||||
15400 5.1967916 1.0029407 3.247548 8.0840111 1 23
|
||||
15500 5.7465412 1.001896 3.468834 9.5990471 1 15
|
||||
15600 6.2245772 1.0021086 3.6127689 7.8242016 1 19
|
||||
15700 5.5626191 0.99984979 3.3893723 7.8124588 1 20
|
||||
15800 5.5945727 1.0010291 3.3442448 7.0116922 1 17
|
||||
15900 5.4450219 1.0006248 3.3132381 8.4803413 1 15
|
||||
16000 5.7800459 1.001449 3.5002534 8.7989456 1 19
|
||||
16100 6.1168718 1.0008109 3.8081142 8.0119729 1 18
|
||||
16200 5.4901649 1.0020643 3.3673653 7.3483134 1 17
|
||||
16300 5.4051694 1.0015652 3.3560012 7.4641983 1 19
|
||||
16400 5.4237612 1.0012686 3.3816406 7.3845086 1 14
|
||||
16500 5.1935593 1.001754 3.3340381 7.8607712 1 16
|
||||
16600 5.539343 1.0021073 3.4164309 8.1541097 1 12
|
||||
16700 5.8922923 1.0013792 3.553426 7.5220576 1 14
|
||||
16800 5.956937 1.0005959 3.7630589 8.7417987 1 13
|
||||
16900 5.469721 1.0016219 3.5531223 8.6721994 1 13
|
||||
17000 5.3110154 1.001142 3.4167244 7.4644182 1 15
|
||||
17100 5.9226035 0.99918238 4.0244287 6.5172028 1 16
|
||||
17200 5.4897042 0.99981565 3.4350691 5.6840394 1 20
|
||||
17300 5.4302636 1.0021571 3.421473 6.4317025 1 21
|
||||
17400 5.5559131 1.0013807 3.4951403 6.874191 1 24
|
||||
17500 5.4068006 1.0010448 3.4506835 7.7069504 1 22
|
||||
17600 4.9283792 1.0007628 3.1736308 7.3098058 1 20
|
||||
17700 4.9319722 0.99935896 3.0956257 8.2120111 1 15
|
||||
17800 4.6842391 1.00037 2.9602433 7.4116352 1 17
|
||||
17900 4.7714682 1.0009332 2.9666778 7.5925131 1 17
|
||||
18000 4.7233188 1.0035687 3.0991778 7.1636357 1 10
|
||||
18100 4.6487958 1.0020255 3.10781 6.8468658 1 12
|
||||
18200 4.6284129 1.0012617 3.089724 6.3082275 1 13
|
||||
18300 4.7136404 0.99962415 3.1261978 7.3359556 1 15
|
||||
18400 5.0367681 1.0011016 3.2413493 8.3910633 1 14
|
||||
18500 4.9658104 1.0025407 3.2420827 7.4701216 1 17
|
||||
18600 4.6100059 1.0014508 3.0216884 6.553483 1 17
|
||||
18700 4.3246452 1.0016721 2.7810363 6.7450293 1 19
|
||||
18800 4.9415788 1.0012406 3.1661907 7.5544034 1 18
|
||||
18900 5.3930915 1.000138 3.2557456 7.350955 1 21
|
||||
19000 5.1938599 1.0007364 3.2398733 6.5397956 1 22
|
||||
19100 5.4433048 1.0019191 3.2699245 8.3625772 1 22
|
||||
19200 6.1303261 1.0004005 3.7823203 8.0537369 1 22
|
||||
19300 5.5762518 1.0008117 3.5689121 8.3714373 1 22
|
||||
19400 5.1316743 0.9999834 3.099381 7.405287 1 23
|
||||
19500 5.2064799 1.0012007 3.3059455 7.3499127 1 25
|
||||
19600 5.1650099 1.0023314 3.3759492 7.3637616 1 21
|
||||
19700 5.8316278 1.0023317 3.601564 7.153887 1 19
|
||||
19800 5.6435147 1.0010657 3.4967581 6.8899334 1 21
|
||||
19900 5.4071193 0.99961357 3.4977894 6.1068438 1 20
|
||||
20000 5.5058495 1.000982 3.5185057 8.5657603 1 19
|
||||
20100 5.6551271 1.0025852 3.5672369 7.8242273 1 20
|
||||
20200 5.7196886 1.002283 3.6010925 7.1449072 1 22
|
||||
20300 5.5593553 1.0009987 3.4363398 8.4141755 1 21
|
||||
20400 5.5550247 1.001081 3.3950874 8.0222131 1 20
|
||||
20500 5.4510415 0.99997273 3.5505093 7.5243655 1 18
|
||||
20600 5.8014064 1.0007611 3.8084579 7.6583499 1 18
|
||||
20700 5.7337315 1.0020309 3.7973684 8.7376766 1 17
|
||||
20800 5.2512898 0.99901254 3.5027763 7.8902791 1 14
|
||||
20900 5.3245034 1.0014504 3.3354615 6.7030716 1 17
|
||||
21000 5.2071731 1.0020459 3.3881369 5.8616999 1 20
|
||||
21100 5.3187535 1.0010762 3.2845672 8.1422146 1 21
|
||||
21200 5.5298545 0.99942313 3.4393978 7.1183144 1 22
|
||||
21300 5.8430744 1.0008652 3.719408 7.8522038 1 20
|
||||
21400 5.8190457 1.0017046 3.5624252 7.8150165 1 20
|
||||
21500 6.004585 1.0035276 3.9161914 7.7719377 1 21
|
||||
21600 6.7202635 0.99970072 3.9642141 8.7934294 1 18
|
||||
21700 6.8590346 1.0007883 4.4285217 8.9014638 1 20
|
||||
21800 6.627638 1.0012117 4.1154082 8.3153026 1 22
|
||||
21900 7.8281047 1.0008299 4.8842343 8.4016227 1 20
|
||||
22000 7.200038 1.0014681 4.4141419 9.4091956 1 18
|
||||
22100 7.7442011 1.0018051 4.7850371 8.9885489 1 15
|
||||
22200 7.4770203 1.0033558 4.7512643 8.4898148 1 17
|
||||
22300 8.1080801 1.0000019 5.2725185 9.2314625 1 14
|
||||
22400 7.8068311 1.0020672 4.9055683 8.4064748 1 12
|
||||
22500 7.4594636 1.0008427 4.6586396 8.5102986 1 11
|
||||
22600 6.9380609 1.0024634 4.2435619 10.395118 1 16
|
||||
22700 6.9338066 1.001056 4.3436179 7.9126284 1 18
|
||||
22800 6.8049493 1.0020052 4.1443407 7.8228868 1 18
|
||||
22900 6.2280158 1.0021474 3.7695343 7.3179647 1 20
|
||||
23000 5.649403 1.0017128 3.5941976 7.2964709 1 19
|
||||
23100 5.3203116 1.001912 3.3807399 6.6454551 1 15
|
||||
23200 5.8172882 1.0005742 3.6625896 8.4256312 1 15
|
||||
23300 5.9647182 1.0015466 3.9106019 8.3303303 1 14
|
||||
23400 5.9784055 1.0034542 3.7229235 7.7934273 1 14
|
||||
23500 5.377627 1.00192 3.5481778 6.8195124 1 17
|
||||
23600 5.4807136 1.0014662 3.563123 7.6356376 1 18
|
||||
23700 5.8896329 1.0013553 3.7990694 8.5513408 1 13
|
||||
23800 6.3463707 0.9999403 3.9609397 8.5741923 1 11
|
||||
23900 6.656669 1.0014998 4.1993183 9.0862996 1 13
|
||||
24000 7.583723 1.0025057 4.7628652 7.5007245 1 20
|
||||
24100 6.9868359 1.0014089 4.4369841 7.692833 1 25
|
||||
24200 7.1966062 1.0013149 4.4384528 9.5264821 1 18
|
||||
24300 6.7765706 1.0007065 4.3500477 9.4974154 1 16
|
||||
24400 7.0853466 1.0013246 4.409163 9.2215823 1 17
|
||||
24500 6.9603823 1.0004247 4.4866051 7.7870058 1 20
|
||||
24600 6.9208291 0.99953329 4.2298144 6.5732392 1 21
|
||||
24700 6.5005518 1.0026848 4.0003505 7.8094715 1 22
|
||||
24800 5.8421948 1.0012055 3.6686768 7.6078157 1 26
|
||||
24900 5.8410604 1.0023428 3.746177 6.8971309 1 22
|
||||
25000 5.8728511 1.0001747 3.7170134 7.4456816 1 19
|
||||
25100 6.0217168 1.000624 3.7756108 6.6542452 1 20
|
||||
25200 6.1939015 1.0017861 3.8943084 9.395821 1 25
|
||||
25300 6.161998 1.0010373 3.9255122 6.2228884 1 28
|
||||
25400 5.5850406 1.0018505 3.5129832 7.2551309 1 24
|
||||
25500 6.0286276 1.0009028 3.8580887 6.8065265 1 24
|
||||
25600 5.6262228 1.0005097 3.4574446 7.5061246 1 21
|
||||
25700 6.1348187 1.0009828 3.8073512 7.4818375 1 17
|
||||
25800 6.09781 1.0026426 3.9585383 9.0915939 1 21
|
||||
25900 6.2673667 1.0002269 3.8182813 9.2134822 1 21
|
||||
26000 6.6001776 1.0020444 4.041386 8.0403555 1 18
|
||||
26100 6.3063025 1.0016633 3.8649839 8.8149734 1 19
|
||||
26200 6.0046983 1.002332 3.5380766 8.6145656 1 17
|
||||
26300 5.9627788 1.0005401 3.56864 6.7821213 1 15
|
||||
26400 5.0547314 0.9998295 3.2106781 9.2935351 1 15
|
||||
26500 5.256781 1.0013131 3.2946631 8.8590275 1 15
|
||||
26600 5.6250355 1.0023929 3.5243033 8.8985058 1 17
|
||||
26700 6.0197165 1.0018323 3.7973947 7.3093402 1 17
|
||||
26800 5.4556541 1.0015309 3.4295107 8.2342049 1 18
|
||||
26900 5.420428 1.0024996 3.4374201 7.1444636 1 16
|
||||
27000 6.165624 1.0019174 3.8726016 8.6588275 1 20
|
||||
27100 6.7131697 1.0006541 4.266264 8.7063389 1 24
|
||||
27200 6.4855163 1.0016139 4.2029778 7.667611 1 29
|
||||
27300 6.0525608 1.000478 3.9169723 7.4515279 1 25
|
||||
27400 6.1426194 1.0014522 3.9176108 6.8689671 1 24
|
||||
27500 6.5981349 1.0001143 4.0620686 8.6804552 1 27
|
||||
27600 6.7827138 1.0016694 4.2764286 9.3912843 1 21
|
||||
27700 6.6368902 1.0025149 4.1452128 9.1814523 1 24
|
||||
27800 6.9791025 1.0019486 4.3989933 7.9446882 1 24
|
||||
27900 6.617142 1.0015736 4.360571 9.3732108 1 26
|
||||
28000 7.2818263 1.0014101 4.6041512 8.2398587 1 28
|
||||
28100 7.2543709 1.0007625 4.5724787 7.7373488 1 22
|
||||
28200 7.0631847 1.0023922 4.4021705 8.3290554 1 29
|
||||
28300 7.2999952 1.0012593 4.4655563 8.612666 1 27
|
||||
28400 7.4124538 1.0014043 4.5011335 8.379391 1 29
|
||||
28500 7.0350937 1.0011392 4.3528091 7.8167375 1 24
|
||||
28600 7.9659642 1.0031684 4.8732467 8.0661929 1 30
|
||||
28700 7.2865919 1.0010958 4.6650146 8.0325989 1 32
|
||||
28800 7.7039529 1.0027912 4.8299888 9.5471747 1 30
|
||||
28900 8.3288847 1.0012438 5.0785288 8.8964877 1 31
|
||||
29000 7.9348665 1.0021794 4.9393968 9.5531767 1 31
|
||||
29100 8.2473389 1.0013795 4.9890359 9.7697184 1 29
|
||||
29200 8.6383362 1.0018356 4.9856954 7.6402719 1 25
|
||||
29300 8.2504592 1.0011048 4.9631793 7.9466724 1 24
|
||||
29400 8.0502922 1.0010516 5.2521065 8.4515028 1 26
|
||||
29500 7.9475896 1.0012951 4.8584644 9.1225463 1 19
|
||||
29600 8.5641641 1.0016228 5.4361335 9.2045399 1 23
|
||||
29700 8.9932021 1.0011848 5.5727205 8.6045729 1 23
|
||||
29800 8.0320178 1.0019073 5.2837013 8.9335413 1 22
|
||||
29900 8.2676522 1.0012734 5.2213798 8.8966896 1 24
|
||||
30000 9.1848984 1.001747 5.9147628 12.096129 1 27
|
||||
30100 10.184519 0.99977427 6.4260136 11.140491 1 27
|
||||
30200 9.271472 1.0023983 6.0252189 9.6954338 1 30
|
||||
30300 9.0751572 1.000851 5.6010295 9.734426 1 28
|
||||
30400 9.4581261 1.0018449 5.6987258 9.70456 1 34
|
||||
30500 9.1574751 0.99944001 5.582217 9.300318 1 27
|
||||
30600 8.619312 1.001388 5.3503985 8.2759155 1 26
|
||||
30700 7.9370031 1.0026674 5.0702831 8.5368014 1 28
|
||||
30800 7.9221619 1.0019077 5.1278637 11.046922 1 26
|
||||
30900 9.9722884 1.0025903 6.4055506 10.167311 1 25
|
||||
31000 8.8648667 0.99962676 5.4777514 10.142102 1 21
|
||||
31100 8.576344 1.000906 5.3216342 8.7984921 1 18
|
||||
31200 7.8480974 1.0010341 4.9584917 9.0696437 1 16
|
||||
31300 8.3536183 1.0005758 5.208516 9.7971514 1 15
|
||||
31400 8.5301933 1.0007603 5.2241536 9.0257241 1 17
|
||||
31500 8.5196226 1.0018215 5.0576064 8.8847294 1 19
|
||||
31600 8.1470823 1.0023147 4.9182956 9.0205413 1 20
|
||||
31700 8.1475888 1.0005764 5.1814113 9.0603162 1 16
|
||||
31800 7.8629717 1.0014194 4.9221218 9.366291 1 16
|
||||
31900 7.7206559 1.0021082 4.9167636 7.4136735 1 16
|
||||
32000 7.5152809 1.0004752 4.6330638 8.830959 1 16
|
||||
32100 8.2693974 1.0011751 4.9094804 9.427636 1 13
|
||||
32200 8.3067661 0.9997006 4.9036865 9.0374633 1 17
|
||||
32300 7.2068514 1.0007866 4.3580755 8.6445065 1 17
|
||||
32400 6.885063 1.0011887 4.1528011 8.1199454 1 16
|
||||
32500 6.9147014 1.0020825 4.160405 7.5398034 1 19
|
||||
32600 6.8809668 1.000971 4.3312782 8.2157688 1 16
|
||||
32700 6.4818892 1.0000885 3.9433899 7.309605 1 22
|
||||
32800 6.6875555 1.0018674 4.1017504 7.2327183 1 22
|
||||
32900 7.6118502 0.99975736 4.4498951 8.5072395 1 19
|
||||
33000 7.7576909 1.0022061 4.7239551 9.2132467 1 22
|
||||
33100 7.8616235 1.000482 5.0031322 9.349805 1 20
|
||||
33200 8.2620563 1.0015059 5.2482188 10.286446 1 17
|
||||
33300 8.0217099 1.0015466 5.1166876 9.1381844 1 20
|
||||
33400 7.6565746 1.0024855 4.7594208 9.2646824 1 22
|
||||
33500 7.9633887 1.0010334 4.6754116 9.1085184 1 23
|
||||
33600 7.9566834 1.0024542 4.6712679 9.2046594 1 25
|
||||
33700 8.2639384 1.0003021 5.1326892 8.0930215 1 24
|
||||
33800 8.5648917 1.0000947 5.2099387 8.8127486 1 21
|
||||
33900 8.3593557 1.0002488 5.1291354 8.5938391 1 25
|
||||
34000 8.1922068 1.0030011 5.1441189 7.1529563 1 24
|
||||
34100 8.4260308 1.0004639 5.5876122 9.0450303 1 28
|
||||
34200 8.3014654 1.0002204 5.1964772 8.4920822 1 33
|
||||
34300 7.4736545 1.0010306 4.7932244 7.8442244 1 30
|
||||
34400 7.0023126 1.0024002 4.5665168 8.4702188 1 29
|
||||
34500 7.3797703 1.000813 4.7224014 8.4098954 1 30
|
||||
34600 7.7158761 0.99973161 4.7441628 8.5818592 1 29
|
||||
34700 7.6135895 1.0015768 4.6612844 7.2195952 1 28
|
||||
34800 7.0458078 0.99992638 4.2805357 7.4162305 1 32
|
||||
34900 7.6190708 1.0007146 4.8064968 8.2709405 1 27
|
||||
35000 7.4614294 1.0006051 4.7807207 7.7137359 1 28
|
||||
35100 7.7008336 1.0008263 4.6823621 7.0208513 1 26
|
||||
35200 8.1510766 1.000271 5.1781834 7.3231692 1 24
|
||||
35300 7.5106275 1.0010438 4.6988185 8.9418343 1 25
|
||||
35400 7.8116652 1.0009688 4.8622216 7.4624002 1 17
|
||||
35500 7.2159785 1.0027484 4.543984 8.3177043 1 21
|
||||
35600 7.6978875 1.0004834 4.7021203 8.3706905 1 20
|
||||
35700 7.7827655 1.0019919 4.775879 8.6083292 1 15
|
||||
35800 7.8433537 1.001844 4.7506574 7.3250009 1 15
|
||||
35900 7.9456497 1.0004336 4.7925775 7.9824359 1 18
|
||||
36000 8.1044513 1.0022261 5.1213755 9.211699 1 16
|
||||
36100 7.6657532 1.0025661 4.751804 8.9770412 1 19
|
||||
36200 7.909323 1.0035462 4.8435293 10.232493 1 21
|
||||
36300 8.4188244 1.0016775 5.4337725 9.2060079 1 24
|
||||
36400 8.7352689 1.0011274 5.6313351 8.6202832 1 24
|
||||
36500 8.3459273 1.0005659 5.187336 6.9333716 1 21
|
||||
36600 7.7118105 1.0018769 4.9293347 8.2789615 1 14
|
||||
36700 7.8069879 1.0014021 4.7782709 8.4841233 1 15
|
||||
36800 7.862085 1.0005342 4.8680692 8.1055023 1 16
|
||||
36900 7.9469362 1.0027815 4.9339095 9.157722 1 16
|
||||
37000 7.9085375 1.0024851 5.0921374 8.9374239 1 16
|
||||
37100 8.9464869 1.0005734 5.6837772 8.806998 1 16
|
||||
37200 8.1482632 1.0021175 5.1266453 8.5772094 1 18
|
||||
37300 7.7958072 1.0026336 4.788431 8.3233372 1 19
|
||||
37400 7.3647655 1.0015482 4.4786134 9.6606112 1 23
|
||||
37500 7.3071882 1.0003912 4.681549 8.6319438 1 17
|
||||
37600 7.8672509 1.0000478 4.7981944 8.3051478 1 14
|
||||
37700 7.9306696 0.99923102 4.9316544 9.3672856 1 15
|
||||
37800 7.7397949 0.99948557 5.1168552 8.5978047 1 17
|
||||
37900 7.9121039 1.0020122 4.9866234 7.640888 1 14
|
||||
38000 7.433451 1.0007901 4.6254894 8.0853539 1 14
|
||||
38100 7.4636908 1.0021552 4.8472833 8.1975615 1 10
|
||||
38200 7.4453077 1.0010305 4.6910943 7.8192603 1 13
|
||||
38300 7.0488536 1.0012587 4.5490462 8.190036 1 16
|
||||
38400 8.0686748 1.0016782 5.0747029 7.7242015 1 15
|
||||
38500 7.9575875 1.0007137 4.8361776 8.05268 1 15
|
||||
38600 7.6690498 1.0027522 4.8823286 9.1926516 1 20
|
||||
38700 7.1567 1.002374 4.5600354 10.098089 1 19
|
||||
38800 6.9100518 1.0008695 4.4101446 7.8832032 1 19
|
||||
38900 6.8021882 1.0017647 4.1844125 8.1858761 1 21
|
||||
39000 8.3996464 1.0010263 4.8183813 8.0997387 1 16
|
||||
39100 8.4533834 1.0021643 5.074254 11.291904 1 19
|
||||
39200 8.2406701 1.002062 5.0117425 8.778159 1 24
|
||||
39300 8.3134114 1.0008218 5.0067136 7.9871787 1 22
|
||||
39400 7.4307571 1.0014205 4.5858283 8.8596594 1 25
|
||||
39500 7.1146821 1.0016367 4.5021057 7.4890018 1 22
|
||||
39600 8.0048978 0.99992107 4.9235747 7.8770845 1 24
|
||||
39700 8.070853 1.0029024 5.0842957 9.020664 1 21
|
||||
39800 7.6939108 1.0012543 4.8986595 8.3306129 1 20
|
||||
39900 7.2915444 1.00267 4.5038291 8.3844384 1 20
|
||||
40000 7.3023994 1.0020441 4.4960911 8.1023709 1 18
|
||||
40100 7.0221648 1.0033695 4.6374149 8.3756822 1 24
|
||||
40200 7.4114756 1.0019246 4.6733475 7.6547258 1 23
|
||||
40300 7.5323108 1.0005472 4.8284493 8.2820085 1 26
|
||||
40400 7.3890772 1.0010491 4.6599273 8.9203575 1 19
|
||||
40500 7.5786764 1.0016114 4.8166885 8.6760107 1 25
|
||||
40600 8.165763 1.0006961 5.1488995 7.9321524 1 22
|
||||
40700 8.1277597 0.99933464 5.0441567 10.069551 1 16
|
||||
40800 8.1050904 1.0024705 5.4408599 8.3244459 1 21
|
||||
40900 7.805318 1.0022992 4.9965408 9.7193723 1 21
|
||||
41000 9.0130932 1.0006842 5.7931112 6.1646073 1 20
|
||||
41100 8.0387975 1.0017359 5.3355655 9.6123191 1 21
|
||||
41200 8.4484723 1.0014151 5.4461007 8.5146504 1 27
|
||||
41300 8.6181909 1.0007562 5.2963876 9.1122306 1 30
|
||||
41400 9.6762899 1.0010931 5.950456 9.2851025 1 25
|
||||
41500 9.9414226 1.0016186 6.1433384 10.741453 1 24
|
||||
41600 9.3348435 1.0003483 5.9291766 11.460717 1 20
|
||||
41700 9.6125587 1.0013661 5.8530052 9.2105722 1 19
|
||||
41800 11.383056 1.0032034 7.1988684 10.312945 1 22
|
||||
41900 10.884524 1.0034888 6.9126707 10.775457 1 20
|
||||
42000 11.071218 1.0026753 7.0004189 10.740627 1 20
|
||||
42100 11.054304 1.0008347 6.9602414 8.9885498 1 22
|
||||
42200 22.478691 1.0020466 14.997099 12.72513 1 19
|
||||
42300 18.303508 1.0027626 11.336523 12.638769 1 18
|
||||
42400 15.998712 1.0030312 9.4092725 11.070501 1 24
|
||||
42500 15.034488 1.0024472 9.3543751 11.48052 1 28
|
||||
42600 14.538257 1.0033153 9.2523745 10.909576 1 27
|
||||
42700 13.986613 1.001458 8.5544184 10.765136 1 29
|
||||
42800 13.240256 1.0027899 8.2014429 10.506497 1 32
|
||||
42900 12.784336 1.0001406 8.0823431 12.258209 1 33
|
||||
43000 13.374145 1.0012996 8.4207155 10.32817 1 31
|
||||
43100 13.142334 1.0022503 8.5908808 10.152205 1 32
|
||||
43200 12.669284 1.0018944 7.8511966 10.580104 1 32
|
||||
43300 13.155032 1.001144 8.0337768 10.6652 1 39
|
||||
43400 12.155928 1.0019472 7.5886584 11.234772 1 35
|
||||
43500 12.385603 1.0007639 7.8865245 9.3868914 1 32
|
||||
43600 12.236179 1.0027456 7.7521353 10.456701 1 42
|
||||
43700 11.49535 1.0008758 7.3633144 8.8490079 1 40
|
||||
43800 11.469157 1.0015845 7.0035577 10.594522 1 41
|
||||
43900 11.228266 1.0013014 7.0137223 8.0653711 1 38
|
||||
44000 10.56742 1.0016631 6.6908938 8.1094154 1 35
|
||||
44100 9.8964699 1.0008351 6.3550438 8.6578181 1 36
|
||||
44200 9.041539 1.0019541 5.6721401 8.6518043 1 38
|
||||
44300 9.0767434 1.0034191 5.7446596 8.3838528 1 38
|
||||
44400 9.2299608 1.0019526 5.7117964 8.3106491 1 37
|
||||
44500 9.458981 1.0030409 5.7612138 7.7679755 1 37
|
||||
44600 8.9611997 1.0014848 5.6490756 6.9224078 1 37
|
||||
44700 8.0853184 1.0018894 5.2288749 8.0910912 1 32
|
||||
44800 7.9999755 1.0015853 4.8088312 7.1854304 1 30
|
||||
44900 7.6598023 1.0009751 4.6690664 7.1999858 1 28
|
||||
45000 7.4939315 1.0010307 4.8119666 7.9615769 1 26
|
||||
45100 7.4690079 0.99913423 4.9704428 7.6026835 1 32
|
||||
45200 7.7001199 1.001626 4.9315953 7.4926686 1 25
|
||||
45300 7.8794405 1.0011648 4.8624857 8.0804457 1 26
|
||||
45400 7.493909 1.0016257 4.7631808 8.0330626 1 26
|
||||
45500 7.5963141 1.0005825 4.7220659 7.0971298 1 23
|
||||
45600 7.9028612 1.0017008 4.9561022 8.440428 1 23
|
||||
45700 7.2285584 1.0006033 4.5521456 9.385579 1 23
|
||||
45800 7.5687284 1.0024318 4.8557498 8.3052658 1 23
|
||||
45900 7.8938604 1.0013937 5.1393944 5.5323667 1 26
|
||||
46000 8.318466 1.0020803 5.4761811 8.2227801 1 25
|
||||
46100 7.9169512 1.0024598 5.0406355 8.64365 1 27
|
||||
46200 7.5535458 1.0016318 4.8010133 9.370726 1 26
|
||||
46300 7.8926896 1.0001525 5.18463 7.9830196 1 27
|
||||
46400 7.487145 1.002671 4.7718312 8.300134 1 29
|
||||
46500 7.3564658 1.0006114 4.6762189 7.34947 1 26
|
||||
46600 7.2261291 1.0005569 4.4751221 6.5847138 1 27
|
||||
46700 7.2943203 1.0020164 4.3335327 7.7296507 1 25
|
||||
46800 8.5849411 1.0014634 5.4501531 9.0933014 1 25
|
||||
46900 10.176752 1.0023799 6.0456779 9.4050423 1 16
|
||||
47000 9.1913098 1.0029076 5.7577256 9.1826215 1 22
|
||||
47100 9.5479771 1.0022102 6.1100973 8.9440056 1 28
|
||||
47200 9.9944172 1.0004924 6.3649417 9.1507264 1 25
|
||||
47300 9.3543283 1.0013246 6.0873147 10.41657 1 24
|
||||
47400 8.594101 1.0020068 5.6864295 9.2388304 1 24
|
||||
47500 9.3191964 1.002411 6.0537511 9.3506828 1 23
|
||||
47600 8.1615734 1.001364 5.3757905 10.303962 1 30
|
||||
47700 8.3615046 1.0003075 5.2727936 9.3162209 1 32
|
||||
47800 8.3566467 1.0026031 5.4379524 7.7644422 1 33
|
||||
47900 8.4062556 1.0006471 5.3098736 8.0181121 1 33
|
||||
48000 8.2233307 1.0012304 4.9650027 9.2644288 1 34
|
||||
48100 8.4495256 1.000088 4.9940422 10.01023 1 27
|
||||
48200 8.8068097 1.0014275 5.4732649 8.410093 1 31
|
||||
48300 8.0008187 1.0017459 4.7732764 9.25726 1 27
|
||||
48400 7.7242529 1.0026909 4.9084505 8.7147295 1 30
|
||||
48500 8.3752816 1.001333 5.1071228 8.2267308 1 32
|
||||
48600 9.0777805 1.0019328 5.7331841 9.6679383 1 29
|
||||
48700 9.3623061 1.0001767 5.7117062 8.396895 1 25
|
||||
48800 8.1186637 1.0013185 5.2697427 8.6058372 1 27
|
||||
48900 7.3685497 1.0007173 4.6097553 7.8047228 1 24
|
||||
49000 7.1661421 1.0023152 4.5389038 8.8759552 1 22
|
||||
49100 6.9857144 1.0016394 4.6489319 8.2022359 1 24
|
||||
49200 6.7160336 1.0018413 4.2488082 8.3393245 1 25
|
||||
49300 7.9703755 1.0010628 5.2328567 7.968278 1 28
|
||||
49400 8.2628465 1.0010877 5.2292977 8.0196533 1 27
|
||||
49500 8.1436558 1.0015175 5.0344712 8.0712037 1 30
|
||||
49600 8.5182498 1.0021589 5.1029028 8.6869789 1 28
|
||||
49700 8.3604444 1.0015016 5.0333696 9.4861656 1 25
|
||||
49800 7.336335 1.0020055 4.6365173 8.7210022 1 30
|
||||
49900 7.432996 1.0016415 4.7090587 8.7033033 1 29
|
||||
50000 7.4937053 1.001014 4.7212573 9.0890363 1 29
|
||||
Loop time of 999.576 on 8 procs for 40000 steps with 16271 atoms
|
||||
|
||||
Performance: 3457.466 tau/day, 40.017 timesteps/s, 651.116 katom-step/s
|
||||
99.3% CPU use with 8 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 293.48 | 403.7 | 545.29 | 357.5 | 40.39
|
||||
Neigh | 2.4176 | 3.2721 | 3.8303 | 25.2 | 0.33
|
||||
Comm | 163.58 | 305.88 | 419.83 | 416.7 | 30.60
|
||||
Output | 0.032483 | 0.034794 | 0.040514 | 1.2 | 0.00
|
||||
Modify | 281.15 | 285.67 | 293.8 | 24.3 | 28.58
|
||||
Other | | 1.023 | | | 0.10
|
||||
|
||||
Nlocal: 2033.88 ave 2657 max 1198 min
|
||||
Histogram: 2 0 0 0 0 2 1 0 1 2
|
||||
Nghost: 1628.12 ave 1719 max 1569 min
|
||||
Histogram: 2 0 1 1 2 1 0 0 0 1
|
||||
Neighs: 13566 ave 18212 max 8488 min
|
||||
Histogram: 1 0 0 1 2 1 2 0 0 1
|
||||
|
||||
Total # of neighbors = 108528
|
||||
Ave neighs/atom = 6.6700264
|
||||
Neighbor list builds = 2447
|
||||
Dangerous builds = 2
|
||||
Total wall time: 0:19:22
|
||||
@ -1,243 +0,0 @@
|
||||
LAMMPS (1 Feb 2014)
|
||||
# Aspherical shear demo - 3d triangle boxes, solvated by SRD particles
|
||||
|
||||
units lj
|
||||
atom_style tri
|
||||
atom_modify first big
|
||||
|
||||
read_data data.tri.srd
|
||||
orthogonal box = (-8.43734 -8.43734 -8.43734) to (8.43734 8.43734 8.43734)
|
||||
2 by 2 by 2 MPI processor grid
|
||||
reading atoms ...
|
||||
1500 atoms
|
||||
1500 triangles
|
||||
|
||||
# add small particles as hi density lattice
|
||||
|
||||
lattice sc 0.4
|
||||
Lattice spacing in x,y,z = 1.35721 1.35721 1.35721
|
||||
region box block INF INF INF INF INF INF
|
||||
lattice sc 20.0
|
||||
Lattice spacing in x,y,z = 0.368403 0.368403 0.368403
|
||||
create_atoms 2 region box
|
||||
Created 91125 atoms
|
||||
|
||||
group big type 1
|
||||
1500 atoms in group big
|
||||
group small type 2
|
||||
91125 atoms in group small
|
||||
set group small mass 0.01
|
||||
91125 settings made for mass
|
||||
|
||||
# delete overlaps
|
||||
# must set 1-2 cutoff to non-zero value
|
||||
|
||||
pair_style lj/cut 1.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
|
||||
|
||||
delete_atoms overlap 1.5 small big
|
||||
Deleted 76354 atoms, new total = 16271
|
||||
|
||||
# SRD run
|
||||
|
||||
reset_timestep 0
|
||||
|
||||
velocity small create 1.44 87287 loop geom
|
||||
|
||||
neighbor 0.3 bin
|
||||
neigh_modify delay 0 every 1 check yes
|
||||
neigh_modify exclude molecule big include big
|
||||
|
||||
communicate multi group big vel yes
|
||||
neigh_modify include big
|
||||
|
||||
# no pairwise interactions with small particles
|
||||
|
||||
pair_style tri/lj 3.5
|
||||
pair_coeff 1 1 0.1 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 #langevin 1.0 1.0 0.1 12398
|
||||
125 rigid bodies with 1500 atoms
|
||||
fix 2 small srd 20 big 1.0 0.25 49894 search 0.2 cubic warn 0.0001 shift yes 49829 overlap yes collision noslip
|
||||
|
||||
fix 3 all deform 1 x scale 0.6 y scale 0.6 z scale 0.6
|
||||
|
||||
# diagnostics
|
||||
|
||||
compute tsmall small temp/deform
|
||||
compute tbig big temp
|
||||
variable pebig equal pe*atoms/count(big)
|
||||
variable ebig equal etotal*atoms/count(big)
|
||||
|
||||
compute 1 big erotate/asphere
|
||||
compute 2 all ke
|
||||
compute 3 all pe
|
||||
variable toteng equal (c_1+c_2+c_3)/atoms
|
||||
|
||||
thermo 1000
|
||||
thermo_style custom step f_1 c_tsmall f_2[9] temp press
|
||||
thermo_modify temp tbig
|
||||
WARNING: Temperature for thermo pressure is not for group all (../thermo.cpp:439)
|
||||
|
||||
compute 10 all property/atom corner1x corner1y corner1z corner2x corner2y corner2z corner3x corner3y corner3z
|
||||
|
||||
#dump 1 all custom 500 dump1.atom.srd id type x y z ix iy iz
|
||||
#dump 2 all custom 500 dump1.tri.srd id type # c_10[1] c_10[2] c_10[3] c_10[4] c_10[5] c_10[6] # c_10[7] c_10[8] c_10[9]
|
||||
|
||||
run 10000
|
||||
WARNING: Using fix srd with box deformation but no SRD thermostat (../fix_srd.cpp:385)
|
||||
SRD info:
|
||||
SRD/big particles = 14771 1500
|
||||
big particle diameter max/min = 1.46014 0.436602
|
||||
SRD temperature & lamda = 1 0.2
|
||||
SRD max distance & max velocity = 0.8 40
|
||||
SRD grid counts: 67 67 67
|
||||
SRD grid size: request, actual (xyz) = 0.25, 0.251861 0.251861 0.251861
|
||||
SRD per actual grid cell = 0.0647662
|
||||
SRD viscosity = -1.09837
|
||||
big/SRD mass density ratio = 24.668
|
||||
WARNING: SRD bin size for fix srd differs from user request (../fix_srd.cpp:2853)
|
||||
WARNING: Fix srd grid size > 1/4 of big particle diameter (../fix_srd.cpp:2875)
|
||||
WARNING: Fix srd viscosity < 0.0 due to low SRD density (../fix_srd.cpp:2877)
|
||||
# of rescaled SRD velocities = 0
|
||||
ave/max small velocity = 19.9708 35.1504
|
||||
ave/max big velocity = 0 0
|
||||
WARNING: Using compute temp/deform with inconsistent fix deform remap option (../compute_temp_deform.cpp:76)
|
||||
Memory usage per processor = 116.135 Mbytes
|
||||
Step 1 tsmall 2[9] Temp Press
|
||||
0 0 1.4405441 0 0 -0.15917996
|
||||
1000 1.0535509 1.1241378 1.1224038 0 0.15526438
|
||||
2000 2.4635987 1.0240667 0.94231519 0 0.011069846
|
||||
3000 3.1093028 1.0070585 1.0176028 0 0.34124888
|
||||
4000 2.9524179 1.0101774 1.0311733 0 -0.22118101
|
||||
5000 2.9175438 1.0109144 1.0284445 0 0.1839507
|
||||
6000 3.3200928 0.99108983 0.95968219 0 1.0229339
|
||||
7000 3.3020156 0.99661428 0.98000621 0 2.3333851
|
||||
8000 4.1500999 0.99129645 0.99723707 0 4.3054414
|
||||
9000 6.537028 1.0074533 1.0251098 0 18.782913
|
||||
10000 16.233245 1.0145766 1.0219787 0 147.83787
|
||||
Loop time of 228.558 on 8 procs for 10000 steps with 16271 atoms
|
||||
|
||||
Pair time (%) = 145.018 (63.4492)
|
||||
Neigh time (%) = 32.6283 (14.2757)
|
||||
Comm time (%) = 43.3283 (18.9572)
|
||||
Outpt time (%) = 0.000848889 (0.00037141)
|
||||
Other time (%) = 7.58254 (3.31755)
|
||||
|
||||
Nlocal: 2033.88 ave 2092 max 1902 min
|
||||
Histogram: 1 0 0 0 1 1 0 1 1 3
|
||||
Nghost: 2805 ave 2855 max 2751 min
|
||||
Histogram: 1 0 2 1 0 0 0 2 1 1
|
||||
Neighs: 30026.5 ave 38700 max 24367 min
|
||||
Histogram: 1 0 2 1 3 0 0 0 0 1
|
||||
|
||||
Total # of neighbors = 240212
|
||||
Ave neighs/atom = 14.7632
|
||||
Neighbor list builds = 501
|
||||
Dangerous builds = 0
|
||||
|
||||
#undump 1
|
||||
#undump 2
|
||||
unfix 3
|
||||
|
||||
change_box all triclinic
|
||||
triclinic box = (-5.0624 -5.0624 -5.0624) to (5.0624 5.0624 5.0624) with tilt (0 0 0)
|
||||
|
||||
fix 2 small srd 20 big 1.0 0.25 49894 search 0.2 cubic warn 0.0001 shift yes 49829 overlap yes collision noslip tstat yes
|
||||
|
||||
#dump 1 all custom 500 dump2.atom.srd id type x y z ix iy iz
|
||||
#dump 2 all custom 500 dump2.tri.srd id type # c_10[1] c_10[2] c_10[3] c_10[4] c_10[5] c_10[6] # c_10[7] c_10[8] c_10[9]
|
||||
|
||||
fix 3 all deform 1 xy erate 0.05 units box remap v
|
||||
|
||||
run 40000
|
||||
SRD info:
|
||||
SRD/big particles = 14771 1500
|
||||
big particle diameter max/min = 1.46014 0.436602
|
||||
SRD temperature & lamda = 1 0.2
|
||||
SRD max distance & max velocity = 0.8 40
|
||||
SRD grid counts: 40 40 40
|
||||
SRD grid size: request, actual (xyz) = 0.25, 0.25312 0.25312 0.25312
|
||||
SRD per actual grid cell = -1.93929
|
||||
SRD viscosity = -0.36972
|
||||
big/SRD mass density ratio = -0.836253
|
||||
WARNING: SRD bin size for fix srd differs from user request (../fix_srd.cpp:2853)
|
||||
WARNING: Fix srd grid size > 1/4 of big particle diameter (../fix_srd.cpp:2875)
|
||||
WARNING: Fix srd viscosity < 0.0 due to low SRD density (../fix_srd.cpp:2877)
|
||||
# of rescaled SRD velocities = 1
|
||||
ave/max small velocity = 16.0639 40
|
||||
ave/max big velocity = 2.05735 6.73052
|
||||
Memory usage per processor = 65.2471 Mbytes
|
||||
Step 1 tsmall 2[9] Temp Press
|
||||
10000 16.233245 1.0144194 0 0 146.27032
|
||||
11000 17.301043 1.0619209 1 0 84.226323
|
||||
12000 13.481177 1.063945 1 0 80.42834
|
||||
13000 12.616615 1.0536125 1 0 68.365053
|
||||
14000 12.16592 1.0581344 1 0 59.709941
|
||||
15000 10.811557 1.0650453 1 0 59.869798
|
||||
16000 9.9303081 1.0641012 1 0 59.289126
|
||||
17000 10.452639 1.0589904 1 0 52.680235
|
||||
18000 9.2488947 1.0556713 1 0 51.044123
|
||||
19000 8.7179788 1.0566791 1 0 50.927924
|
||||
20000 7.8641299 1.0668891 1 0 53.961014
|
||||
21000 8.4333975 1.0628003 1 0 54.677068
|
||||
22000 8.554623 1.0591872 1 0 51.784737
|
||||
23000 7.895462 1.0598512 1 0 53.26885
|
||||
24000 7.7014869 1.055569 1 0 54.236941
|
||||
25000 7.508138 1.0581539 1 0 53.297709
|
||||
26000 8.0707381 1.0586451 1 0 51.411341
|
||||
27000 8.224223 1.0585509 1 0 52.775784
|
||||
28000 8.8720461 1.0648837 1 0 49.681447
|
||||
29000 8.503895 1.0538278 1 0 52.478556
|
||||
30000 8.2272425 1.0625583 1 0 52.795709
|
||||
31000 8.4626161 1.0599557 1 0 52.905343
|
||||
32000 7.7410527 1.0587681 1 0 57.464472
|
||||
33000 7.2765481 1.0677531 1 0 59.46728
|
||||
34000 7.036016 1.0640728 1 0 60.636828
|
||||
35000 8.497203 1.0577458 1 0 55.257312
|
||||
36000 8.9218761 1.0585038 1 0 55.668201
|
||||
37000 8.0469115 1.0561193 1 0 58.711565
|
||||
38000 8.6456966 1.0663818 1 0 53.691658
|
||||
39000 8.566667 1.0616928 1 0 52.866468
|
||||
40000 7.7081259 1.0577046 1 0 54.105829
|
||||
41000 7.4051952 1.0570277 1 0 56.094997
|
||||
42000 7.331432 1.0632261 1 0 55.661067
|
||||
43000 7.5587053 1.0602077 1 0 54.30762
|
||||
44000 7.4521497 1.0594391 1 0 52.993548
|
||||
45000 7.6234559 1.0641992 1 0 53.352202
|
||||
46000 8.0659693 1.0609367 1 0 50.302682
|
||||
47000 7.5227882 1.0563543 1 0 50.43551
|
||||
48000 8.0798684 1.0628968 1 0 48.419201
|
||||
49000 7.130784 1.0594143 1 0 50.656081
|
||||
50000 7.3219268 1.0608236 1 0 54.808358
|
||||
Loop time of 1651.84 on 8 procs for 40000 steps with 16271 atoms
|
||||
|
||||
Pair time (%) = 1232.76 (74.6296)
|
||||
Neigh time (%) = 171.893 (10.4061)
|
||||
Comm time (%) = 193.625 (11.7218)
|
||||
Outpt time (%) = 0.00338289 (0.000204795)
|
||||
Other time (%) = 53.5578 (3.24231)
|
||||
|
||||
Nlocal: 2033.88 ave 2229 max 1953 min
|
||||
Histogram: 2 1 2 2 0 0 0 0 0 1
|
||||
Nghost: 2757.88 ave 2810 max 2692 min
|
||||
Histogram: 1 1 1 0 1 0 0 1 1 2
|
||||
Neighs: 30098.6 ave 37369 max 25592 min
|
||||
Histogram: 1 3 0 1 0 1 1 0 0 1
|
||||
|
||||
Total # of neighbors = 240789
|
||||
Ave neighs/atom = 14.7987
|
||||
Neighbor list builds = 2007
|
||||
Dangerous builds = 0
|
||||
|
||||
Please see the log.cite file for references relevant to this simulation
|
||||
|
||||
@ -1,9 +1,8 @@
|
||||
##########################################
|
||||
# CMake build system for coupling to the LAMMPS library
|
||||
# -*- CMake -*- file for example programs that use the LAMMPS library
|
||||
# where the library is loaded dynamically at runtime.
|
||||
##########################################
|
||||
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
# enforce out-of-source build
|
||||
if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
|
||||
@ -23,9 +22,7 @@ endif()
|
||||
# and prints lots of pointless warnings about "unsafe" functions
|
||||
if(MSVC)
|
||||
if(CMAKE_C_COMPILER_ID STREQUAL "MSVC")
|
||||
if(LAMMPS_EXCEPTIONS)
|
||||
add_compile_options(/EHsc)
|
||||
endif()
|
||||
add_compile_options(/EHsc)
|
||||
endif()
|
||||
add_compile_definitions(_CRT_SECURE_NO_WARNINGS)
|
||||
endif()
|
||||
|
||||