Merging to stay up-to-date
Merge remote-tracking branch 'lammps_upstream/master' into log_spacing
This commit is contained in:
@ -87,7 +87,8 @@ string(TOUPPER "${CMAKE_BUILD_TYPE}" BTYPE)
|
|||||||
# this is fast, so check for it all the time
|
# this is fast, so check for it all the time
|
||||||
message(STATUS "Running check for auto-generated files from make-based build system")
|
message(STATUS "Running check for auto-generated files from make-based build system")
|
||||||
file(GLOB SRC_AUTOGEN_FILES ${LAMMPS_SOURCE_DIR}/style_*.h)
|
file(GLOB SRC_AUTOGEN_FILES ${LAMMPS_SOURCE_DIR}/style_*.h)
|
||||||
list(APPEND SRC_AUTOGEN_FILES ${LAMMPS_SOURCE_DIR}/lmpinstalledpkgs.h ${LAMMPS_SOURCE_DIR}/lmpgitversion.h)
|
file(GLOB SRC_AUTOGEN_PACKAGES ${LAMMPS_SOURCE_DIR}/packages_*.h)
|
||||||
|
list(APPEND SRC_AUTOGEN_FILES ${SRC_AUTOGEN_PACKAGES} ${LAMMPS_SOURCE_DIR}/lmpinstalledpkgs.h ${LAMMPS_SOURCE_DIR}/lmpgitversion.h)
|
||||||
foreach(_SRC ${SRC_AUTOGEN_FILES})
|
foreach(_SRC ${SRC_AUTOGEN_FILES})
|
||||||
get_filename_component(FILENAME "${_SRC}" NAME)
|
get_filename_component(FILENAME "${_SRC}" NAME)
|
||||||
if(EXISTS ${LAMMPS_SOURCE_DIR}/${FILENAME})
|
if(EXISTS ${LAMMPS_SOURCE_DIR}/${FILENAME})
|
||||||
@ -172,21 +173,17 @@ set(LAMMPS_LINK_LIBS)
|
|||||||
set(LAMMPS_DEPS)
|
set(LAMMPS_DEPS)
|
||||||
set(LAMMPS_API_DEFINES)
|
set(LAMMPS_API_DEFINES)
|
||||||
|
|
||||||
set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS DIPOLE GRANULAR
|
set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE
|
||||||
KSPACE MANYBODY MC MESSAGE MISC MOLECULE PERI REPLICA RIGID SHOCK
|
GRANULAR KSPACE LATTE MANYBODY MC MESSAGE MISC MOLECULE PERI POEMS QEQ
|
||||||
SPIN SNAP SRD KIM PYTHON MSCG MPIIO VORONOI POEMS LATTE USER-ATC USER-AWPMD
|
REPLICA RIGID SHOCK SPIN SNAP SRD KIM PYTHON MSCG MPIIO VORONOI
|
||||||
USER-BOCS USER-CGDNA USER-MESO USER-CGSDK USER-COLVARS USER-DIFFRACTION
|
USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-MESO USER-CGSDK USER-COLVARS
|
||||||
USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD USER-LB USER-MANIFOLD
|
USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD USER-LB
|
||||||
USER-MEAMC USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE USER-NETCDF
|
USER-MANIFOLD USER-MEAMC USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE
|
||||||
USER-PHONON USER-PLUMED USER-PTM USER-QTB USER-REAXC USER-SCAFACOS
|
USER-NETCDF USER-PHONON USER-PLUMED USER-PTM USER-QTB USER-REAXC
|
||||||
USER-SDPD USER-SMD USER-SMTBQ USER-SPH USER-TALLY USER-UEF USER-VTK
|
USER-SCAFACOS USER-SDPD USER-SMD USER-SMTBQ USER-SPH USER-TALLY USER-UEF
|
||||||
USER-QUIP USER-QMMM USER-YAFF USER-ADIOS)
|
USER-VTK USER-QUIP USER-QMMM USER-YAFF USER-ADIOS)
|
||||||
set(ACCEL_PACKAGES USER-OMP KOKKOS OPT USER-INTEL GPU)
|
set(ACCEL_PACKAGES USER-OMP KOKKOS OPT USER-INTEL GPU)
|
||||||
set(OTHER_PACKAGES CORESHELL QEQ)
|
foreach(PKG ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES})
|
||||||
foreach(PKG ${DEFAULT_PACKAGES})
|
|
||||||
option(PKG_${PKG} "Build ${PKG} Package" OFF)
|
|
||||||
endforeach()
|
|
||||||
foreach(PKG ${ACCEL_PACKAGES} ${OTHER_PACKAGES})
|
|
||||||
option(PKG_${PKG} "Build ${PKG} Package" OFF)
|
option(PKG_${PKG} "Build ${PKG} Package" OFF)
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
@ -203,7 +200,6 @@ endif()
|
|||||||
|
|
||||||
include_directories(${LAMMPS_SOURCE_DIR})
|
include_directories(${LAMMPS_SOURCE_DIR})
|
||||||
|
|
||||||
|
|
||||||
if(PKG_USER-ADIOS)
|
if(PKG_USER-ADIOS)
|
||||||
# The search for ADIOS2 must come before MPI because
|
# The search for ADIOS2 must come before MPI because
|
||||||
# it includes its own MPI search with the latest FindMPI.cmake
|
# it includes its own MPI search with the latest FindMPI.cmake
|
||||||
@ -213,7 +209,6 @@ if(PKG_USER-ADIOS)
|
|||||||
list(APPEND LAMMPS_LINK_LIBS adios2::adios2)
|
list(APPEND LAMMPS_LINK_LIBS adios2::adios2)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
# do MPI detection after language activation, if MPI for these language is required
|
# do MPI detection after language activation, if MPI for these language is required
|
||||||
find_package(MPI QUIET)
|
find_package(MPI QUIET)
|
||||||
option(BUILD_MPI "Build MPI version" ${MPI_FOUND})
|
option(BUILD_MPI "Build MPI version" ${MPI_FOUND})
|
||||||
@ -233,7 +228,6 @@ else()
|
|||||||
list(APPEND LAMMPS_LINK_LIBS mpi_stubs)
|
list(APPEND LAMMPS_LINK_LIBS mpi_stubs)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
set(LAMMPS_SIZES "smallbig" CACHE STRING "LAMMPS integer sizes (smallsmall: all 32-bit, smallbig: 64-bit #atoms #timesteps, bigbig: also 64-bit imageint, 64-bit atom ids)")
|
set(LAMMPS_SIZES "smallbig" CACHE STRING "LAMMPS integer sizes (smallsmall: all 32-bit, smallbig: 64-bit #atoms #timesteps, bigbig: also 64-bit imageint, 64-bit atom ids)")
|
||||||
set(LAMMPS_SIZES_VALUES smallbig bigbig smallsmall)
|
set(LAMMPS_SIZES_VALUES smallbig bigbig smallsmall)
|
||||||
set_property(CACHE LAMMPS_SIZES PROPERTY STRINGS ${LAMMPS_SIZES_VALUES})
|
set_property(CACHE LAMMPS_SIZES PROPERTY STRINGS ${LAMMPS_SIZES_VALUES})
|
||||||
@ -322,7 +316,18 @@ pkg_depends(USER-SCAFACOS MPI)
|
|||||||
|
|
||||||
include(CheckIncludeFileCXX)
|
include(CheckIncludeFileCXX)
|
||||||
find_package(OpenMP QUIET)
|
find_package(OpenMP QUIET)
|
||||||
option(BUILD_OMP "Build with OpenMP support" ${OpenMP_FOUND})
|
|
||||||
|
# TODO: this is a temporary workaround until a better solution is found. AK 2019-05-30
|
||||||
|
# GNU GCC 9.x uses settings incompatible with our use of 'default(none)' in OpenMP pragmas
|
||||||
|
# where we assume older GCC semantics. For the time being, we disable OpenMP by default
|
||||||
|
# for GCC 9.x and beyond. People may manually turn it on, but need to run the script
|
||||||
|
# src/USER-OMP/hack_openmp_for_pgi_gcc9.sh on all sources to make it compatible with gcc 9.
|
||||||
|
if ((${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 9.0.0))
|
||||||
|
option(BUILD_OMP "Build with OpenMP support" OFF)
|
||||||
|
else()
|
||||||
|
option(BUILD_OMP "Build with OpenMP support" ${OpenMP_FOUND})
|
||||||
|
endif()
|
||||||
|
|
||||||
if(BUILD_OMP)
|
if(BUILD_OMP)
|
||||||
find_package(OpenMP REQUIRED)
|
find_package(OpenMP REQUIRED)
|
||||||
check_include_file_cxx(omp.h HAVE_OMP_H_INCLUDE)
|
check_include_file_cxx(omp.h HAVE_OMP_H_INCLUDE)
|
||||||
@ -446,7 +451,6 @@ else()
|
|||||||
set(CUDA_REQUEST_PIC)
|
set(CUDA_REQUEST_PIC)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
if(PKG_VORONOI)
|
if(PKG_VORONOI)
|
||||||
find_package(VORO)
|
find_package(VORO)
|
||||||
if(VORO_FOUND)
|
if(VORO_FOUND)
|
||||||
@ -895,6 +899,8 @@ foreach(PKG ${DEFAULT_PACKAGES})
|
|||||||
list(APPEND LIB_SOURCES ${${PKG}_SOURCES})
|
list(APPEND LIB_SOURCES ${${PKG}_SOURCES})
|
||||||
include_directories(${${PKG}_SOURCES_DIR})
|
include_directories(${${PKG}_SOURCES_DIR})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
RegisterPackages(${${PKG}_SOURCES_DIR})
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
# packages that need defines set
|
# packages that need defines set
|
||||||
@ -913,6 +919,8 @@ foreach(PKG ${ACCEL_PACKAGES})
|
|||||||
|
|
||||||
# check for package files in src directory due to old make system
|
# check for package files in src directory due to old make system
|
||||||
DetectBuildSystemConflict(${LAMMPS_SOURCE_DIR} ${${PKG}_SOURCES} ${${PKG}_HEADERS})
|
DetectBuildSystemConflict(${LAMMPS_SOURCE_DIR} ${${PKG}_SOURCES} ${${PKG}_HEADERS})
|
||||||
|
|
||||||
|
RegisterPackages(${${PKG}_SOURCES_DIR})
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
##############################################
|
##############################################
|
||||||
@ -961,7 +969,6 @@ if(PKG_USER-H5MD)
|
|||||||
include_directories(${HDF5_INCLUDE_DIRS})
|
include_directories(${HDF5_INCLUDE_DIRS})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
# packages which selectively include variants based on enabled styles
|
# packages which selectively include variants based on enabled styles
|
||||||
# e.g. accelerator packages
|
# e.g. accelerator packages
|
||||||
@ -1438,10 +1445,12 @@ endif()
|
|||||||
######################################################
|
######################################################
|
||||||
# Generate style headers based on global list of
|
# Generate style headers based on global list of
|
||||||
# styles registered during package selection
|
# styles registered during package selection
|
||||||
|
# Generate packages headers from all packages
|
||||||
######################################################
|
######################################################
|
||||||
set(LAMMPS_STYLE_HEADERS_DIR ${CMAKE_CURRENT_BINARY_DIR}/styles)
|
set(LAMMPS_STYLE_HEADERS_DIR ${CMAKE_CURRENT_BINARY_DIR}/styles)
|
||||||
|
|
||||||
GenerateStyleHeaders(${LAMMPS_STYLE_HEADERS_DIR})
|
GenerateStyleHeaders(${LAMMPS_STYLE_HEADERS_DIR})
|
||||||
|
GeneratePackagesHeaders(${LAMMPS_STYLE_HEADERS_DIR})
|
||||||
|
|
||||||
include_directories(${LAMMPS_STYLE_HEADERS_DIR})
|
include_directories(${LAMMPS_STYLE_HEADERS_DIR})
|
||||||
|
|
||||||
@ -1450,7 +1459,7 @@ include_directories(${LAMMPS_STYLE_HEADERS_DIR})
|
|||||||
######################################
|
######################################
|
||||||
set(temp "#ifndef LMP_INSTALLED_PKGS_H\n#define LMP_INSTALLED_PKGS_H\n")
|
set(temp "#ifndef LMP_INSTALLED_PKGS_H\n#define LMP_INSTALLED_PKGS_H\n")
|
||||||
set(temp "${temp}const char * LAMMPS_NS::LAMMPS::installed_packages[] = {\n")
|
set(temp "${temp}const char * LAMMPS_NS::LAMMPS::installed_packages[] = {\n")
|
||||||
set(temp_PKG_LIST ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES} ${OTHER_PACKAGES})
|
set(temp_PKG_LIST ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES})
|
||||||
list(SORT temp_PKG_LIST)
|
list(SORT temp_PKG_LIST)
|
||||||
foreach(PKG ${temp_PKG_LIST})
|
foreach(PKG ${temp_PKG_LIST})
|
||||||
if(PKG_${PKG})
|
if(PKG_${PKG})
|
||||||
@ -1529,8 +1538,6 @@ if(BUILD_EXE)
|
|||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Build documentation
|
# Build documentation
|
||||||
###############################################################################
|
###############################################################################
|
||||||
@ -1683,7 +1690,7 @@ endif()
|
|||||||
###############################################################################
|
###############################################################################
|
||||||
# Print package summary
|
# Print package summary
|
||||||
###############################################################################
|
###############################################################################
|
||||||
foreach(PKG ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES} ${OTHER_PACKAGES})
|
foreach(PKG ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES})
|
||||||
if(PKG_${PKG})
|
if(PKG_${PKG})
|
||||||
message(STATUS "Building package: ${PKG}")
|
message(STATUS "Building package: ${PKG}")
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@ -181,3 +181,88 @@ function(DetectBuildSystemConflict lammps_src_dir)
|
|||||||
endforeach()
|
endforeach()
|
||||||
endif()
|
endif()
|
||||||
endfunction(DetectBuildSystemConflict)
|
endfunction(DetectBuildSystemConflict)
|
||||||
|
|
||||||
|
|
||||||
|
function(FindPackagesHeaders path style_class file_pattern headers)
|
||||||
|
file(GLOB files "${path}/${file_pattern}*.h")
|
||||||
|
get_property(plist GLOBAL PROPERTY ${headers})
|
||||||
|
|
||||||
|
foreach(file_name ${files})
|
||||||
|
file(STRINGS ${file_name} is_style LIMIT_COUNT 1 REGEX ${style_class})
|
||||||
|
if(is_style)
|
||||||
|
list(APPEND plist ${file_name})
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
set_property(GLOBAL PROPERTY ${headers} "${plist}")
|
||||||
|
endfunction(FindPackagesHeaders)
|
||||||
|
|
||||||
|
function(RegisterPackages search_path)
|
||||||
|
FindPackagesHeaders(${search_path} ANGLE_CLASS angle_ PKGANGLE ) # angle ) # force
|
||||||
|
FindPackagesHeaders(${search_path} ATOM_CLASS atom_vec_ PKGATOM_VEC ) # atom ) # atom atom_vec_hybrid
|
||||||
|
FindPackagesHeaders(${search_path} BODY_CLASS body_ PKGBODY ) # body ) # atom_vec_body
|
||||||
|
FindPackagesHeaders(${search_path} BOND_CLASS bond_ PKGBOND ) # bond ) # force
|
||||||
|
FindPackagesHeaders(${search_path} COMMAND_CLASS "[^.]" PKGCOMMAND ) # command ) # input
|
||||||
|
FindPackagesHeaders(${search_path} COMPUTE_CLASS compute_ PKGCOMPUTE ) # compute ) # modify
|
||||||
|
FindPackagesHeaders(${search_path} DIHEDRAL_CLASS dihedral_ PKGDIHEDRAL ) # dihedral ) # force
|
||||||
|
FindPackagesHeaders(${search_path} DUMP_CLASS dump_ PKGDUMP ) # dump ) # output write_dump
|
||||||
|
FindPackagesHeaders(${search_path} FIX_CLASS fix_ PKGFIX ) # fix ) # modify
|
||||||
|
FindPackagesHeaders(${search_path} IMPROPER_CLASS improper_ PKGIMPROPER ) # improper ) # force
|
||||||
|
FindPackagesHeaders(${search_path} INTEGRATE_CLASS "[^.]" PKGINTEGRATE ) # integrate ) # update
|
||||||
|
FindPackagesHeaders(${search_path} KSPACE_CLASS "[^.]" PKGKSPACE ) # kspace ) # force
|
||||||
|
FindPackagesHeaders(${search_path} MINIMIZE_CLASS min_ PKGMINIMIZE ) # minimize ) # update
|
||||||
|
FindPackagesHeaders(${search_path} NBIN_CLASS nbin_ PKGNBIN ) # nbin ) # neighbor
|
||||||
|
FindPackagesHeaders(${search_path} NPAIR_CLASS npair_ PKGNPAIR ) # npair ) # neighbor
|
||||||
|
FindPackagesHeaders(${search_path} NSTENCIL_CLASS nstencil_ PKGNSTENCIL ) # nstencil ) # neighbor
|
||||||
|
FindPackagesHeaders(${search_path} NTOPO_CLASS ntopo_ PKGNTOPO ) # ntopo ) # neighbor
|
||||||
|
FindPackagesHeaders(${search_path} PAIR_CLASS pair_ PKGPAIR ) # pair ) # force
|
||||||
|
FindPackagesHeaders(${search_path} READER_CLASS reader_ PKGREADER ) # reader ) # read_dump
|
||||||
|
FindPackagesHeaders(${search_path} REGION_CLASS region_ PKGREGION ) # region ) # domain
|
||||||
|
endfunction(RegisterPackages)
|
||||||
|
|
||||||
|
function(CreatePackagesHeader path filename)
|
||||||
|
set(temp "")
|
||||||
|
if(ARGC GREATER 2)
|
||||||
|
list(REMOVE_AT ARGV 0 1)
|
||||||
|
foreach(FNAME ${ARGV})
|
||||||
|
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${FNAME}")
|
||||||
|
get_filename_component(DNAME ${FNAME} DIRECTORY)
|
||||||
|
get_filename_component(DNAME ${DNAME} NAME)
|
||||||
|
get_filename_component(FNAME ${FNAME} NAME)
|
||||||
|
set(temp "${temp}#undef PACKAGE\n#define PACKAGE \"${DNAME}\"\n")
|
||||||
|
set(temp "${temp}#include \"${DNAME}/${FNAME}\"\n")
|
||||||
|
endforeach()
|
||||||
|
endif()
|
||||||
|
message(STATUS "Generating ${filename}...")
|
||||||
|
file(WRITE "${path}/${filename}.tmp" "${temp}" )
|
||||||
|
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different "${path}/${filename}.tmp" "${path}/${filename}")
|
||||||
|
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${path}/${filename}")
|
||||||
|
endfunction(CreatePackagesHeader)
|
||||||
|
|
||||||
|
function(GeneratePackagesHeader path property style)
|
||||||
|
get_property(files GLOBAL PROPERTY ${property})
|
||||||
|
CreatePackagesHeader("${path}" "packages_${style}.h" ${files})
|
||||||
|
endfunction(GeneratePackagesHeader)
|
||||||
|
|
||||||
|
function(GeneratePackagesHeaders output_path)
|
||||||
|
GeneratePackagesHeader(${output_path} PKGANGLE angle ) # force
|
||||||
|
GeneratePackagesHeader(${output_path} PKGATOM_VEC atom ) # atom atom_vec_hybrid
|
||||||
|
GeneratePackagesHeader(${output_path} PKGBODY body ) # atom_vec_body
|
||||||
|
GeneratePackagesHeader(${output_path} PKGBOND bond ) # force
|
||||||
|
GeneratePackagesHeader(${output_path} PKGCOMMAND command ) # input
|
||||||
|
GeneratePackagesHeader(${output_path} PKGCOMPUTE compute ) # modify
|
||||||
|
GeneratePackagesHeader(${output_path} PKGDIHEDRAL dihedral ) # force
|
||||||
|
GeneratePackagesHeader(${output_path} PKGDUMP dump ) # output write_dump
|
||||||
|
GeneratePackagesHeader(${output_path} PKGFIX fix ) # modify
|
||||||
|
GeneratePackagesHeader(${output_path} PKGIMPROPER improper ) # force
|
||||||
|
GeneratePackagesHeader(${output_path} PKGINTEGRATE integrate ) # update
|
||||||
|
GeneratePackagesHeader(${output_path} PKGKSPACE kspace ) # force
|
||||||
|
GeneratePackagesHeader(${output_path} PKGMINIMIZE minimize ) # update
|
||||||
|
GeneratePackagesHeader(${output_path} PKGNBIN nbin ) # neighbor
|
||||||
|
GeneratePackagesHeader(${output_path} PKGNPAIR npair ) # neighbor
|
||||||
|
GeneratePackagesHeader(${output_path} PKGNSTENCIL nstencil ) # neighbor
|
||||||
|
GeneratePackagesHeader(${output_path} PKGNTOPO ntopo ) # neighbor
|
||||||
|
GeneratePackagesHeader(${output_path} PKGPAIR pair ) # force
|
||||||
|
GeneratePackagesHeader(${output_path} PKGREADER reader ) # read_dump
|
||||||
|
GeneratePackagesHeader(${output_path} PKGREGION region ) # domain
|
||||||
|
endfunction(GeneratePackagesHeaders)
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
.TH LAMMPS "15 May 2019" "2019-05-15"
|
.TH LAMMPS "31 May 2019" "2019-05-31"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
.B LAMMPS
|
.B LAMMPS
|
||||||
\- Molecular Dynamics Simulator.
|
\- Molecular Dynamics Simulator.
|
||||||
|
|||||||
@ -5828,6 +5828,12 @@ Must have periodic x,y dimensions and non-periodic z dimension to use
|
|||||||
Must have periodic x,y dimensions and non-periodic z dimension to use
|
Must have periodic x,y dimensions and non-periodic z dimension to use
|
||||||
2d slab option with pppm/disp. :dd
|
2d slab option with pppm/disp. :dd
|
||||||
|
|
||||||
|
{Incorrect conversion in format string} :dt
|
||||||
|
|
||||||
|
A format style variable was not using either a %f, a %g, or a %e conversion.
|
||||||
|
Or an immediate variable with format suffix was not using either
|
||||||
|
a %f, a %g or a %e conversion in the format suffix. :dd
|
||||||
|
|
||||||
{Incorrect element names in ADP potential file} :dt
|
{Incorrect element names in ADP potential file} :dt
|
||||||
|
|
||||||
The element names in the ADP file do not match those requested. :dd
|
The element names in the ADP file do not match those requested. :dd
|
||||||
@ -7448,6 +7454,11 @@ The Atoms section of a data file must come before a Triangles section. :dd
|
|||||||
The Atoms section of a data file must come before a Velocities
|
The Atoms section of a data file must come before a Velocities
|
||||||
section. :dd
|
section. :dd
|
||||||
|
|
||||||
|
{Must re-specify non-restarted pair style (xxx) after read_restart} :dt
|
||||||
|
|
||||||
|
For pair styles, that do not store their settings in a restart file,
|
||||||
|
it must be defined with a new 'pair_style' command after read_restart. :dd
|
||||||
|
|
||||||
{Must set both respa inner and outer} :dt
|
{Must set both respa inner and outer} :dt
|
||||||
|
|
||||||
Cannot use just the inner or outer option with respa without using the
|
Cannot use just the inner or outer option with respa without using the
|
||||||
@ -10049,19 +10060,19 @@ create_box command. :dd
|
|||||||
A universe or uloop style variable must specify a number of values >= to the
|
A universe or uloop style variable must specify a number of values >= to the
|
||||||
number of processor partitions. :dd
|
number of processor partitions. :dd
|
||||||
|
|
||||||
{Unknown angle style} :dt
|
{Unrecognized angle style} :dt
|
||||||
|
|
||||||
The choice of angle style is unknown. :dd
|
The choice of angle style is unknown. :dd
|
||||||
|
|
||||||
{Unknown atom style} :dt
|
{Unrecognized atom style} :dt
|
||||||
|
|
||||||
The choice of atom style is unknown. :dd
|
The choice of atom style is unknown. :dd
|
||||||
|
|
||||||
{Unknown body style} :dt
|
{Unrecognized body style} :dt
|
||||||
|
|
||||||
The choice of body style is unknown. :dd
|
The choice of body style is unknown. :dd
|
||||||
|
|
||||||
{Unknown bond style} :dt
|
{Unrecognized bond style} :dt
|
||||||
|
|
||||||
The choice of bond style is unknown. :dd
|
The choice of bond style is unknown. :dd
|
||||||
|
|
||||||
@ -10077,23 +10088,23 @@ Self-explanatory. :dd
|
|||||||
|
|
||||||
Self-explanatory. :dd
|
Self-explanatory. :dd
|
||||||
|
|
||||||
{Unknown command: %s} :dt
|
{Unrecognized command: %s} :dt
|
||||||
|
|
||||||
The command is not known to LAMMPS. Check the input script. :dd
|
The command is not known to LAMMPS. Check the input script. :dd
|
||||||
|
|
||||||
{Unknown compute style} :dt
|
{Unrecognized compute style} :dt
|
||||||
|
|
||||||
The choice of compute style is unknown. :dd
|
The choice of compute style is unknown. :dd
|
||||||
|
|
||||||
{Unknown dihedral style} :dt
|
{Unrecognized dihedral style} :dt
|
||||||
|
|
||||||
The choice of dihedral style is unknown. :dd
|
The choice of dihedral style is unknown. :dd
|
||||||
|
|
||||||
{Unknown dump reader style} :dt
|
{Unrecognized dump reader style} :dt
|
||||||
|
|
||||||
The choice of dump reader style via the format keyword is unknown. :dd
|
The choice of dump reader style via the format keyword is unknown. :dd
|
||||||
|
|
||||||
{Unknown dump style} :dt
|
{Unrecognized dump style} :dt
|
||||||
|
|
||||||
The choice of dump style is unknown. :dd
|
The choice of dump style is unknown. :dd
|
||||||
|
|
||||||
@ -10101,7 +10112,7 @@ The choice of dump style is unknown. :dd
|
|||||||
|
|
||||||
Self-explanatory. :dd
|
Self-explanatory. :dd
|
||||||
|
|
||||||
{Unknown fix style} :dt
|
{Unrecognized fix style} :dt
|
||||||
|
|
||||||
The choice of fix style is unknown. :dd
|
The choice of fix style is unknown. :dd
|
||||||
|
|
||||||
@ -10109,7 +10120,7 @@ The choice of fix style is unknown. :dd
|
|||||||
|
|
||||||
A section of the data file cannot be read by LAMMPS. :dd
|
A section of the data file cannot be read by LAMMPS. :dd
|
||||||
|
|
||||||
{Unknown improper style} :dt
|
{Unrecognized improper style} :dt
|
||||||
|
|
||||||
The choice of improper style is unknown. :dd
|
The choice of improper style is unknown. :dd
|
||||||
|
|
||||||
@ -10117,7 +10128,7 @@ The choice of improper style is unknown. :dd
|
|||||||
|
|
||||||
One or more specified keywords are not recognized. :dd
|
One or more specified keywords are not recognized. :dd
|
||||||
|
|
||||||
{Unknown kspace style} :dt
|
{Unrecognized kspace style} :dt
|
||||||
|
|
||||||
The choice of kspace style is unknown. :dd
|
The choice of kspace style is unknown. :dd
|
||||||
|
|
||||||
@ -10133,7 +10144,7 @@ Self-explanatory. :dd
|
|||||||
|
|
||||||
Self-explanatory. :dd
|
Self-explanatory. :dd
|
||||||
|
|
||||||
{Unknown pair style} :dt
|
{Unrecognized pair style} :dt
|
||||||
|
|
||||||
The choice of pair style is unknown. :dd
|
The choice of pair style is unknown. :dd
|
||||||
|
|
||||||
@ -10141,7 +10152,7 @@ The choice of pair style is unknown. :dd
|
|||||||
|
|
||||||
The choice of sub-style is unknown. :dd
|
The choice of sub-style is unknown. :dd
|
||||||
|
|
||||||
{Unknown region style} :dt
|
{Unrecognized region style} :dt
|
||||||
|
|
||||||
The choice of region style is unknown. :dd
|
The choice of region style is unknown. :dd
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<!-- HTML_ONLY -->
|
<!-- HTML_ONLY -->
|
||||||
<HEAD>
|
<HEAD>
|
||||||
<TITLE>LAMMPS Users Manual</TITLE>
|
<TITLE>LAMMPS Users Manual</TITLE>
|
||||||
<META NAME="docnumber" CONTENT="15 May 2019 version">
|
<META NAME="docnumber" CONTENT="31 May 2019 version">
|
||||||
<META NAME="author" CONTENT="http://lammps.sandia.gov - Sandia National Laboratories">
|
<META NAME="author" CONTENT="http://lammps.sandia.gov - Sandia National Laboratories">
|
||||||
<META NAME="copyright" CONTENT="Copyright (2003) Sandia Corporation. This software and manual is distributed under the GNU General Public License.">
|
<META NAME="copyright" CONTENT="Copyright (2003) Sandia Corporation. This software and manual is distributed under the GNU General Public License.">
|
||||||
</HEAD>
|
</HEAD>
|
||||||
@ -21,7 +21,7 @@
|
|||||||
:line
|
:line
|
||||||
|
|
||||||
LAMMPS Documentation :c,h1
|
LAMMPS Documentation :c,h1
|
||||||
15 May 2019 version :c,h2
|
31 May 2019 version :c,h2
|
||||||
|
|
||||||
"What is a LAMMPS version?"_Manual_version.html
|
"What is a LAMMPS version?"_Manual_version.html
|
||||||
|
|
||||||
|
|||||||
@ -208,7 +208,7 @@ available on your system.
|
|||||||
[Install:]
|
[Install:]
|
||||||
|
|
||||||
This package has "specific installation
|
This package has "specific installation
|
||||||
instructions"_Build_extras.html#gpu on the "Build
|
instructions"_Build_extras.html#compress on the "Build
|
||||||
extras"_Build_extras.html doc page.
|
extras"_Build_extras.html doc page.
|
||||||
|
|
||||||
[Supporting info:]
|
[Supporting info:]
|
||||||
@ -358,7 +358,7 @@ developed the pair style.
|
|||||||
[Install:]
|
[Install:]
|
||||||
|
|
||||||
This package has "specific installation
|
This package has "specific installation
|
||||||
instructions"_Build_extras.html#gpu on the "Build
|
instructions"_Build_extras.html#kim on the "Build
|
||||||
extras"_Build_extras.html doc page.
|
extras"_Build_extras.html doc page.
|
||||||
|
|
||||||
[Supporting info:]
|
[Supporting info:]
|
||||||
@ -404,7 +404,7 @@ lib/kokkos.
|
|||||||
[Install:]
|
[Install:]
|
||||||
|
|
||||||
This package has "specific installation
|
This package has "specific installation
|
||||||
instructions"_Build_extras.html#gpu on the "Build
|
instructions"_Build_extras.html#kokkos on the "Build
|
||||||
extras"_Build_extras.html doc page.
|
extras"_Build_extras.html doc page.
|
||||||
|
|
||||||
[Supporting info:]
|
[Supporting info:]
|
||||||
@ -477,7 +477,7 @@ Cawkwell, Anders Niklasson, and Christian Negre.
|
|||||||
[Install:]
|
[Install:]
|
||||||
|
|
||||||
This package has "specific installation
|
This package has "specific installation
|
||||||
instructions"_Build_extras.html#gpu on the "Build
|
instructions"_Build_extras.html#latte on the "Build
|
||||||
extras"_Build_extras.html doc page.
|
extras"_Build_extras.html doc page.
|
||||||
|
|
||||||
[Supporting info:]
|
[Supporting info:]
|
||||||
@ -654,7 +654,7 @@ University of Chicago.
|
|||||||
[Install:]
|
[Install:]
|
||||||
|
|
||||||
This package has "specific installation
|
This package has "specific installation
|
||||||
instructions"_Build_extras.html#gpu on the "Build
|
instructions"_Build_extras.html#mscg on the "Build
|
||||||
extras"_Build_extras.html doc page.
|
extras"_Build_extras.html doc page.
|
||||||
|
|
||||||
[Supporting info:]
|
[Supporting info:]
|
||||||
@ -686,7 +686,7 @@ and Vincent Natoli (Stone Ridge Technolgy).
|
|||||||
[Install:]
|
[Install:]
|
||||||
|
|
||||||
This package has "specific installation
|
This package has "specific installation
|
||||||
instructions"_Build_extras.html#gpu on the "Build
|
instructions"_Build_extras.html#opt on the "Build
|
||||||
extras"_Build_extras.html doc page.
|
extras"_Build_extras.html doc page.
|
||||||
|
|
||||||
[Supporting info:]
|
[Supporting info:]
|
||||||
@ -743,7 +743,7 @@ connections at hinge points.
|
|||||||
[Install:]
|
[Install:]
|
||||||
|
|
||||||
This package has "specific installation
|
This package has "specific installation
|
||||||
instructions"_Build_extras.html#gpu on the "Build
|
instructions"_Build_extras.html#poems on the "Build
|
||||||
extras"_Build_extras.html doc page.
|
extras"_Build_extras.html doc page.
|
||||||
|
|
||||||
[Supporting info:]
|
[Supporting info:]
|
||||||
@ -775,7 +775,7 @@ lib/python/README for more details.
|
|||||||
[Install:]
|
[Install:]
|
||||||
|
|
||||||
This package has "specific installation
|
This package has "specific installation
|
||||||
instructions"_Build_extras.html#gpu on the "Build
|
instructions"_Build_extras.html#python on the "Build
|
||||||
extras"_Build_extras.html doc page.
|
extras"_Build_extras.html doc page.
|
||||||
|
|
||||||
[Supporting info:]
|
[Supporting info:]
|
||||||
@ -965,7 +965,7 @@ and LBNL.
|
|||||||
[Install:]
|
[Install:]
|
||||||
|
|
||||||
This package has "specific installation
|
This package has "specific installation
|
||||||
instructions"_Build_extras.html#gpu on the "Build
|
instructions"_Build_extras.html#voronoi on the "Build
|
||||||
extras"_Build_extras.html doc page.
|
extras"_Build_extras.html doc page.
|
||||||
|
|
||||||
[Supporting info:]
|
[Supporting info:]
|
||||||
@ -1017,7 +1017,7 @@ atomic information to continuum fields.
|
|||||||
[Install:]
|
[Install:]
|
||||||
|
|
||||||
This package has "specific installation
|
This package has "specific installation
|
||||||
instructions"_Build_extras.html#gpu on the "Build
|
instructions"_Build_extras.html#user-atc on the "Build
|
||||||
extras"_Build_extras.html doc page.
|
extras"_Build_extras.html doc page.
|
||||||
|
|
||||||
[Supporting info:]
|
[Supporting info:]
|
||||||
@ -1044,7 +1044,7 @@ model.
|
|||||||
[Install:]
|
[Install:]
|
||||||
|
|
||||||
This package has "specific installation
|
This package has "specific installation
|
||||||
instructions"_Build_extras.html#gpu on the "Build
|
instructions"_Build_extras.html#user-awpmd on the "Build
|
||||||
extras"_Build_extras.html doc page.
|
extras"_Build_extras.html doc page.
|
||||||
|
|
||||||
[Supporting info:]
|
[Supporting info:]
|
||||||
@ -1184,7 +1184,7 @@ Tribello.
|
|||||||
[Install:]
|
[Install:]
|
||||||
|
|
||||||
This package has "specific installation
|
This package has "specific installation
|
||||||
instructions"_Build_extras.html#gpu on the "Build
|
instructions"_Build_extras.html#user-plumed on the "Build
|
||||||
extras"_Build_extras.html doc page.
|
extras"_Build_extras.html doc page.
|
||||||
|
|
||||||
[Supporting info:]
|
[Supporting info:]
|
||||||
@ -1362,7 +1362,7 @@ H5MD format.
|
|||||||
[Install:]
|
[Install:]
|
||||||
|
|
||||||
This package has "specific installation
|
This package has "specific installation
|
||||||
instructions"_Build_extras.html#gpu on the "Build
|
instructions"_Build_extras.html#user-h5md on the "Build
|
||||||
extras"_Build_extras.html doc page.
|
extras"_Build_extras.html doc page.
|
||||||
|
|
||||||
[Supporting info:]
|
[Supporting info:]
|
||||||
@ -1400,7 +1400,7 @@ NOTE: the USER-INTEL package contains styles that require using the
|
|||||||
[Install:]
|
[Install:]
|
||||||
|
|
||||||
This package has "specific installation
|
This package has "specific installation
|
||||||
instructions"_Build_extras.html#gpu on the "Build
|
instructions"_Build_extras.html#user-intel on the "Build
|
||||||
extras"_Build_extras.html doc page.
|
extras"_Build_extras.html doc page.
|
||||||
|
|
||||||
[Supporting info:]
|
[Supporting info:]
|
||||||
@ -1620,7 +1620,7 @@ at
|
|||||||
[Install:]
|
[Install:]
|
||||||
|
|
||||||
This package has "specific installation
|
This package has "specific installation
|
||||||
instructions"_Build_extras.html#gpu on the "Build
|
instructions"_Build_extras.html#user-molfile on the "Build
|
||||||
extras"_Build_extras.html doc page.
|
extras"_Build_extras.html doc page.
|
||||||
|
|
||||||
[Supporting info:]
|
[Supporting info:]
|
||||||
@ -1660,7 +1660,7 @@ tools:
|
|||||||
[Install:]
|
[Install:]
|
||||||
|
|
||||||
This package has "specific installation
|
This package has "specific installation
|
||||||
instructions"_Build_extras.html#gpu on the "Build
|
instructions"_Build_extras.html#user-netcdf on the "Build
|
||||||
extras"_Build_extras.html doc page.
|
extras"_Build_extras.html doc page.
|
||||||
|
|
||||||
[Supporting info:]
|
[Supporting info:]
|
||||||
@ -1704,7 +1704,7 @@ install/un-install the package and build LAMMPS in the usual manner:
|
|||||||
[Install:]
|
[Install:]
|
||||||
|
|
||||||
This package has "specific installation
|
This package has "specific installation
|
||||||
instructions"_Build_extras.html#gpu on the "Build
|
instructions"_Build_extras.html#user-omp on the "Build
|
||||||
extras"_Build_extras.html doc page.
|
extras"_Build_extras.html doc page.
|
||||||
|
|
||||||
[Supporting info:]
|
[Supporting info:]
|
||||||
@ -1788,7 +1788,7 @@ without changes to LAMMPS itself.
|
|||||||
[Install:]
|
[Install:]
|
||||||
|
|
||||||
This package has "specific installation
|
This package has "specific installation
|
||||||
instructions"_Build_extras.html#gpu on the "Build
|
instructions"_Build_extras.html#user-qmmm on the "Build
|
||||||
extras"_Build_extras.html doc page.
|
extras"_Build_extras.html doc page.
|
||||||
|
|
||||||
[Supporting info:]
|
[Supporting info:]
|
||||||
@ -1846,7 +1846,7 @@ on your system.
|
|||||||
[Install:]
|
[Install:]
|
||||||
|
|
||||||
This package has "specific installation
|
This package has "specific installation
|
||||||
instructions"_Build_extras.html#gpu on the "Build
|
instructions"_Build_extras.html#user-quip on the "Build
|
||||||
extras"_Build_extras.html doc page.
|
extras"_Build_extras.html doc page.
|
||||||
|
|
||||||
[Supporting info:]
|
[Supporting info:]
|
||||||
@ -1964,7 +1964,7 @@ Dynamics, Ernst Mach Institute, Germany).
|
|||||||
[Install:]
|
[Install:]
|
||||||
|
|
||||||
This package has "specific installation
|
This package has "specific installation
|
||||||
instructions"_Build_extras.html#gpu on the "Build
|
instructions"_Build_extras.html#user-smd on the "Build
|
||||||
extras"_Build_extras.html doc page.
|
extras"_Build_extras.html doc page.
|
||||||
|
|
||||||
[Supporting info:]
|
[Supporting info:]
|
||||||
@ -2090,7 +2090,7 @@ system.
|
|||||||
[Install:]
|
[Install:]
|
||||||
|
|
||||||
This package has "specific installation
|
This package has "specific installation
|
||||||
instructions"_Build_extras.html#gpu on the "Build
|
instructions"_Build_extras.html#user-vtk on the "Build
|
||||||
extras"_Build_extras.html doc page.
|
extras"_Build_extras.html doc page.
|
||||||
|
|
||||||
[Supporting info:]
|
[Supporting info:]
|
||||||
|
|||||||
@ -141,11 +141,16 @@ specify if this should be done.
|
|||||||
|
|
||||||
This fix writes the state of the fix to "binary restart
|
This fix writes the state of the fix to "binary restart
|
||||||
files"_restart.html. This includes information about the random
|
files"_restart.html. This includes information about the random
|
||||||
number generator seed, the next timestep for MC exchanges, etc. See
|
number generator seed, the next timestep for MC exchanges, the number
|
||||||
|
of exchange attempts and successes etc. See
|
||||||
the "read_restart"_read_restart.html command for info on how to
|
the "read_restart"_read_restart.html command for info on how to
|
||||||
re-specify a fix in an input script that reads a restart file, so that
|
re-specify a fix in an input script that reads a restart file, so that
|
||||||
the operation of the fix continues in an uninterrupted fashion.
|
the operation of the fix continues in an uninterrupted fashion.
|
||||||
|
|
||||||
|
NOTE: For this to work correctly, the timestep must [not] be changed
|
||||||
|
after reading the restart with "reset_timestep"_reset_timestep.html.
|
||||||
|
The fix will try to detect it and stop with an error.
|
||||||
|
|
||||||
None of the "fix_modify"_fix_modify.html options are relevant to this
|
None of the "fix_modify"_fix_modify.html options are relevant to this
|
||||||
fix.
|
fix.
|
||||||
|
|
||||||
|
|||||||
@ -261,6 +261,10 @@ next timestep for deposition, etc. See the
|
|||||||
a fix in an input script that reads a restart file, so that the
|
a fix in an input script that reads a restart file, so that the
|
||||||
operation of the fix continues in an uninterrupted fashion.
|
operation of the fix continues in an uninterrupted fashion.
|
||||||
|
|
||||||
|
NOTE: For this to work correctly, the timestep must [not] be changed
|
||||||
|
after reading the restart with "reset_timestep"_reset_timestep.html.
|
||||||
|
The fix will try to detect it and stop with an error.
|
||||||
|
|
||||||
None of the "fix_modify"_fix_modify.html options are relevant to this
|
None of the "fix_modify"_fix_modify.html options are relevant to this
|
||||||
fix. No global or per-atom quantities are stored by this fix for
|
fix. No global or per-atom quantities are stored by this fix for
|
||||||
access by various "output commands"_Howto_output.html. No parameter
|
access by various "output commands"_Howto_output.html. No parameter
|
||||||
|
|||||||
@ -373,11 +373,16 @@ adds all inserted atoms of the specified type to the
|
|||||||
|
|
||||||
This fix writes the state of the fix to "binary restart
|
This fix writes the state of the fix to "binary restart
|
||||||
files"_restart.html. This includes information about the random
|
files"_restart.html. This includes information about the random
|
||||||
number generator seed, the next timestep for MC exchanges, etc. See
|
number generator seed, the next timestep for MC exchanges, the number
|
||||||
|
of MC step attempts and successes etc. See
|
||||||
the "read_restart"_read_restart.html command for info on how to
|
the "read_restart"_read_restart.html command for info on how to
|
||||||
re-specify a fix in an input script that reads a restart file, so that
|
re-specify a fix in an input script that reads a restart file, so that
|
||||||
the operation of the fix continues in an uninterrupted fashion.
|
the operation of the fix continues in an uninterrupted fashion.
|
||||||
|
|
||||||
|
NOTE: For this to work correctly, the timestep must [not] be changed
|
||||||
|
after reading the restart with "reset_timestep"_reset_timestep.html.
|
||||||
|
The fix will try to detect it and stop with an error.
|
||||||
|
|
||||||
None of the "fix_modify"_fix_modify.html options are relevant to this
|
None of the "fix_modify"_fix_modify.html options are relevant to this
|
||||||
fix.
|
fix.
|
||||||
|
|
||||||
|
|||||||
@ -92,10 +92,6 @@ pairs from the neighbor list. This needs to be very carefully tested,
|
|||||||
because it may remove pairs from the neighbor list that are still
|
because it may remove pairs from the neighbor list that are still
|
||||||
required.
|
required.
|
||||||
|
|
||||||
Pair style {quip} cannot be used with pair style {hybrid}, only
|
|
||||||
with {hybrid/overlay} and only the {quip} sub-style is applied to
|
|
||||||
all atom types.
|
|
||||||
|
|
||||||
[Related commands:]
|
[Related commands:]
|
||||||
|
|
||||||
"pair_coeff"_pair_coeff.html
|
"pair_coeff"_pair_coeff.html
|
||||||
|
|||||||
1
src/.gitignore
vendored
1
src/.gitignore
vendored
@ -5,6 +5,7 @@
|
|||||||
/lmp_*
|
/lmp_*
|
||||||
|
|
||||||
/style_*.h
|
/style_*.h
|
||||||
|
/packages_*.h
|
||||||
/lmpinstalledpkgs.h
|
/lmpinstalledpkgs.h
|
||||||
/lmpgitversion.h
|
/lmpgitversion.h
|
||||||
|
|
||||||
|
|||||||
@ -200,6 +200,7 @@ void NeighBondKokkos<DeviceType>::build_topology_kk()
|
|||||||
{
|
{
|
||||||
atomKK->sync(execution_space, X_MASK | TAG_MASK);
|
atomKK->sync(execution_space, X_MASK | TAG_MASK);
|
||||||
int nall = atom->nlocal + atom->nghost;
|
int nall = atom->nlocal + atom->nghost;
|
||||||
|
int nmax = atom->nmax;
|
||||||
|
|
||||||
nlocal = atom->nlocal;
|
nlocal = atom->nlocal;
|
||||||
x = atomKK->k_x.view<DeviceType>();
|
x = atomKK->k_x.view<DeviceType>();
|
||||||
@ -215,7 +216,9 @@ void NeighBondKokkos<DeviceType>::build_topology_kk()
|
|||||||
|
|
||||||
int* map_array_host = atom->get_map_array();
|
int* map_array_host = atom->get_map_array();
|
||||||
int map_size = atom->get_map_size();
|
int map_size = atom->get_map_size();
|
||||||
k_map_array = DAT::tdual_int_1d("NeighBond:map_array",map_size);
|
int map_maxarray = atom->get_map_maxarray();
|
||||||
|
if (map_maxarray > k_map_array.extent(0))
|
||||||
|
k_map_array = DAT::tdual_int_1d("NeighBond:map_array",map_maxarray);
|
||||||
for (int i=0; i<map_size; i++)
|
for (int i=0; i<map_size; i++)
|
||||||
k_map_array.h_view[i] = map_array_host[i];
|
k_map_array.h_view[i] = map_array_host[i];
|
||||||
k_map_array.template modify<LMPHostType>();
|
k_map_array.template modify<LMPHostType>();
|
||||||
@ -223,7 +226,8 @@ void NeighBondKokkos<DeviceType>::build_topology_kk()
|
|||||||
map_array = k_map_array.view<DeviceType>();
|
map_array = k_map_array.view<DeviceType>();
|
||||||
|
|
||||||
int* sametag_host = atomKK->sametag;
|
int* sametag_host = atomKK->sametag;
|
||||||
k_sametag = DAT::tdual_int_1d("NeighBond:sametag",nall);
|
if (nmax > k_sametag.extent(0))
|
||||||
|
k_sametag = DAT::tdual_int_1d("NeighBond:sametag",nmax);
|
||||||
for (int i=0; i<nall; i++)
|
for (int i=0; i<nall; i++)
|
||||||
k_sametag.h_view[i] = sametag_host[i];
|
k_sametag.h_view[i] = sametag_host[i];
|
||||||
k_sametag.template modify<LMPHostType>();
|
k_sametag.template modify<LMPHostType>();
|
||||||
|
|||||||
@ -771,10 +771,13 @@ double FixAtomSwap::memory_usage()
|
|||||||
void FixAtomSwap::write_restart(FILE *fp)
|
void FixAtomSwap::write_restart(FILE *fp)
|
||||||
{
|
{
|
||||||
int n = 0;
|
int n = 0;
|
||||||
double list[4];
|
double list[6];
|
||||||
list[n++] = random_equal->state();
|
list[n++] = random_equal->state();
|
||||||
list[n++] = random_unequal->state();
|
list[n++] = random_unequal->state();
|
||||||
list[n++] = next_reneighbor;
|
list[n++] = ubuf(next_reneighbor).d;
|
||||||
|
list[n++] = nswap_attempts;
|
||||||
|
list[n++] = nswap_successes;
|
||||||
|
list[n++] = ubuf(update->ntimestep).d;
|
||||||
|
|
||||||
if (comm->me == 0) {
|
if (comm->me == 0) {
|
||||||
int size = n * sizeof(double);
|
int size = n * sizeof(double);
|
||||||
@ -798,5 +801,12 @@ void FixAtomSwap::restart(char *buf)
|
|||||||
seed = static_cast<int> (list[n++]);
|
seed = static_cast<int> (list[n++]);
|
||||||
random_unequal->reset(seed);
|
random_unequal->reset(seed);
|
||||||
|
|
||||||
next_reneighbor = static_cast<int> (list[n++]);
|
next_reneighbor = (bigint) ubuf(list[n++]).i;
|
||||||
|
|
||||||
|
nswap_attempts = static_cast<int>(list[n++]);
|
||||||
|
nswap_successes = static_cast<int>(list[n++]);
|
||||||
|
|
||||||
|
bigint ntimestep_restart = (bigint) ubuf(list[n++]).i;
|
||||||
|
if (ntimestep_restart != update->ntimestep)
|
||||||
|
error->all(FLERR,"Must not reset timestep when restarting fix atom/swap");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2531,10 +2531,19 @@ double FixGCMC::memory_usage()
|
|||||||
void FixGCMC::write_restart(FILE *fp)
|
void FixGCMC::write_restart(FILE *fp)
|
||||||
{
|
{
|
||||||
int n = 0;
|
int n = 0;
|
||||||
double list[4];
|
double list[12];
|
||||||
list[n++] = random_equal->state();
|
list[n++] = random_equal->state();
|
||||||
list[n++] = random_unequal->state();
|
list[n++] = random_unequal->state();
|
||||||
list[n++] = next_reneighbor;
|
list[n++] = ubuf(next_reneighbor).d;
|
||||||
|
list[n++] = ntranslation_attempts;
|
||||||
|
list[n++] = ntranslation_successes;
|
||||||
|
list[n++] = nrotation_attempts;
|
||||||
|
list[n++] = nrotation_successes;
|
||||||
|
list[n++] = ndeletion_attempts;
|
||||||
|
list[n++] = ndeletion_successes;
|
||||||
|
list[n++] = ninsertion_attempts;
|
||||||
|
list[n++] = ninsertion_successes;
|
||||||
|
list[n++] = ubuf(update->ntimestep).d;
|
||||||
|
|
||||||
if (comm->me == 0) {
|
if (comm->me == 0) {
|
||||||
int size = n * sizeof(double);
|
int size = n * sizeof(double);
|
||||||
@ -2558,7 +2567,20 @@ void FixGCMC::restart(char *buf)
|
|||||||
seed = static_cast<int> (list[n++]);
|
seed = static_cast<int> (list[n++]);
|
||||||
random_unequal->reset(seed);
|
random_unequal->reset(seed);
|
||||||
|
|
||||||
next_reneighbor = static_cast<int> (list[n++]);
|
next_reneighbor = (bigint) ubuf(list[n++]).i;
|
||||||
|
|
||||||
|
ntranslation_attempts = list[n++];
|
||||||
|
ntranslation_successes = list[n++];
|
||||||
|
nrotation_attempts = list[n++];
|
||||||
|
nrotation_successes = list[n++];
|
||||||
|
ndeletion_attempts = list[n++];
|
||||||
|
ndeletion_successes = list[n++];
|
||||||
|
ninsertion_attempts = list[n++];
|
||||||
|
ninsertion_successes = list[n++];
|
||||||
|
|
||||||
|
bigint ntimestep_restart = (bigint) ubuf(list[n++]).i;
|
||||||
|
if (ntimestep_restart != update->ntimestep)
|
||||||
|
error->all(FLERR,"Must not reset timestep when restarting fix gcmc");
|
||||||
}
|
}
|
||||||
|
|
||||||
void FixGCMC::grow_molecule_arrays(int nmolatoms) {
|
void FixGCMC::grow_molecule_arrays(int nmolatoms) {
|
||||||
|
|||||||
@ -798,11 +798,12 @@ void FixDeposit::options(int narg, char **arg)
|
|||||||
void FixDeposit::write_restart(FILE *fp)
|
void FixDeposit::write_restart(FILE *fp)
|
||||||
{
|
{
|
||||||
int n = 0;
|
int n = 0;
|
||||||
double list[4];
|
double list[5];
|
||||||
list[n++] = random->state();
|
list[n++] = random->state();
|
||||||
list[n++] = ninserted;
|
list[n++] = ninserted;
|
||||||
list[n++] = nfirst;
|
list[n++] = nfirst;
|
||||||
list[n++] = next_reneighbor;
|
list[n++] = ubuf(next_reneighbor).d;
|
||||||
|
list[n++] = ubuf(update->ntimestep).d;
|
||||||
|
|
||||||
if (comm->me == 0) {
|
if (comm->me == 0) {
|
||||||
int size = n * sizeof(double);
|
int size = n * sizeof(double);
|
||||||
@ -823,7 +824,11 @@ void FixDeposit::restart(char *buf)
|
|||||||
seed = static_cast<int> (list[n++]);
|
seed = static_cast<int> (list[n++]);
|
||||||
ninserted = static_cast<int> (list[n++]);
|
ninserted = static_cast<int> (list[n++]);
|
||||||
nfirst = static_cast<int> (list[n++]);
|
nfirst = static_cast<int> (list[n++]);
|
||||||
next_reneighbor = static_cast<int> (list[n++]);
|
next_reneighbor = (bigint) ubuf(list[n++]).i;
|
||||||
|
|
||||||
|
bigint ntimestep_restart = (bigint) ubuf(list[n++]).i;
|
||||||
|
if (ntimestep_restart != update->ntimestep)
|
||||||
|
error->all(FLERR,"Must not reset timestep when restarting this fix");
|
||||||
|
|
||||||
random->reset(seed);
|
random->reset(seed);
|
||||||
}
|
}
|
||||||
|
|||||||
72
src/Make.sh
72
src/Make.sh
@ -55,6 +55,34 @@ style () {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
packages () {
|
||||||
|
list=`grep -sl $1 */$2*.h`
|
||||||
|
if (test -e packages_$3.tmp) then
|
||||||
|
rm -f packages_$3.tmp
|
||||||
|
fi
|
||||||
|
for file in $list; do
|
||||||
|
dir="\"`dirname $file`\""
|
||||||
|
echo "#undef PACKAGE" >> packages_$3.tmp
|
||||||
|
echo "#define PACKAGE $dir" >> packages_$3.tmp
|
||||||
|
qfile="\"$file\""
|
||||||
|
echo "#include $qfile" >> packages_$3.tmp
|
||||||
|
done
|
||||||
|
if (test ! -e packages_$3.tmp) then
|
||||||
|
if (test ! -e packages_$3.h) then
|
||||||
|
touch packages_$3.h
|
||||||
|
elif (test "`cat packages_$3.h`" != "") then
|
||||||
|
rm -f packages_$3.h
|
||||||
|
touch packages_$3.h
|
||||||
|
fi
|
||||||
|
elif (test ! -e packages_$3.h) then
|
||||||
|
mv packages_$3.tmp packages_$3.h
|
||||||
|
elif (test "`diff --brief packages_$3.h packages_$3.tmp`" != "") then
|
||||||
|
mv packages_$3.tmp packages_$3.h
|
||||||
|
else
|
||||||
|
rm -f packages_$3.tmp
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# create individual style files
|
# create individual style files
|
||||||
# called by "make machine"
|
# called by "make machine"
|
||||||
# col 1 = string to search for
|
# col 1 = string to search for
|
||||||
@ -63,28 +91,30 @@ style () {
|
|||||||
# col 4 = file that includes the style file
|
# col 4 = file that includes the style file
|
||||||
# col 5 = optional 2nd file that includes the style file
|
# col 5 = optional 2nd file that includes the style file
|
||||||
|
|
||||||
if (test $1 = "style") then
|
cmd=$1
|
||||||
|
|
||||||
style ANGLE_CLASS angle_ angle force
|
if (test $cmd = "style") || (test $cmd = "packages") then
|
||||||
style ATOM_CLASS atom_vec_ atom atom atom_vec_hybrid
|
|
||||||
style BODY_CLASS body_ body atom_vec_body
|
$cmd ANGLE_CLASS angle_ angle force
|
||||||
style BOND_CLASS bond_ bond force
|
$cmd ATOM_CLASS atom_vec_ atom atom atom_vec_hybrid
|
||||||
style COMMAND_CLASS "" command input
|
$cmd BODY_CLASS body_ body atom_vec_body
|
||||||
style COMPUTE_CLASS compute_ compute modify
|
$cmd BOND_CLASS bond_ bond force
|
||||||
style DIHEDRAL_CLASS dihedral_ dihedral force
|
$cmd COMMAND_CLASS "" command input
|
||||||
style DUMP_CLASS dump_ dump output write_dump
|
$cmd COMPUTE_CLASS compute_ compute modify
|
||||||
style FIX_CLASS fix_ fix modify
|
$cmd DIHEDRAL_CLASS dihedral_ dihedral force
|
||||||
style IMPROPER_CLASS improper_ improper force
|
$cmd DUMP_CLASS dump_ dump output write_dump
|
||||||
style INTEGRATE_CLASS "" integrate update
|
$cmd FIX_CLASS fix_ fix modify
|
||||||
style KSPACE_CLASS "" kspace force
|
$cmd IMPROPER_CLASS improper_ improper force
|
||||||
style MINIMIZE_CLASS min_ minimize update
|
$cmd INTEGRATE_CLASS "" integrate update
|
||||||
style NBIN_CLASS nbin_ nbin neighbor
|
$cmd KSPACE_CLASS "" kspace force
|
||||||
style NPAIR_CLASS npair_ npair neighbor
|
$cmd MINIMIZE_CLASS min_ minimize update
|
||||||
style NSTENCIL_CLASS nstencil_ nstencil neighbor
|
$cmd NBIN_CLASS nbin_ nbin neighbor
|
||||||
style NTOPO_CLASS ntopo_ ntopo neighbor
|
$cmd NPAIR_CLASS npair_ npair neighbor
|
||||||
style PAIR_CLASS pair_ pair force
|
$cmd NSTENCIL_CLASS nstencil_ nstencil neighbor
|
||||||
style READER_CLASS reader_ reader read_dump
|
$cmd NTOPO_CLASS ntopo_ ntopo neighbor
|
||||||
style REGION_CLASS region_ region domain
|
$cmd PAIR_CLASS pair_ pair force
|
||||||
|
$cmd READER_CLASS reader_ reader read_dump
|
||||||
|
$cmd REGION_CLASS region_ region domain
|
||||||
|
|
||||||
# edit Makefile.lib, for creating non-shared lib
|
# edit Makefile.lib, for creating non-shared lib
|
||||||
# called by "make makelib"
|
# called by "make makelib"
|
||||||
|
|||||||
@ -205,6 +205,7 @@ gitversion:
|
|||||||
-f MAKE/MACHINES/Makefile.$@ -o -f MAKE/MINE/Makefile.$@
|
-f MAKE/MACHINES/Makefile.$@ -o -f MAKE/MINE/Makefile.$@
|
||||||
@if [ ! -d $(objdir) ]; then mkdir $(objdir); fi
|
@if [ ! -d $(objdir) ]; then mkdir $(objdir); fi
|
||||||
@$(SHELL) Make.sh style
|
@$(SHELL) Make.sh style
|
||||||
|
@$(SHELL) Make.sh packages
|
||||||
@$(MAKE) $(MFLAGS) lmpinstalledpkgs.h gitversion
|
@$(MAKE) $(MFLAGS) lmpinstalledpkgs.h gitversion
|
||||||
@echo 'Compiling LAMMPS for machine $@'
|
@echo 'Compiling LAMMPS for machine $@'
|
||||||
@if [ -f MAKE/MACHINES/Makefile.$@ ]; \
|
@if [ -f MAKE/MACHINES/Makefile.$@ ]; \
|
||||||
|
|||||||
@ -22,6 +22,30 @@ style_nbin.h
|
|||||||
style_npair.h
|
style_npair.h
|
||||||
style_nstencil.h
|
style_nstencil.h
|
||||||
style_ntopo.h
|
style_ntopo.h
|
||||||
|
# auto-generated packages files
|
||||||
|
packages_angle.h
|
||||||
|
packages_atom.h
|
||||||
|
packages_body.h
|
||||||
|
packages_bond.h
|
||||||
|
packages_command.h
|
||||||
|
packages_compute.h
|
||||||
|
packages_dihedral.h
|
||||||
|
packages_dump.h
|
||||||
|
packages_fix.h
|
||||||
|
packages_improper.h
|
||||||
|
packages_integrate.h
|
||||||
|
packages_kspace.h
|
||||||
|
packages_minimize.h
|
||||||
|
packages_pair.h
|
||||||
|
packages_reader.h
|
||||||
|
packages_region.h
|
||||||
|
packages_neigh_bin.h
|
||||||
|
packages_neigh_pair.h
|
||||||
|
packages_neigh_stencil.h
|
||||||
|
packages_nbin.h
|
||||||
|
packages_npair.h
|
||||||
|
packages_nstencil.h
|
||||||
|
packages_ntopo.h
|
||||||
# other auto-generated files
|
# other auto-generated files
|
||||||
lmpinstalledpkgs.h
|
lmpinstalledpkgs.h
|
||||||
lmpgitversion.h
|
lmpgitversion.h
|
||||||
|
|||||||
@ -148,12 +148,20 @@ int MPI_Finalize()
|
|||||||
|
|
||||||
double MPI_Wtime()
|
double MPI_Wtime()
|
||||||
{
|
{
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
double t;
|
||||||
|
|
||||||
|
t = GetTickCount();
|
||||||
|
t /= 1000.0;
|
||||||
|
return t;
|
||||||
|
#else
|
||||||
double time;
|
double time;
|
||||||
struct timeval tv;
|
struct timeval tv;
|
||||||
|
|
||||||
gettimeofday(&tv,NULL);
|
gettimeofday(&tv,NULL);
|
||||||
time = 1.0 * tv.tv_sec + 1.0e-6 * tv.tv_usec;
|
time = 1.0 * tv.tv_sec + 1.0e-6 * tv.tv_usec;
|
||||||
return time;
|
return time;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|||||||
@ -39,11 +39,16 @@ using namespace LAMMPS_NS;
|
|||||||
|
|
||||||
PairQUIP::PairQUIP(LAMMPS *lmp) : Pair(lmp)
|
PairQUIP::PairQUIP(LAMMPS *lmp) : Pair(lmp)
|
||||||
{
|
{
|
||||||
single_enable = 0;
|
single_enable = 0;
|
||||||
restartinfo = 0;
|
restartinfo = 0;
|
||||||
one_coeff = 1;
|
one_coeff = 1;
|
||||||
no_virial_fdotr_compute = 1;
|
no_virial_fdotr_compute = 1;
|
||||||
manybody_flag = 1;
|
manybody_flag = 1;
|
||||||
|
|
||||||
|
map = NULL;
|
||||||
|
quip_potential = NULL;
|
||||||
|
quip_file = NULL;
|
||||||
|
quip_string = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
PairQUIP::~PairQUIP()
|
PairQUIP::~PairQUIP()
|
||||||
@ -52,8 +57,10 @@ PairQUIP::~PairQUIP()
|
|||||||
memory->destroy(setflag);
|
memory->destroy(setflag);
|
||||||
memory->destroy(cutsq);
|
memory->destroy(cutsq);
|
||||||
delete [] map;
|
delete [] map;
|
||||||
delete [] quip_potential;
|
|
||||||
}
|
}
|
||||||
|
delete [] quip_potential;
|
||||||
|
delete [] quip_file;
|
||||||
|
delete [] quip_string;
|
||||||
}
|
}
|
||||||
|
|
||||||
void PairQUIP::compute(int eflag, int vflag)
|
void PairQUIP::compute(int eflag, int vflag)
|
||||||
@ -100,14 +107,14 @@ void PairQUIP::compute(int eflag, int vflag)
|
|||||||
jnum = numneigh[i];
|
jnum = numneigh[i];
|
||||||
|
|
||||||
for (jj = 0; jj < jnum; jj++) {
|
for (jj = 0; jj < jnum; jj++) {
|
||||||
quip_neigh[iquip] = (jlist[jj] & NEIGHMASK) + 1;
|
quip_neigh[iquip] = (jlist[jj] & NEIGHMASK) + 1;
|
||||||
iquip++;
|
iquip++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
atomic_numbers = new int[ntotal];
|
atomic_numbers = new int[ntotal];
|
||||||
for (ii = 0; ii < ntotal; ii++)
|
for (ii = 0; ii < ntotal; ii++)
|
||||||
atomic_numbers[ii] = map[type[ii]-1];
|
atomic_numbers[ii] = map[type[ii]];
|
||||||
|
|
||||||
quip_local_e = new double [ntotal];
|
quip_local_e = new double [ntotal];
|
||||||
quip_force = new double [ntotal*3];
|
quip_force = new double [ntotal*3];
|
||||||
@ -211,17 +218,20 @@ void PairQUIP::compute(int eflag, int vflag)
|
|||||||
global settings
|
global settings
|
||||||
------------------------------------------------------------------------- */
|
------------------------------------------------------------------------- */
|
||||||
|
|
||||||
void PairQUIP::settings(int narg, char **/*arg*/)
|
void PairQUIP::settings(int narg, char ** /* arg */)
|
||||||
{
|
{
|
||||||
if (narg != 0) error->all(FLERR,"Illegal pair_style command");
|
if (narg != 0) error->all(FLERR,"Illegal pair_style command");
|
||||||
if (strcmp(force->pair_style,"hybrid") == 0)
|
|
||||||
error->all(FLERR,"Pair style quip is only compatible with hybrid/overlay");
|
|
||||||
|
|
||||||
// check if linked to the correct QUIP library API version
|
// check if linked to the correct QUIP library API version
|
||||||
// as of 2017-07-19 this is API_VERSION 1
|
// as of 2017-07-19 this is API_VERSION 1
|
||||||
if (quip_lammps_api_version() != 1)
|
if (quip_lammps_api_version() != 1)
|
||||||
error->all(FLERR,"QUIP LAMMPS wrapper API version is not compatible "
|
error->all(FLERR,"QUIP LAMMPS wrapper API version is not compatible "
|
||||||
"with this version of LAMMPS");
|
"with this version of LAMMPS");
|
||||||
|
|
||||||
|
// QUIP potentials are parameterized in metal units
|
||||||
|
|
||||||
|
if (strcmp("metal",update->unit_style) != 0)
|
||||||
|
error->all(FLERR,"QUIP potentials require 'metal' units");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
@ -234,48 +244,58 @@ void PairQUIP::allocate()
|
|||||||
|
|
||||||
setflag = memory->create(setflag,n+1,n+1,"pair:setflag");
|
setflag = memory->create(setflag,n+1,n+1,"pair:setflag");
|
||||||
cutsq = memory->create(cutsq,n+1,n+1,"pair:cutsq");
|
cutsq = memory->create(cutsq,n+1,n+1,"pair:cutsq");
|
||||||
map = new int[n];
|
map = new int[n+1];
|
||||||
}
|
}
|
||||||
|
|
||||||
void PairQUIP::coeff(int narg, char **arg)
|
void PairQUIP::coeff(int narg, char **arg)
|
||||||
{
|
{
|
||||||
if (!allocated) allocate();
|
if (!allocated) allocate();
|
||||||
|
|
||||||
int n = atom->ntypes;
|
int n = atom->ntypes;
|
||||||
|
if (narg != (4+n)) {
|
||||||
|
char str[1024];
|
||||||
|
sprintf(str,"Number of arguments %d is not correct, it should be %d", narg, 4+n);
|
||||||
|
error->all(FLERR,str);
|
||||||
|
}
|
||||||
|
|
||||||
// ensure I,J args are * *
|
// ensure I,J args are * *
|
||||||
|
|
||||||
for (int i = 1; i <= n; i++){
|
if (strcmp(arg[0],"*") != 0 || strcmp(arg[1],"*") != 0)
|
||||||
for (int j = 1; j <= n; j++) {
|
error->all(FLERR,"Incorrect args for pair coefficients");
|
||||||
setflag[i][j] = 1;
|
|
||||||
|
n_quip_file = strlen(arg[2]);
|
||||||
|
quip_file = new char[n_quip_file+1];
|
||||||
|
strcpy(quip_file,arg[2]);
|
||||||
|
|
||||||
|
n_quip_string = strlen(arg[3]);
|
||||||
|
quip_string = new char[n_quip_string+1];
|
||||||
|
strcpy(quip_string,arg[3]);
|
||||||
|
|
||||||
|
for (int i = 4; i < narg; i++) {
|
||||||
|
if (strcmp(arg[i],"NULL") == 0)
|
||||||
|
map[i-3] = -1;
|
||||||
|
else
|
||||||
|
map[i-3] = force->inumeric(FLERR,arg[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// clear setflag since coeff() called once with I,J = * *
|
||||||
|
|
||||||
|
n = atom->ntypes;
|
||||||
|
for (int i = 1; i <= n; i++)
|
||||||
|
for (int j = i; j <= n; j++)
|
||||||
|
setflag[i][j] = 0;
|
||||||
|
|
||||||
|
// set setflag i,j for type pairs where both are mapped to elements
|
||||||
|
|
||||||
|
int count = 0;
|
||||||
|
for (int i = 1; i <= n; i++)
|
||||||
|
for (int j = i; j <= n; j++)
|
||||||
|
if (map[i] >= 0 && map[j] >= 0) {
|
||||||
|
setflag[i][j] = 1;
|
||||||
|
count++;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (narg != (4+n)) {
|
if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients");
|
||||||
char str[1024];
|
|
||||||
sprintf(str,"Number of arguments %d is not correct, it should be %d", narg, 4+n);
|
|
||||||
error->all(FLERR,str);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (strcmp(arg[0],"*") != 0 || strcmp(arg[1],"*") != 0)
|
|
||||||
error->all(FLERR,"Incorrect args for pair coefficients");
|
|
||||||
|
|
||||||
n_quip_file = strlen(arg[2]);
|
|
||||||
quip_file = new char[n_quip_file+1];
|
|
||||||
strcpy(quip_file,arg[2]);
|
|
||||||
|
|
||||||
n_quip_string = strlen(arg[3]);
|
|
||||||
quip_string = new char[n_quip_string+1];
|
|
||||||
strcpy(quip_string,arg[3]);
|
|
||||||
|
|
||||||
for (int i = 4; i < narg; i++) {
|
|
||||||
|
|
||||||
if (0 == sscanf(arg[i],"%d",&map[i-4])) {
|
|
||||||
char str[1024];
|
|
||||||
sprintf(str,"Incorrect atomic number %s at position %d",arg[i],i);
|
|
||||||
error->all(FLERR,str);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Initialise potential
|
// Initialise potential
|
||||||
// First call initialises potential via the fortran code in memory, and returns the necessary size
|
// First call initialises potential via the fortran code in memory, and returns the necessary size
|
||||||
|
|||||||
@ -26,10 +26,10 @@ extern "C"
|
|||||||
{
|
{
|
||||||
int quip_lammps_api_version();
|
int quip_lammps_api_version();
|
||||||
void quip_lammps_wrapper(int*, int*, int*, int*,
|
void quip_lammps_wrapper(int*, int*, int*, int*,
|
||||||
int*, int*, int*,
|
int*, int*, int*,
|
||||||
int*, int*, double*,
|
int*, int*, double*,
|
||||||
int*, int*, double*,
|
int*, int*, double*,
|
||||||
double*, double*, double*, double*, double*);
|
double*, double*, double*, double*, double*);
|
||||||
void quip_lammps_potential_initialise(int*, int*, double*, char*, int*, char*, int*);
|
void quip_lammps_potential_initialise(int*, int*, double*, char*, int*, char*, int*);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -34,8 +34,16 @@ double t_end;
|
|||||||
|
|
||||||
double Get_Time( )
|
double Get_Time( )
|
||||||
{
|
{
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
double t;
|
||||||
|
|
||||||
|
t = GetTickCount();
|
||||||
|
t /= 1000.0;
|
||||||
|
return t;
|
||||||
|
#else
|
||||||
gettimeofday(&tim, NULL );
|
gettimeofday(&tim, NULL );
|
||||||
return( tim.tv_sec + (tim.tv_usec / 1000000.0) );
|
return( tim.tv_sec + (tim.tv_usec / 1000000.0) );
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
int Tokenize( char* s, char*** tok )
|
int Tokenize( char* s, char*** tok )
|
||||||
|
|||||||
@ -39,6 +39,7 @@
|
|||||||
#include "math_const.h"
|
#include "math_const.h"
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
|
#include "utils.h"
|
||||||
|
|
||||||
#ifdef LMP_USER_INTEL
|
#ifdef LMP_USER_INTEL
|
||||||
#include "neigh_request.h"
|
#include "neigh_request.h"
|
||||||
@ -509,7 +510,7 @@ AtomVec *Atom::new_avec(const char *style, int trysuffix, int &sflag)
|
|||||||
return avec_creator(lmp);
|
return avec_creator(lmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
error->all(FLERR,"Unknown atom style");
|
error->all(FLERR,utils::check_packages_for_style("atom",style,lmp).c_str());
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -286,6 +286,7 @@ class Atom : protected Pointers {
|
|||||||
|
|
||||||
inline int* get_map_array() {return map_array;};
|
inline int* get_map_array() {return map_array;};
|
||||||
inline int get_map_size() {return map_tag_max+1;};
|
inline int get_map_size() {return map_tag_max+1;};
|
||||||
|
inline int get_map_maxarray() {return map_maxarray+1;};
|
||||||
|
|
||||||
bigint memory_usage();
|
bigint memory_usage();
|
||||||
int memcheck(const char *);
|
int memcheck(const char *);
|
||||||
@ -361,7 +362,7 @@ E: Atom IDs must be used for molecular systems
|
|||||||
|
|
||||||
Atom IDs are used to identify and find partner atoms in bonds.
|
Atom IDs are used to identify and find partner atoms in bonds.
|
||||||
|
|
||||||
E: Unknown atom style
|
E: Unrecognized atom style
|
||||||
|
|
||||||
The choice of atom style is unknown.
|
The choice of atom style is unknown.
|
||||||
|
|
||||||
|
|||||||
@ -25,6 +25,7 @@
|
|||||||
#include "fix.h"
|
#include "fix.h"
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
|
#include "utils.h"
|
||||||
|
|
||||||
using namespace LAMMPS_NS;
|
using namespace LAMMPS_NS;
|
||||||
|
|
||||||
@ -96,7 +97,7 @@ void AtomVecBody::process_args(int narg, char **arg)
|
|||||||
#undef BodyStyle
|
#undef BodyStyle
|
||||||
#undef BODY_CLASS
|
#undef BODY_CLASS
|
||||||
|
|
||||||
else error->all(FLERR,"Unknown body style");
|
else error->all(FLERR,utils::check_packages_for_style("body",arg[0],lmp).c_str());
|
||||||
|
|
||||||
bptr->avec = this;
|
bptr->avec = this;
|
||||||
icp = bptr->icp;
|
icp = bptr->icp;
|
||||||
|
|||||||
@ -130,7 +130,7 @@ E: Invalid atom_style body command
|
|||||||
|
|
||||||
No body style argument was provided.
|
No body style argument was provided.
|
||||||
|
|
||||||
E: Unknown body style
|
E: Unrecognized body style
|
||||||
|
|
||||||
The choice of body style is unknown.
|
The choice of body style is unknown.
|
||||||
|
|
||||||
|
|||||||
@ -40,6 +40,7 @@
|
|||||||
#include "math_const.h"
|
#include "math_const.h"
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
|
#include "utils.h"
|
||||||
|
|
||||||
using namespace LAMMPS_NS;
|
using namespace LAMMPS_NS;
|
||||||
using namespace MathConst;
|
using namespace MathConst;
|
||||||
@ -1715,6 +1716,9 @@ void Domain::add_region(int narg, char **arg)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (strcmp(arg[1],"none") == 0)
|
||||||
|
error->all(FLERR,"Unrecognized region style 'none'");
|
||||||
|
|
||||||
if (find_region(arg[0]) >= 0) error->all(FLERR,"Reuse of region ID");
|
if (find_region(arg[0]) >= 0) error->all(FLERR,"Reuse of region ID");
|
||||||
|
|
||||||
// extend Region list if necessary
|
// extend Region list if necessary
|
||||||
@ -1753,12 +1757,10 @@ void Domain::add_region(int narg, char **arg)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strcmp(arg[1],"none") == 0) error->all(FLERR,"Unknown region style");
|
|
||||||
if (region_map->find(arg[1]) != region_map->end()) {
|
if (region_map->find(arg[1]) != region_map->end()) {
|
||||||
RegionCreator region_creator = (*region_map)[arg[1]];
|
RegionCreator region_creator = (*region_map)[arg[1]];
|
||||||
regions[nregion] = region_creator(lmp, narg, arg);
|
regions[nregion] = region_creator(lmp, narg, arg);
|
||||||
}
|
} else error->all(FLERR,utils::check_packages_for_style("region",arg[1],lmp).c_str());
|
||||||
else error->all(FLERR,"Unknown region style");
|
|
||||||
|
|
||||||
// initialize any region variables via init()
|
// initialize any region variables via init()
|
||||||
// in case region is used between runs, e.g. to print a variable
|
// in case region is used between runs, e.g. to print a variable
|
||||||
|
|||||||
@ -269,7 +269,7 @@ E: Reuse of region ID
|
|||||||
|
|
||||||
A region ID cannot be used twice.
|
A region ID cannot be used twice.
|
||||||
|
|
||||||
E: Unknown region style
|
E: Unrecognized region style
|
||||||
|
|
||||||
The choice of region style is unknown.
|
The choice of region style is unknown.
|
||||||
|
|
||||||
|
|||||||
@ -258,9 +258,7 @@ Pair *Force::new_pair(const char *style, int trysuffix, int &sflag)
|
|||||||
return pair_creator(lmp);
|
return pair_creator(lmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
char str[128];
|
error->all(FLERR,utils::check_packages_for_style("pair",style,lmp).c_str());
|
||||||
sprintf(str,"Unknown pair style %s",style);
|
|
||||||
error->all(FLERR,str);
|
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@ -373,9 +371,7 @@ Bond *Force::new_bond(const char *style, int trysuffix, int &sflag)
|
|||||||
return bond_creator(lmp);
|
return bond_creator(lmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
char str[128];
|
error->all(FLERR,utils::check_packages_for_style("bond",style,lmp).c_str());
|
||||||
sprintf(str,"Unknown bond style %s",style);
|
|
||||||
error->all(FLERR,str);
|
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@ -454,9 +450,7 @@ Angle *Force::new_angle(const char *style, int trysuffix, int &sflag)
|
|||||||
return angle_creator(lmp);
|
return angle_creator(lmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
char str[128];
|
error->all(FLERR,utils::check_packages_for_style("angle",style,lmp).c_str());
|
||||||
sprintf(str,"Unknown angle style %s",style);
|
|
||||||
error->all(FLERR,str);
|
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@ -536,9 +530,7 @@ Dihedral *Force::new_dihedral(const char *style, int trysuffix, int &sflag)
|
|||||||
return dihedral_creator(lmp);
|
return dihedral_creator(lmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
char str[128];
|
error->all(FLERR,utils::check_packages_for_style("dihedral",style,lmp).c_str());
|
||||||
sprintf(str,"Unknown dihedral style %s",style);
|
|
||||||
error->all(FLERR,str);
|
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@ -617,9 +609,7 @@ Improper *Force::new_improper(const char *style, int trysuffix, int &sflag)
|
|||||||
return improper_creator(lmp);
|
return improper_creator(lmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
char str[128];
|
error->all(FLERR,utils::check_packages_for_style("improper",style,lmp).c_str());
|
||||||
sprintf(str,"Unknown improper style %s",style);
|
|
||||||
error->all(FLERR,str);
|
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@ -702,9 +692,7 @@ KSpace *Force::new_kspace(const char *style, int trysuffix, int &sflag)
|
|||||||
return kspace_creator(lmp);
|
return kspace_creator(lmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
char str[128];
|
error->all(FLERR,utils::check_packages_for_style("kspace",style,lmp).c_str());
|
||||||
sprintf(str,"Unknown kspace style %s",style);
|
|
||||||
error->all(FLERR,str);
|
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|||||||
27
src/force.h
27
src/force.h
@ -159,35 +159,36 @@ class Force : protected Pointers {
|
|||||||
|
|
||||||
E: Must re-specify non-restarted pair style (%s) after read_restart
|
E: Must re-specify non-restarted pair style (%s) after read_restart
|
||||||
|
|
||||||
UNDOCUMENTED
|
For pair styles, that do not store their settings in a restart file,
|
||||||
|
it must be defined with a new 'pair_style' command after read_restart.
|
||||||
|
|
||||||
E: Unknown pair style %s
|
E: Unrecognized pair style %s
|
||||||
|
|
||||||
UNDOCUMENTED
|
The choice of pair style is unknown.
|
||||||
|
|
||||||
E: Unknown bond style %s
|
E: Unrecognized bond style %s
|
||||||
|
|
||||||
UNDOCUMENTED
|
The choice of bond style is unknown.
|
||||||
|
|
||||||
E: Unknown angle style %s
|
E: Unrecognized angle style %s
|
||||||
|
|
||||||
UNDOCUMENTED
|
The choice of angle style is unknown.
|
||||||
|
|
||||||
E: Unknown dihedral style %s
|
E: Unrecognized dihedral style %s
|
||||||
|
|
||||||
UNDOCUMENTED
|
The choice of dihedral style is unknown.
|
||||||
|
|
||||||
E: Unknown improper style %s
|
E: Unrecognized improper style %s
|
||||||
|
|
||||||
UNDOCUMENTED
|
The choice of improper style is unknown.
|
||||||
|
|
||||||
E: Cannot yet use KSpace solver with grid with comm style tiled
|
E: Cannot yet use KSpace solver with grid with comm style tiled
|
||||||
|
|
||||||
This is current restriction in LAMMPS.
|
This is current restriction in LAMMPS.
|
||||||
|
|
||||||
E: Unknown kspace style %s
|
E: Unrecognized kspace style %s
|
||||||
|
|
||||||
UNDOCUMENTED
|
The choice of kspace style is unknown.
|
||||||
|
|
||||||
E: Illegal ... command
|
E: Illegal ... command
|
||||||
|
|
||||||
|
|||||||
@ -50,6 +50,7 @@
|
|||||||
#include "accelerator_kokkos.h"
|
#include "accelerator_kokkos.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
|
#include "utils.h"
|
||||||
|
|
||||||
#ifdef _OPENMP
|
#ifdef _OPENMP
|
||||||
#include <omp.h>
|
#include <omp.h>
|
||||||
@ -526,6 +527,11 @@ void Input::substitute(char *&str, char *&str2, int &max, int &max2, int flag)
|
|||||||
*fmtflag='\0';
|
*fmtflag='\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// quick check for proper format string
|
||||||
|
|
||||||
|
if (!utils::strmatch(fmtstr,"%[0-9 ]*\\.[0-9]+[efgEFG]"))
|
||||||
|
error->all(FLERR,"Incorrect conversion in format string");
|
||||||
|
|
||||||
snprintf(immediate,256,fmtstr,variable->compute_equal(var));
|
snprintf(immediate,256,fmtstr,variable->compute_equal(var));
|
||||||
value = immediate;
|
value = immediate;
|
||||||
|
|
||||||
|
|||||||
@ -173,6 +173,11 @@ E: Unbalanced quotes in input line
|
|||||||
No matching end double quote was found following a leading double
|
No matching end double quote was found following a leading double
|
||||||
quote.
|
quote.
|
||||||
|
|
||||||
|
E: Incorrect conversion in format string
|
||||||
|
|
||||||
|
An immediate variable with format suffix was not using
|
||||||
|
either a %f, a %g, or a %e conversion in the format suffix.
|
||||||
|
|
||||||
E: Input line quote not followed by white-space
|
E: Input line quote not followed by white-space
|
||||||
|
|
||||||
An end quote must be followed by white-space.
|
An end quote must be followed by white-space.
|
||||||
|
|||||||
172
src/lammps.cpp
172
src/lammps.cpp
@ -14,6 +14,8 @@
|
|||||||
#include <mpi.h>
|
#include <mpi.h>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <cctype>
|
#include <cctype>
|
||||||
|
#include <map>
|
||||||
|
#include <string>
|
||||||
#include "lammps.h"
|
#include "lammps.h"
|
||||||
#include "style_angle.h"
|
#include "style_angle.h"
|
||||||
#include "style_atom.h"
|
#include "style_atom.h"
|
||||||
@ -54,10 +56,29 @@
|
|||||||
#include "lmpinstalledpkgs.h"
|
#include "lmpinstalledpkgs.h"
|
||||||
#include "lmpgitversion.h"
|
#include "lmpgitversion.h"
|
||||||
|
|
||||||
using namespace LAMMPS_NS;
|
|
||||||
|
|
||||||
static void print_style(FILE *fp, const char *str, int &pos);
|
static void print_style(FILE *fp, const char *str, int &pos);
|
||||||
|
|
||||||
|
struct LAMMPS_NS::package_styles_lists {
|
||||||
|
std::map<std::string,std::string> angle_styles;
|
||||||
|
std::map<std::string,std::string> atom_styles;
|
||||||
|
std::map<std::string,std::string> body_styles;
|
||||||
|
std::map<std::string,std::string> bond_styles;
|
||||||
|
std::map<std::string,std::string> command_styles;
|
||||||
|
std::map<std::string,std::string> compute_styles;
|
||||||
|
std::map<std::string,std::string> dihedral_styles;
|
||||||
|
std::map<std::string,std::string> dump_styles;
|
||||||
|
std::map<std::string,std::string> fix_styles;
|
||||||
|
std::map<std::string,std::string> improper_styles;
|
||||||
|
std::map<std::string,std::string> integrate_styles;
|
||||||
|
std::map<std::string,std::string> kspace_styles;
|
||||||
|
std::map<std::string,std::string> minimize_styles;
|
||||||
|
std::map<std::string,std::string> pair_styles;
|
||||||
|
std::map<std::string,std::string> reader_styles;
|
||||||
|
std::map<std::string,std::string> region_styles;
|
||||||
|
};
|
||||||
|
|
||||||
|
using namespace LAMMPS_NS;
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
start up LAMMPS
|
start up LAMMPS
|
||||||
allocate fundamental classes (memory, error, universe, input)
|
allocate fundamental classes (memory, error, universe, input)
|
||||||
@ -86,6 +107,8 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator) :
|
|||||||
|
|
||||||
initclock = MPI_Wtime();
|
initclock = MPI_Wtime();
|
||||||
|
|
||||||
|
init_pkg_lists();
|
||||||
|
|
||||||
// check if -mpi is first arg
|
// check if -mpi is first arg
|
||||||
// if so, then 2 apps were launched with one mpirun command
|
// if so, then 2 apps were launched with one mpirun command
|
||||||
// this means passed communicator (e.g. MPI_COMM_WORLD) is bigger than LAMMPS
|
// this means passed communicator (e.g. MPI_COMM_WORLD) is bigger than LAMMPS
|
||||||
@ -693,6 +716,8 @@ LAMMPS::~LAMMPS()
|
|||||||
delete universe;
|
delete universe;
|
||||||
delete error;
|
delete error;
|
||||||
delete memory;
|
delete memory;
|
||||||
|
|
||||||
|
delete pkg_lists;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
@ -867,6 +892,149 @@ void LAMMPS::destroy()
|
|||||||
python = NULL;
|
python = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ----------------------------------------------------------------------
|
||||||
|
initialize lists of styles in packages
|
||||||
|
------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
void LAMMPS::init_pkg_lists()
|
||||||
|
{
|
||||||
|
pkg_lists = new package_styles_lists;
|
||||||
|
#define PACKAGE "UNKNOWN"
|
||||||
|
#define ANGLE_CLASS
|
||||||
|
#define AngleStyle(key,Class) \
|
||||||
|
pkg_lists->angle_styles[#key] = PACKAGE;
|
||||||
|
#include "packages_angle.h"
|
||||||
|
#undef AngleStyle
|
||||||
|
#undef ANGLE_CLASS
|
||||||
|
#define ATOM_CLASS
|
||||||
|
#define AtomStyle(key,Class) \
|
||||||
|
pkg_lists->atom_styles[#key] = PACKAGE;
|
||||||
|
#include "packages_atom.h"
|
||||||
|
#undef AtomStyle
|
||||||
|
#undef ATOM_CLASS
|
||||||
|
#define BODY_CLASS
|
||||||
|
#define BodyStyle(key,Class) \
|
||||||
|
pkg_lists->body_styles[#key] = PACKAGE;
|
||||||
|
#include "packages_body.h"
|
||||||
|
#undef BodyStyle
|
||||||
|
#undef BODY_CLASS
|
||||||
|
#define BOND_CLASS
|
||||||
|
#define BondStyle(key,Class) \
|
||||||
|
pkg_lists->bond_styles[#key] = PACKAGE;
|
||||||
|
#include "packages_bond.h"
|
||||||
|
#undef BondStyle
|
||||||
|
#undef BOND_CLASS
|
||||||
|
#define COMMAND_CLASS
|
||||||
|
#define CommandStyle(key,Class) \
|
||||||
|
pkg_lists->command_styles[#key] = PACKAGE;
|
||||||
|
#include "packages_command.h"
|
||||||
|
#undef CommandStyle
|
||||||
|
#undef COMMAND_CLASS
|
||||||
|
#define COMPUTE_CLASS
|
||||||
|
#define ComputeStyle(key,Class) \
|
||||||
|
pkg_lists->compute_styles[#key] = PACKAGE;
|
||||||
|
#include "packages_compute.h"
|
||||||
|
#undef ComputeStyle
|
||||||
|
#undef COMPUTE_CLASS
|
||||||
|
#define DIHEDRAL_CLASS
|
||||||
|
#define DihedralStyle(key,Class) \
|
||||||
|
pkg_lists->dihedral_styles[#key] = PACKAGE;
|
||||||
|
#include "packages_dihedral.h"
|
||||||
|
#undef DihedralStyle
|
||||||
|
#undef DIHEDRAL_CLASS
|
||||||
|
#define DUMP_CLASS
|
||||||
|
#define DumpStyle(key,Class) \
|
||||||
|
pkg_lists->dump_styles[#key] = PACKAGE;
|
||||||
|
#include "packages_dump.h"
|
||||||
|
#undef DumpStyle
|
||||||
|
#undef DUMP_CLASS
|
||||||
|
#define FIX_CLASS
|
||||||
|
#define FixStyle(key,Class) \
|
||||||
|
pkg_lists->fix_styles[#key] = PACKAGE;
|
||||||
|
#include "packages_fix.h"
|
||||||
|
#undef FixStyle
|
||||||
|
#undef FIX_CLASS
|
||||||
|
#define IMPROPER_CLASS
|
||||||
|
#define ImproperStyle(key,Class) \
|
||||||
|
pkg_lists->improper_styles[#key] = PACKAGE;
|
||||||
|
#include "packages_improper.h"
|
||||||
|
#undef ImproperStyle
|
||||||
|
#undef IMPROPER_CLASS
|
||||||
|
#define INTEGRATE_CLASS
|
||||||
|
#define IntegrateStyle(key,Class) \
|
||||||
|
pkg_lists->integrate_styles[#key] = PACKAGE;
|
||||||
|
#include "packages_integrate.h"
|
||||||
|
#undef IntegrateStyle
|
||||||
|
#undef INTEGRATE_CLASS
|
||||||
|
#define KSPACE_CLASS
|
||||||
|
#define KSpaceStyle(key,Class) \
|
||||||
|
pkg_lists->kspace_styles[#key] = PACKAGE;
|
||||||
|
#include "packages_kspace.h"
|
||||||
|
#undef KSpaceStyle
|
||||||
|
#undef KSPACE_CLASS
|
||||||
|
#define MINIMIZE_CLASS
|
||||||
|
#define MinimizeStyle(key,Class) \
|
||||||
|
pkg_lists->minimize_styles[#key] = PACKAGE;
|
||||||
|
#include "packages_minimize.h"
|
||||||
|
#undef MinimizeStyle
|
||||||
|
#undef MINIMIZE_CLASS
|
||||||
|
#define PAIR_CLASS
|
||||||
|
#define PairStyle(key,Class) \
|
||||||
|
pkg_lists->pair_styles[#key] = PACKAGE;
|
||||||
|
#include "packages_pair.h"
|
||||||
|
#undef PairStyle
|
||||||
|
#undef PAIR_CLASS
|
||||||
|
#define READER_CLASS
|
||||||
|
#define ReaderStyle(key,Class) \
|
||||||
|
pkg_lists->reader_styles[#key] = PACKAGE;
|
||||||
|
#include "packages_reader.h"
|
||||||
|
#undef ReaderStyle
|
||||||
|
#undef READER_CLASS
|
||||||
|
#define REGION_CLASS
|
||||||
|
#define RegionStyle(key,Class) \
|
||||||
|
pkg_lists->region_styles[#key] = PACKAGE;
|
||||||
|
#include "packages_region.h"
|
||||||
|
#undef RegionStyle
|
||||||
|
#undef REGION_CLASS
|
||||||
|
}
|
||||||
|
|
||||||
|
bool LAMMPS::is_installed_pkg(const char *pkg)
|
||||||
|
{
|
||||||
|
for (int i=0; installed_packages[i] != NULL; ++i)
|
||||||
|
if (strcmp(installed_packages[i],pkg) == 0) return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define check_for_match(style,list,name) \
|
||||||
|
if (strcmp(list,#style) == 0) { \
|
||||||
|
std::map<std::string,std::string> &styles(pkg_lists-> style ## _styles); \
|
||||||
|
if (styles.find(name) != styles.end()) { \
|
||||||
|
return styles[name].c_str(); \
|
||||||
|
} \
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *LAMMPS::match_style(const char *style, const char *name)
|
||||||
|
{
|
||||||
|
check_for_match(angle,style,name);
|
||||||
|
check_for_match(atom,style,name);
|
||||||
|
check_for_match(body,style,name);
|
||||||
|
check_for_match(bond,style,name);
|
||||||
|
check_for_match(command,style,name);
|
||||||
|
check_for_match(compute,style,name);
|
||||||
|
check_for_match(dump,style,name);
|
||||||
|
check_for_match(fix,style,name);
|
||||||
|
check_for_match(compute,style,name);
|
||||||
|
check_for_match(improper,style,name);
|
||||||
|
check_for_match(integrate,style,name);
|
||||||
|
check_for_match(kspace,style,name);
|
||||||
|
check_for_match(minimize,style,name);
|
||||||
|
check_for_match(pair,style,name);
|
||||||
|
check_for_match(reader,style,name);
|
||||||
|
check_for_match(region,style,name);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
help message for command line options and styles present in executable
|
help message for command line options and styles present in executable
|
||||||
------------------------------------------------------------------------- */
|
------------------------------------------------------------------------- */
|
||||||
|
|||||||
@ -63,7 +63,9 @@ class LAMMPS {
|
|||||||
|
|
||||||
class CiteMe *citeme; // citation info
|
class CiteMe *citeme; // citation info
|
||||||
|
|
||||||
|
const char *match_style(const char *style, const char *name);
|
||||||
static const char * installed_packages[];
|
static const char * installed_packages[];
|
||||||
|
static bool is_installed_pkg(const char *pkg);
|
||||||
|
|
||||||
static const bool has_git_info;
|
static const bool has_git_info;
|
||||||
static const char git_commit[];
|
static const char git_commit[];
|
||||||
@ -79,6 +81,8 @@ class LAMMPS {
|
|||||||
void print_config(FILE *); // print compile time settings
|
void print_config(FILE *); // print compile time settings
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
struct package_styles_lists *pkg_lists;
|
||||||
|
void init_pkg_lists();
|
||||||
void help();
|
void help();
|
||||||
LAMMPS() {}; // prohibit using the default constructor
|
LAMMPS() {}; // prohibit using the default constructor
|
||||||
LAMMPS(const LAMMPS &) {}; // prohibit using the copy constructor
|
LAMMPS(const LAMMPS &) {}; // prohibit using the copy constructor
|
||||||
|
|||||||
@ -18,8 +18,8 @@
|
|||||||
#define pclose _pclose
|
#define pclose _pclose
|
||||||
#define strdup _strdup
|
#define strdup _strdup
|
||||||
|
|
||||||
// the following functions ared defined to get rid of
|
// the following functions are defined to get rid of
|
||||||
// 'ambiguous call to overloaded function' error in VSS for mismathched type arguments
|
// 'ambiguous call to overloaded function' error in VSS for mismatched type arguments
|
||||||
#if !defined(__MINGW32__)
|
#if !defined(__MINGW32__)
|
||||||
inline double pow(int i, int j){
|
inline double pow(int i, int j){
|
||||||
return pow((double)i,j);
|
return pow((double)i,j);
|
||||||
|
|||||||
@ -893,11 +893,8 @@ void Modify::add_fix(int narg, char **arg, int trysuffix)
|
|||||||
fix[ifix] = fix_creator(lmp,narg,arg);
|
fix[ifix] = fix_creator(lmp,narg,arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fix[ifix] == NULL) {
|
if (fix[ifix] == NULL)
|
||||||
char str[128];
|
error->all(FLERR,utils::check_packages_for_style("fix",arg[2],lmp).c_str());
|
||||||
snprintf(str,128,"Unknown fix style %s",arg[2]);
|
|
||||||
error->all(FLERR,str);
|
|
||||||
}
|
|
||||||
|
|
||||||
// check if Fix is in restart_global list
|
// check if Fix is in restart_global list
|
||||||
// if yes, pass state info to the Fix so it can reset itself
|
// if yes, pass state info to the Fix so it can reset itself
|
||||||
@ -1195,11 +1192,8 @@ void Modify::add_compute(int narg, char **arg, int trysuffix)
|
|||||||
compute[ncompute] = compute_creator(lmp,narg,arg);
|
compute[ncompute] = compute_creator(lmp,narg,arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (compute[ncompute] == NULL) {
|
if (compute[ncompute] == NULL)
|
||||||
char str[128];
|
error->all(FLERR,utils::check_packages_for_style("compute",arg[2],lmp).c_str());
|
||||||
snprintf(str,128,"Unknown compute style %s",arg[2]);
|
|
||||||
error->all(FLERR,str);
|
|
||||||
}
|
|
||||||
|
|
||||||
ncompute++;
|
ncompute++;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -224,9 +224,9 @@ The ID and style of a fix match for a fix you are changing with a fix
|
|||||||
command, but the new group you are specifying does not match the old
|
command, but the new group you are specifying does not match the old
|
||||||
group.
|
group.
|
||||||
|
|
||||||
E: Unknown fix style %s
|
E: Unrecognized fix style %s
|
||||||
|
|
||||||
UNDOCUMENTED
|
The choice of fix style is unknown.
|
||||||
|
|
||||||
E: Could not find fix_modify ID
|
E: Could not find fix_modify ID
|
||||||
|
|
||||||
@ -240,9 +240,9 @@ E: Reuse of compute ID
|
|||||||
|
|
||||||
A compute ID cannot be used twice.
|
A compute ID cannot be used twice.
|
||||||
|
|
||||||
E: Unknown compute style %s
|
E: Unrecognized compute style %s
|
||||||
|
|
||||||
UNDOCUMENTED
|
The choice of compute style is unknown.
|
||||||
|
|
||||||
E: Could not find compute_modify ID
|
E: Could not find compute_modify ID
|
||||||
|
|
||||||
|
|||||||
@ -32,6 +32,7 @@
|
|||||||
#include "write_restart.h"
|
#include "write_restart.h"
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
|
#include "utils.h"
|
||||||
|
|
||||||
using namespace LAMMPS_NS;
|
using namespace LAMMPS_NS;
|
||||||
|
|
||||||
@ -585,8 +586,7 @@ void Output::add_dump(int narg, char **arg)
|
|||||||
if (dump_map->find(arg[2]) != dump_map->end()) {
|
if (dump_map->find(arg[2]) != dump_map->end()) {
|
||||||
DumpCreator dump_creator = (*dump_map)[arg[2]];
|
DumpCreator dump_creator = (*dump_map)[arg[2]];
|
||||||
dump[ndump] = dump_creator(lmp, narg, arg);
|
dump[ndump] = dump_creator(lmp, narg, arg);
|
||||||
}
|
} else error->all(FLERR,utils::check_packages_for_style("dump",arg[2],lmp).c_str());
|
||||||
else error->all(FLERR,"Unknown dump style");
|
|
||||||
|
|
||||||
every_dump[ndump] = force->inumeric(FLERR,arg[3]);
|
every_dump[ndump] = force->inumeric(FLERR,arg[3]);
|
||||||
if (every_dump[ndump] <= 0) error->all(FLERR,"Illegal dump command");
|
if (every_dump[ndump] <= 0) error->all(FLERR,"Illegal dump command");
|
||||||
|
|||||||
@ -152,7 +152,7 @@ E: Invalid dump frequency
|
|||||||
|
|
||||||
Dump frequency must be 1 or greater.
|
Dump frequency must be 1 or greater.
|
||||||
|
|
||||||
E: Unknown dump style
|
E: Unrecognized dump style
|
||||||
|
|
||||||
The choice of dump style is unknown.
|
The choice of dump style is unknown.
|
||||||
|
|
||||||
|
|||||||
@ -40,6 +40,7 @@
|
|||||||
#include "variable.h"
|
#include "variable.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
|
#include "utils.h"
|
||||||
|
|
||||||
using namespace LAMMPS_NS;
|
using namespace LAMMPS_NS;
|
||||||
|
|
||||||
@ -266,7 +267,7 @@ void ReadDump::setup_reader(int narg, char **arg)
|
|||||||
|
|
||||||
// unrecognized style
|
// unrecognized style
|
||||||
|
|
||||||
else error->all(FLERR,"Unknown dump reader style");
|
else error->all(FLERR,utils::check_packages_for_style("reader",readerstyle,lmp).c_str());
|
||||||
|
|
||||||
// pass any arguments to readers
|
// pass any arguments to readers
|
||||||
|
|
||||||
|
|||||||
@ -134,7 +134,7 @@ E: Dump file does not contain requested snapshot
|
|||||||
|
|
||||||
Self-explanatory.
|
Self-explanatory.
|
||||||
|
|
||||||
E: Unknown dump reader style
|
E: Unrecognized dump reader style
|
||||||
|
|
||||||
The choice of dump reader style via the format keyword is unknown.
|
The choice of dump reader style via the format keyword is unknown.
|
||||||
|
|
||||||
|
|||||||
@ -11,8 +11,10 @@
|
|||||||
See the README file in the top-level LAMMPS directory.
|
See the README file in the top-level LAMMPS directory.
|
||||||
------------------------------------------------------------------------- */
|
------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
#include <mpi.h>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
#include "lammps.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
|
|
||||||
/*! \file utils.cpp */
|
/*! \file utils.cpp */
|
||||||
@ -123,6 +125,24 @@ void utils::sfgets(const char *srcname, int srcline, char *s, int size,
|
|||||||
|
|
||||||
/* ------------------------------------------------------------------ */
|
/* ------------------------------------------------------------------ */
|
||||||
|
|
||||||
|
std::string utils::check_packages_for_style(std::string style,
|
||||||
|
std::string name, LAMMPS *lmp)
|
||||||
|
{
|
||||||
|
std::string errmsg = "Unrecognized " + style + " style '" + name + "'";
|
||||||
|
const char *pkg = lmp->match_style(style.c_str(),name.c_str());
|
||||||
|
|
||||||
|
if (pkg) {
|
||||||
|
errmsg += " is part of the " + std::string(pkg) + " package";
|
||||||
|
if (lmp->is_installed_pkg(pkg))
|
||||||
|
errmsg += ", but seems to be missing because of a dependency";
|
||||||
|
else
|
||||||
|
errmsg += " which is not enabled in this LAMMPS binary.";
|
||||||
|
}
|
||||||
|
return errmsg;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------------ */
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
/* Typedef'd pointer to get abstract datatype. */
|
/* Typedef'd pointer to get abstract datatype. */
|
||||||
typedef struct regex_t *re_t;
|
typedef struct regex_t *re_t;
|
||||||
|
|||||||
10
src/utils.h
10
src/utils.h
@ -23,6 +23,7 @@ namespace LAMMPS_NS {
|
|||||||
|
|
||||||
// forward declarations
|
// forward declarations
|
||||||
class Error;
|
class Error;
|
||||||
|
class LAMMPS;
|
||||||
|
|
||||||
namespace utils {
|
namespace utils {
|
||||||
|
|
||||||
@ -66,6 +67,15 @@ namespace LAMMPS_NS {
|
|||||||
*/
|
*/
|
||||||
void sfgets(const char *srcname, int srcline, char *s, int size,
|
void sfgets(const char *srcname, int srcline, char *s, int size,
|
||||||
FILE *fp, const char *filename, Error *error);
|
FILE *fp, const char *filename, Error *error);
|
||||||
|
|
||||||
|
/** \brief Report if a requested style is in a package or may have a typo
|
||||||
|
*
|
||||||
|
* \param style type of style that is to be checked for
|
||||||
|
* \param name name of style that was not found
|
||||||
|
* \param lmp pointer to top-level LAMMPS class instance
|
||||||
|
* \return string usable for error messages
|
||||||
|
*/
|
||||||
|
std::string check_packages_for_style(std::string style, std::string name, LAMMPS *lmp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -38,6 +38,7 @@
|
|||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
#include "info.h"
|
#include "info.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
|
#include "utils.h"
|
||||||
|
|
||||||
using namespace LAMMPS_NS;
|
using namespace LAMMPS_NS;
|
||||||
using namespace MathConst;
|
using namespace MathConst;
|
||||||
@ -383,6 +384,8 @@ void Variable::set(int narg, char **arg)
|
|||||||
num[nvar] = 3;
|
num[nvar] = 3;
|
||||||
which[nvar] = 0;
|
which[nvar] = 0;
|
||||||
pad[nvar] = 0;
|
pad[nvar] = 0;
|
||||||
|
if (!utils::strmatch(arg[3],"%[0-9 ]*\\.[0-9]+[efgEFG]"))
|
||||||
|
error->all(FLERR,"Incorrect conversion in format string");
|
||||||
data[nvar] = new char*[num[nvar]];
|
data[nvar] = new char*[num[nvar]];
|
||||||
copy(2,&arg[2],data[nvar]);
|
copy(2,&arg[2],data[nvar]);
|
||||||
data[nvar][2] = new char[VALUELENGTH];
|
data[nvar][2] = new char[VALUELENGTH];
|
||||||
|
|||||||
@ -210,6 +210,10 @@ E: Invalid variable style with next command
|
|||||||
Variable styles {equal} and {world} cannot be used in a next
|
Variable styles {equal} and {world} cannot be used in a next
|
||||||
command.
|
command.
|
||||||
|
|
||||||
|
E: Incorrect conversion in format string
|
||||||
|
|
||||||
|
A format style variable was not using either a %f, a %g, or a %e conversion.
|
||||||
|
|
||||||
E: Next command must list all universe and uloop variables
|
E: Next command must list all universe and uloop variables
|
||||||
|
|
||||||
This is to insure they stay in sync.
|
This is to insure they stay in sync.
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
#define LAMMPS_VERSION "15 May 2019"
|
#define LAMMPS_VERSION "31 May 2019"
|
||||||
|
|||||||
@ -26,6 +26,7 @@
|
|||||||
#include "input.h"
|
#include "input.h"
|
||||||
#include "update.h"
|
#include "update.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
|
#include "utils.h"
|
||||||
|
|
||||||
using namespace LAMMPS_NS;
|
using namespace LAMMPS_NS;
|
||||||
|
|
||||||
@ -64,7 +65,7 @@ void WriteDump::command(int narg, char **arg)
|
|||||||
#include "style_dump.h"
|
#include "style_dump.h"
|
||||||
#undef DUMP_CLASS
|
#undef DUMP_CLASS
|
||||||
|
|
||||||
else error->all(FLERR,"Unknown dump style");
|
else error->all(FLERR,utils::check_packages_for_style("dump",arg[1],lmp).c_str());
|
||||||
|
|
||||||
if (modindex < narg) dump->modify_params(narg-modindex-1,&arg[modindex+1]);
|
if (modindex < narg) dump->modify_params(narg-modindex-1,&arg[modindex+1]);
|
||||||
|
|
||||||
|
|||||||
@ -43,7 +43,7 @@ Self-explanatory. Check the input script syntax and compare to the
|
|||||||
documentation for the command. You can use -echo screen as a
|
documentation for the command. You can use -echo screen as a
|
||||||
command-line option when running LAMMPS to see the offending line.
|
command-line option when running LAMMPS to see the offending line.
|
||||||
|
|
||||||
E: Unknown dump style
|
E: Unrecognized dump style
|
||||||
|
|
||||||
The choice of dump style is unknown.
|
The choice of dump style is unknown.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user