Compare commits
No commits in common. "develop" and "release" have entirely different histories.
|
@ -50,7 +50,6 @@ src/PTM/* @pmla
|
|||
src/QMMM/* @akohlmey
|
||||
src/REACTION/* @jrgissing
|
||||
src/REAXFF/* @hasanmetin @stanmoore1
|
||||
src/RHEO/* @jtclemm
|
||||
src/SCAFACOS/* @rhalver
|
||||
src/SNAP/* @athomps
|
||||
src/SPIN/* @julient31
|
||||
|
|
|
@ -164,22 +164,6 @@ if(MSVC)
|
|||
add_compile_definitions(_CRT_SECURE_NO_WARNINGS)
|
||||
endif()
|
||||
|
||||
# warn about potentially problematic GCC compiler versions
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||
if (CMAKE_CXX_STANDARD GREATER_EQUAL 17)
|
||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9.0)
|
||||
message(WARNING "Using ${CMAKE_CXX_COMPILER_ID} compiler version ${CMAKE_CXX_COMPILER_VERSION} "
|
||||
"with C++17 is not recommended. Please use ${CMAKE_CXX_COMPILER_ID} compiler version 9.x or later")
|
||||
endif()
|
||||
endif()
|
||||
if (CMAKE_CXX_STANDARD GREATER_EQUAL 11)
|
||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0)
|
||||
message(WARNING "Using ${CMAKE_CXX_COMPILER_ID} compiler version ${CMAKE_CXX_COMPILER_VERSION} "
|
||||
"with C++11 is not recommended. Please use ${CMAKE_CXX_COMPILER_ID} compiler version 5.x or later")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# export all symbols when building a .dll file on windows
|
||||
if((CMAKE_SYSTEM_NAME STREQUAL "Windows") AND BUILD_SHARED_LIBS)
|
||||
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
||||
|
@ -214,12 +198,13 @@ set(LAMMPS_BINARY lmp${LAMMPS_MACHINE})
|
|||
option(BUILD_SHARED_LIBS "Build shared library" OFF)
|
||||
option(CMAKE_POSITION_INDEPENDENT_CODE "Create object compatible with shared libraries" ON)
|
||||
option(BUILD_TOOLS "Build and install LAMMPS tools (msi2lmp, binary2txt, chain)" OFF)
|
||||
option(BUILD_LAMMPS_SHELL "Build and install the LAMMPS shell" OFF)
|
||||
option(BUILD_LAMMPS_GUI "Build and install the LAMMPS GUI" OFF)
|
||||
|
||||
# Support using clang-tidy for C++ files with selected options
|
||||
set(ENABLE_CLANG_TIDY OFF CACHE BOOL "Include clang-tidy processing when compiling")
|
||||
if(ENABLE_CLANG_TIDY)
|
||||
set(CMAKE_CXX_CLANG_TIDY "clang-tidy;-checks=-*,performance-trivially-destructible,performance-unnecessary-copy-initialization,performance-unnecessary-value-param,readability-redundant-control-flow,readability-redundant-declaration,readability-redundant-function-ptr-dereference,readability-redundant-member-init,readability-redundant-string-cstr,readability-redundant-string-init,readability-simplify-boolean-expr,readability-static-accessed-through-instance,readability-static-definition-in-anonymous-namespace,readability-qualified-auto,misc-unused-parameters,modernize-deprecated-ios-base-aliases,modernize-loop-convert,modernize-shrink-to-fit,modernize-use-auto,modernize-use-using,modernize-use-override,modernize-use-bool-literals,modernize-use-emplace,modernize-return-braced-init-list,modernize-use-equals-default,modernize-use-equals-delete,modernize-replace-random-shuffle,modernize-deprecated-headers,modernize-use-nullptr,modernize-use-noexcept,modernize-redundant-void-arg;-fix;-header-filter=.*,header-filter=library.h,header-filter=fmt/*.h" CACHE STRING "clang-tidy settings")
|
||||
set(CMAKE_CXX_CLANG_TIDY "clang-tidy;-checks=-*,performance-trivially-destructible,performance-unnecessary-copy-initialization,performance-unnecessary-value-param,readability-redundant-control-flow,readability-redundant-declaration,readability-redundant-function-ptr-dereference,readability-redundant-member-init,readability-redundant-string-cstr,readability-redundant-string-init,readability-simplify-boolean-expr,readability-static-accessed-through-instance,readability-static-definition-in-anonymous-namespace,modernize-use-override,modernize-use-bool-literals,modernize-use-emplace,modernize-return-braced-init-list,modernize-use-equals-default,modernize-use-equals-delete,modernize-replace-random-shuffle,modernize-deprecated-headers,modernize-use-nullptr,modernize-use-noexcept,modernize-redundant-void-arg;-fix;-header-filter=.*,header-filter=library.h,header-filter=fmt/*.h" CACHE STRING "clang-tidy settings")
|
||||
else()
|
||||
unset(CMAKE_CXX_CLANG_TIDY CACHE)
|
||||
endif()
|
||||
|
@ -321,7 +306,6 @@ set(STANDARD_PACKAGES
|
|||
REACTION
|
||||
REAXFF
|
||||
REPLICA
|
||||
RHEO
|
||||
RIGID
|
||||
SCAFACOS
|
||||
SHOCK
|
||||
|
@ -426,7 +410,6 @@ pkg_depends(CG-DNA ASPHERE)
|
|||
pkg_depends(ELECTRODE KSPACE)
|
||||
pkg_depends(EXTRA-MOLECULE MOLECULE)
|
||||
pkg_depends(MESONT MOLECULE)
|
||||
pkg_depends(RHEO BPM)
|
||||
|
||||
# detect if we may enable OpenMP support by default
|
||||
set(BUILD_OMP_DEFAULT OFF)
|
||||
|
@ -567,7 +550,7 @@ else()
|
|||
endif()
|
||||
|
||||
foreach(PKG_WITH_INCL KSPACE PYTHON ML-IAP VORONOI COLVARS ML-HDNNP MDI MOLFILE NETCDF
|
||||
PLUMED QMMM ML-QUIP SCAFACOS MACHDYN VTK KIM COMPRESS ML-PACE LEPTON RHEO)
|
||||
PLUMED QMMM ML-QUIP SCAFACOS MACHDYN VTK KIM COMPRESS ML-PACE LEPTON)
|
||||
if(PKG_${PKG_WITH_INCL})
|
||||
include(Packages/${PKG_WITH_INCL})
|
||||
endif()
|
||||
|
@ -887,7 +870,7 @@ endif()
|
|||
include(Testing)
|
||||
include(CodeCoverage)
|
||||
include(CodingStandard)
|
||||
find_package(ClangFormat 11.0)
|
||||
find_package(ClangFormat 8.0)
|
||||
|
||||
if(ClangFormat_FOUND)
|
||||
add_custom_target(format-src
|
||||
|
@ -957,7 +940,6 @@ message(STATUS "<<< Compilers and Flags: >>>
|
|||
-- C++ Compiler: ${CMAKE_CXX_COMPILER}
|
||||
Type: ${CMAKE_CXX_COMPILER_ID}
|
||||
Version: ${CMAKE_CXX_COMPILER_VERSION}
|
||||
C++ Standard: ${CMAKE_CXX_STANDARD}
|
||||
C++ Flags: ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${BTYPE}}
|
||||
Defines: ${DEFINES}")
|
||||
get_target_property(OPTIONS lammps COMPILE_OPTIONS)
|
||||
|
@ -1064,6 +1046,9 @@ endif()
|
|||
if(BUILD_TOOLS)
|
||||
message(STATUS "<<< Building Tools >>>")
|
||||
endif()
|
||||
if(BUILD_LAMMPS_SHELL)
|
||||
message(STATUS "<<< Building LAMMPS Shell >>>")
|
||||
endif()
|
||||
if(BUILD_LAMMPS_GUI)
|
||||
message(STATUS "<<< Building LAMMPS GUI >>>")
|
||||
if(LAMMPS_GUI_USE_PLUGIN)
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
# Find clang-format
|
||||
find_program(ClangFormat_EXECUTABLE NAMES clang-format
|
||||
clang-format-20.0
|
||||
clang-format-19.0
|
||||
clang-format-18.0
|
||||
clang-format-17.0
|
||||
clang-format-16.0
|
||||
clang-format-15.0
|
||||
|
|
|
@ -32,13 +32,7 @@ function(check_omp_h_include)
|
|||
set(CMAKE_REQUIRED_INCLUDES ${OpenMP_CXX_INCLUDE_DIRS})
|
||||
set(CMAKE_REQUIRED_LINK_OPTIONS ${OpenMP_CXX_FLAGS})
|
||||
set(CMAKE_REQUIRED_LIBRARIES ${OpenMP_CXX_LIBRARIES})
|
||||
# there are all kinds of problems with finding omp.h
|
||||
# for Clang and derived compilers so we pretend it is there.
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||
set(_have_omp_h TRUE)
|
||||
else()
|
||||
check_include_file_cxx(omp.h _have_omp_h)
|
||||
endif()
|
||||
check_include_file_cxx(omp.h _have_omp_h)
|
||||
else()
|
||||
set(_have_omp_h FALSE)
|
||||
endif()
|
||||
|
|
|
@ -27,7 +27,7 @@ if(DOWNLOAD_QUIP)
|
|||
else()
|
||||
message(FATAL_ERROR "The ${CMAKE_Fortran_COMPILER_ID} Fortran compiler is not (yet) supported for building QUIP")
|
||||
endif()
|
||||
set(temp "${temp}CFLAGS += -fPIC -Wno-return-mismatch \nCPLUSPLUSFLAGS += -fPIC -Wno-return-mismatch\nAR_ADD=src\n")
|
||||
set(temp "${temp}CFLAGS += -fPIC \nCPLUSPLUSFLAGS += -fPIC\nAR_ADD=src\n")
|
||||
set(temp "${temp}MATH_LINKOPTS=")
|
||||
foreach(flag ${BLAS_LIBRARIES})
|
||||
set(temp "${temp} ${flag}")
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
find_package(GSL 2.6 REQUIRED)
|
||||
target_link_libraries(lammps PRIVATE GSL::gsl)
|
|
@ -102,9 +102,9 @@ endif()
|
|||
#######################################
|
||||
# select code sanitizer options
|
||||
#######################################
|
||||
set(ENABLE_SANITIZER "none" CACHE STRING "Select a code sanitizer option (none (default), address, hwaddress, leak, thread, undefined)")
|
||||
set(ENABLE_SANITIZER "none" CACHE STRING "Select a code sanitizer option (none (default), address, leak, thread, undefined)")
|
||||
mark_as_advanced(ENABLE_SANITIZER)
|
||||
set(ENABLE_SANITIZER_VALUES none address hwaddress leak thread undefined)
|
||||
set(ENABLE_SANITIZER_VALUES none address leak thread undefined)
|
||||
set_property(CACHE ENABLE_SANITIZER PROPERTY STRINGS ${ENABLE_SANITIZER_VALUES})
|
||||
validate_option(ENABLE_SANITIZER ENABLE_SANITIZER_VALUES)
|
||||
string(TOLOWER ${ENABLE_SANITIZER} ENABLE_SANITIZER)
|
||||
|
|
|
@ -37,6 +37,37 @@ if(BUILD_TOOLS)
|
|||
add_subdirectory(${LAMMPS_TOOLS_DIR}/phonon ${CMAKE_BINARY_DIR}/phana_build)
|
||||
endif()
|
||||
|
||||
find_package(PkgConfig QUIET)
|
||||
if(BUILD_LAMMPS_SHELL)
|
||||
if(NOT PkgConfig_FOUND)
|
||||
message(FATAL_ERROR "Must have pkg-config installed for building LAMMPS shell")
|
||||
endif()
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(READLINE IMPORTED_TARGET REQUIRED readline)
|
||||
|
||||
# include resource compiler to embed icons into the executable on Windows
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
enable_language(RC)
|
||||
set(ICON_RC_FILE ${LAMMPS_TOOLS_DIR}/lammps-shell/lmpicons.rc)
|
||||
endif()
|
||||
|
||||
add_executable(lammps-shell ${LAMMPS_TOOLS_DIR}/lammps-shell/lammps-shell.cpp ${ICON_RC_FILE})
|
||||
target_include_directories(lammps-shell PRIVATE ${LAMMPS_TOOLS_DIR}/lammps-shell)
|
||||
target_link_libraries(lammps-shell PRIVATE lammps PkgConfig::READLINE)
|
||||
|
||||
# workaround for broken readline pkg-config file on FreeBSD
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
|
||||
target_include_directories(lammps-shell PRIVATE /usr/local/include)
|
||||
endif()
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "LinuxMUSL")
|
||||
pkg_check_modules(TERMCAP IMPORTED_TARGET REQUIRED termcap)
|
||||
target_link_libraries(lammps-shell PRIVATE lammps PkgConfig::TERMCAP)
|
||||
endif()
|
||||
install(TARGETS lammps-shell EXPORT LAMMPS_Targets DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
install(DIRECTORY ${LAMMPS_TOOLS_DIR}/lammps-shell/icons DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/)
|
||||
install(FILES ${LAMMPS_TOOLS_DIR}/lammps-shell/lammps-shell.desktop DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications/)
|
||||
endif()
|
||||
|
||||
if(BUILD_LAMMPS_GUI)
|
||||
get_filename_component(LAMMPS_GUI_DIR ${LAMMPS_SOURCE_DIR}/../tools/lammps-gui ABSOLUTE)
|
||||
get_filename_component(LAMMPS_GUI_BIN ${CMAKE_BINARY_DIR}/lammps-gui-build ABSOLUTE)
|
||||
|
|
|
@ -82,7 +82,6 @@ set(ALL_PACKAGES
|
|||
REACTION
|
||||
REAXFF
|
||||
REPLICA
|
||||
RHEO
|
||||
RIGID
|
||||
SCAFACOS
|
||||
SHOCK
|
||||
|
|
|
@ -84,7 +84,6 @@ set(ALL_PACKAGES
|
|||
REACTION
|
||||
REAXFF
|
||||
REPLICA
|
||||
RHEO
|
||||
RIGID
|
||||
SCAFACOS
|
||||
SHOCK
|
||||
|
|
|
@ -33,6 +33,7 @@ set(WIN_PACKAGES
|
|||
FEP
|
||||
GPU
|
||||
GRANULAR
|
||||
INTEL
|
||||
INTERLAYER
|
||||
KSPACE
|
||||
LEPTON
|
||||
|
|
|
@ -489,7 +489,8 @@ using CMake or Make.
|
|||
.. code-block:: bash
|
||||
|
||||
-D BUILD_TOOLS=value # yes or no (default). Build binary2txt, chain.x, micelle2d.x, msi2lmp, phana, stl_bin2txt
|
||||
-D BUILD_LAMMPS_GUI=value # yes or no (default). Build LAMMPS-GUI
|
||||
-D BUILD_LAMMPS_SHELL=value # yes or no (default). Build lammps-shell
|
||||
-D BUILD_LAMMPS_GUI=value # yes or no (default). Build lammps-gui
|
||||
|
||||
The generated binaries will also become part of the LAMMPS installation
|
||||
(see below).
|
||||
|
@ -504,9 +505,8 @@ using CMake or Make.
|
|||
make chain # build only chain tool
|
||||
make micelle2d # build only micelle2d tool
|
||||
|
||||
.. note::
|
||||
|
||||
Building the LAMMPS-GUI *requires* building LAMMPS with CMake.
|
||||
cd lammps/tools/lammps-shell
|
||||
make # build LAMMPS shell
|
||||
|
||||
----------
|
||||
|
||||
|
|
|
@ -88,8 +88,8 @@ on recording all commands required to do the compilation.
|
|||
|
||||
.. _sanitizer:
|
||||
|
||||
Address, Leak, Undefined Behavior, and Thread Sanitizer Support (CMake only)
|
||||
----------------------------------------------------------------------------
|
||||
Address, Undefined Behavior, and Thread Sanitizer Support (CMake only)
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Compilers such as GCC and Clang support generating instrumented binaries
|
||||
which use different sanitizer libraries to detect problems in the code
|
||||
|
@ -110,7 +110,6 @@ compilation and linking stages. This is done through setting the
|
|||
|
||||
-D ENABLE_SANITIZER=none # no sanitizer active (default)
|
||||
-D ENABLE_SANITIZER=address # enable address sanitizer / memory leak checker
|
||||
-D ENABLE_SANITIZER=hwaddress # enable hardware assisted address sanitizer / memory leak checker
|
||||
-D ENABLE_SANITIZER=leak # enable memory leak checker (only)
|
||||
-D ENABLE_SANITIZER=undefined # enable undefined behavior sanitizer
|
||||
-D ENABLE_SANITIZER=thread # enable thread sanitizer
|
||||
|
|
|
@ -59,7 +59,6 @@ This is the list of packages that may require additional steps.
|
|||
* :ref:`POEMS <poems>`
|
||||
* :ref:`PYTHON <python>`
|
||||
* :ref:`QMMM <qmmm>`
|
||||
* :ref:`RHEO <rheo>`
|
||||
* :ref:`SCAFACOS <scafacos>`
|
||||
* :ref:`VORONOI <voronoi>`
|
||||
* :ref:`VTK <vtk>`
|
||||
|
@ -639,9 +638,6 @@ They must be specified in uppercase.
|
|||
* - AMD_GFX1100
|
||||
- GPU
|
||||
- AMD GPU RX7900XTX
|
||||
* - AMD_GFX1103
|
||||
- GPU
|
||||
- AMD Phoenix APU with Radeon 740M/760M/780M/880M/890M
|
||||
* - INTEL_GEN
|
||||
- GPU
|
||||
- SPIR64-based devices, e.g. Intel GPUs, using JIT
|
||||
|
@ -1570,11 +1566,10 @@ LAMMPS build.
|
|||
.. tab:: CMake build
|
||||
|
||||
When the ``-D PKG_PLUMED=yes`` flag is included in the cmake
|
||||
command you must ensure that `the GNU Scientific Library (GSL)
|
||||
<https://www.gnu.org/software/gsl/>` is installed in locations
|
||||
that are accessible in your environment. There are then two
|
||||
additional variables that control the manner in which PLUMED is
|
||||
obtained and linked into LAMMPS.
|
||||
command you must ensure that GSL is installed in locations that
|
||||
are specified in your environment. There are then two additional
|
||||
variables that control the manner in which PLUMED is obtained and
|
||||
linked into LAMMPS.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
|
@ -2045,36 +2040,6 @@ verified to work in February 2020 with Quantum Espresso versions 6.3 to
|
|||
|
||||
----------
|
||||
|
||||
.. _rheo:
|
||||
|
||||
RHEO package
|
||||
------------
|
||||
|
||||
To build with this package you must have the `GNU Scientific Library
|
||||
(GSL) <https://www.gnu.org/software/gsl/>` installed in locations that
|
||||
are accessible in your environment. The GSL library should be at least
|
||||
version 2.7.
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. tab:: CMake build
|
||||
|
||||
If CMake cannot find the GSL library or include files, you can set:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
-D GSL_ROOT_DIR=path # path to root of GSL installation
|
||||
|
||||
.. tab:: Traditional make
|
||||
|
||||
LAMMPS will try to auto-detect the GSL compiler and linker flags
|
||||
from the corresponding ``pkg-config`` file (``gsl.pc``), otherwise
|
||||
you can edit the file ``lib/rheo/Makefile.lammps``
|
||||
to specify the paths and library names where indicated by comments.
|
||||
This must be done **before** the package is installed.
|
||||
|
||||
----------
|
||||
|
||||
.. _scafacos:
|
||||
|
||||
SCAFACOS package
|
||||
|
|
|
@ -45,8 +45,8 @@ executable code from the library is copied into the calling executable.
|
|||
|
||||
.. code-block:: bash
|
||||
|
||||
mpicc -c -O $(pkg-config --cflags liblammps) caller.c
|
||||
mpicxx -o caller caller.o -$(pkg-config --libs liblammps)
|
||||
mpicc -c -O $(pkgconf liblammps --cflags) caller.c
|
||||
mpicxx -o caller caller.o -$(pkgconf liblammps --libs)
|
||||
|
||||
.. tab:: Traditional make
|
||||
|
||||
|
@ -155,8 +155,8 @@ POEMS package installed becomes:
|
|||
|
||||
.. code-block:: bash
|
||||
|
||||
mpicc -c -O $(pkg-config --cflags liblammps) caller.c
|
||||
mpicxx -o caller caller.o -$(pkg-config --libs liblammps)
|
||||
mpicc -c -O $(pkgconf liblammps --cflags) caller.c
|
||||
mpicxx -o caller caller.o -$(pkgconf --libs)
|
||||
|
||||
.. tab:: Traditional make
|
||||
|
||||
|
|
|
@ -62,7 +62,6 @@ packages:
|
|||
* :ref:`POEMS <poems>`
|
||||
* :ref:`PYTHON <python>`
|
||||
* :ref:`QMMM <qmmm>`
|
||||
* :ref:`RHEO <rheo>`
|
||||
* :ref:`SCAFACOS <scafacos>`
|
||||
* :ref:`VORONOI <voronoi>`
|
||||
* :ref:`VTK <vtk>`
|
||||
|
|
|
@ -414,8 +414,8 @@ Read or write compressed files
|
|||
If this option is enabled, large files can be read or written with
|
||||
compression by ``gzip`` or similar tools by several LAMMPS commands,
|
||||
including :doc:`read_data <read_data>`, :doc:`rerun <rerun>`, and
|
||||
:doc:`dump <dump>`. Supported compression tools and algorithms are currently
|
||||
``gzip``, ``bzip2``, ``zstd``, ``xz``, ``lz4``, and ``lzma`` (via xz).
|
||||
:doc:`dump <dump>`. Supported compression tools are currently
|
||||
``gzip``, ``bzip2``, ``zstd``, and ``lzma``.
|
||||
|
||||
.. tabs::
|
||||
|
||||
|
|
|
@ -54,7 +54,6 @@ OPT.
|
|||
* :doc:`oxdna2/fene <bond_oxdna>`
|
||||
* :doc:`oxrna2/fene <bond_oxdna>`
|
||||
* :doc:`quartic (o) <bond_quartic>`
|
||||
* :doc:`rheo/shell <bond_rheo_shell>`
|
||||
* :doc:`special <bond_special>`
|
||||
* :doc:`table (o) <bond_table>`
|
||||
|
||||
|
@ -73,7 +72,7 @@ OPT.
|
|||
|
||||
* :doc:`none <angle_none>`
|
||||
* :doc:`zero <angle_zero>`
|
||||
* :doc:`hybrid (k) <angle_hybrid>`
|
||||
* :doc:`hybrid <angle_hybrid>`
|
||||
*
|
||||
*
|
||||
*
|
||||
|
@ -101,7 +100,7 @@ OPT.
|
|||
* :doc:`mesocnt <angle_mesocnt>`
|
||||
* :doc:`mm3 <angle_mm3>`
|
||||
* :doc:`quartic (o) <angle_quartic>`
|
||||
* :doc:`spica (ko) <angle_spica>`
|
||||
* :doc:`spica (o) <angle_spica>`
|
||||
* :doc:`table (o) <angle_table>`
|
||||
|
||||
.. _dihedral:
|
||||
|
@ -119,7 +118,7 @@ OPT.
|
|||
|
||||
* :doc:`none <dihedral_none>`
|
||||
* :doc:`zero <dihedral_zero>`
|
||||
* :doc:`hybrid (k) <dihedral_hybrid>`
|
||||
* :doc:`hybrid <dihedral_hybrid>`
|
||||
*
|
||||
*
|
||||
*
|
||||
|
@ -157,7 +156,7 @@ OPT.
|
|||
|
||||
* :doc:`none <improper_none>`
|
||||
* :doc:`zero <improper_zero>`
|
||||
* :doc:`hybrid (k) <improper_hybrid>`
|
||||
* :doc:`hybrid <improper_hybrid>`
|
||||
*
|
||||
*
|
||||
*
|
||||
|
|
|
@ -126,7 +126,6 @@ KOKKOS, o = OPENMP, t = OPT.
|
|||
* :doc:`reduce <compute_reduce>`
|
||||
* :doc:`reduce/chunk <compute_reduce_chunk>`
|
||||
* :doc:`reduce/region <compute_reduce>`
|
||||
* :doc:`rheo/property/atom <compute_rheo_property_atom>`
|
||||
* :doc:`rigid/local <compute_rigid_local>`
|
||||
* :doc:`saed <compute_saed>`
|
||||
* :doc:`slcsa/atom <compute_slcsa_atom>`
|
||||
|
|
|
@ -28,7 +28,6 @@ OPT.
|
|||
* :doc:`adapt <fix_adapt>`
|
||||
* :doc:`adapt/fep <fix_adapt_fep>`
|
||||
* :doc:`addforce <fix_addforce>`
|
||||
* :doc:`add/heat <fix_add_heat>`
|
||||
* :doc:`addtorque <fix_addtorque>`
|
||||
* :doc:`alchemy <fix_alchemy>`
|
||||
* :doc:`amoeba/bitorsion <fix_amoeba_bitorsion>`
|
||||
|
@ -205,11 +204,6 @@ OPT.
|
|||
* :doc:`reaxff/species (k) <fix_reaxff_species>`
|
||||
* :doc:`recenter <fix_recenter>`
|
||||
* :doc:`restrain <fix_restrain>`
|
||||
* :doc:`rheo <fix_rheo>`
|
||||
* :doc:`rheo/oxidation <fix_rheo_oxidation>`
|
||||
* :doc:`rheo/pressure <fix_rheo_pressure>`
|
||||
* :doc:`rheo/thermal <fix_rheo_thermal>`
|
||||
* :doc:`rheo/viscosity <fix_rheo_viscosity>`
|
||||
* :doc:`rhok <fix_rhok>`
|
||||
* :doc:`rigid (o) <fix_rigid>`
|
||||
* :doc:`rigid/meso <fix_rigid_meso>`
|
||||
|
|
|
@ -35,10 +35,6 @@ OPT.
|
|||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
* :doc:`adp (ko) <pair_adp>`
|
||||
* :doc:`agni (o) <pair_agni>`
|
||||
* :doc:`aip/water/2dm (t) <pair_aip_water_2dm>`
|
||||
|
@ -195,7 +191,7 @@ OPT.
|
|||
* :doc:`lj/mdf <pair_mdf>`
|
||||
* :doc:`lj/relres (o) <pair_lj_relres>`
|
||||
* :doc:`lj/spica (gko) <pair_spica>`
|
||||
* :doc:`lj/spica/coul/long (gko) <pair_spica>`
|
||||
* :doc:`lj/spica/coul/long (go) <pair_spica>`
|
||||
* :doc:`lj/spica/coul/msm (o) <pair_spica>`
|
||||
* :doc:`lj/sf/dipole/sf (go) <pair_dipole>`
|
||||
* :doc:`lj/smooth (go) <pair_lj_smooth>`
|
||||
|
@ -264,8 +260,6 @@ OPT.
|
|||
* :doc:`rebo (io) <pair_airebo>`
|
||||
* :doc:`rebomos (o) <pair_rebomos>`
|
||||
* :doc:`resquared (go) <pair_resquared>`
|
||||
* :doc:`rheo <pair_rheo>`
|
||||
* :doc:`rheo/solid <pair_rheo_solid>`
|
||||
* :doc:`saip/metal (t) <pair_saip_metal>`
|
||||
* :doc:`sdpd/taitwater/isothermal <pair_sdpd_taitwater_isothermal>`
|
||||
* :doc:`smatb <pair_smatb>`
|
||||
|
|
|
@ -8,18 +8,6 @@ stop LAMMPS and print a suitable error message in most cases, when a
|
|||
style/command is used that has been removed or will replace the command
|
||||
with the direct alternative (if available) and print a warning.
|
||||
|
||||
restart2data tool
|
||||
-----------------
|
||||
|
||||
.. versionchanged:: 23Nov2013
|
||||
|
||||
The functionality of the restart2data tool has been folded into the
|
||||
LAMMPS executable directly instead of having a separate tool. A
|
||||
combination of the commands :doc:`read_restart <read_restart>` and
|
||||
:doc:`write_data <write_data>` can be used to the same effect. For
|
||||
added convenience this conversion can also be triggered by
|
||||
:doc:`command line flags <Run_options>`
|
||||
|
||||
Fix ave/spatial and fix ave/spatial/sphere
|
||||
------------------------------------------
|
||||
|
||||
|
@ -163,16 +151,17 @@ and allow running LAMMPS with GPU acceleration.
|
|||
i-PI tool
|
||||
---------
|
||||
|
||||
.. versionchanged:: 27Jun2024
|
||||
.. versionchanged:: 27June2024
|
||||
|
||||
The i-PI tool has been removed from the LAMMPS distribution. Instead,
|
||||
instructions to install i-PI from PyPI via pip are provided.
|
||||
|
||||
LAMMPS shell
|
||||
------------
|
||||
|
||||
.. versionchanged:: TBD
|
||||
|
||||
The LAMMPS shell has been removed from the LAMMPS distribution. Users
|
||||
are encouraged to use the :ref:`LAMMPS-GUI <lammps_gui>` tool instead.
|
||||
restart2data tool
|
||||
-----------------
|
||||
|
||||
The functionality of the restart2data tool has been folded into the
|
||||
LAMMPS executable directly instead of having a separate tool. A
|
||||
combination of the commands :doc:`read_restart <read_restart>` and
|
||||
:doc:`write_data <write_data>` can be used to the same effect. For
|
||||
added convenience this conversion can also be triggered by
|
||||
:doc:`command line flags <Run_options>`
|
||||
|
|
|
@ -50,30 +50,6 @@ We are looking at the following cases:
|
|||
- `Case 3: a potential requiring communication`_
|
||||
- `Case 4: potentials without a compute() function`_
|
||||
|
||||
Package and build system considerations
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
In general, new pair styles should be added to the :ref:`EXTRA-PAIR
|
||||
package <PKG-EXTRA-PAIR>` unless they are an accelerated pair style and
|
||||
then they should be added to the corresponding accelerator package
|
||||
(:ref:`GPU <PKG-GPU>`, :ref:`INTEL <PKG-INTEL>`, :ref:`KOKKOS
|
||||
<PKG-KOKKOS>`, :ref:`OPENMP <PKG-OPENMP>`, :ref:`OPT <PKG-OPT>`). If
|
||||
you feel that your contribution should be added to a different package,
|
||||
please consult with the LAMMPS developers first.
|
||||
|
||||
The contributed code needs to support the :doc:`traditional GNU make
|
||||
build process <Build_make>` **and** the :doc:`CMake build process
|
||||
<Build_cmake>`. For the GNU make process and if the package has an
|
||||
``Install.sh`` file, most likely that file needs to be updated to
|
||||
correctly copy the sources when installing the package and properly
|
||||
delete them when uninstalling. This is particularly important when
|
||||
added a new pair style that is a derived class from an existing pair
|
||||
style in a package, so that its installation depends on the the
|
||||
installation status of the package of the derived class. For the CMake
|
||||
process, it is sometimes necessary to make changes to the package
|
||||
specific CMake scripting in ``cmake/Modules/Packages``.
|
||||
|
||||
|
||||
----
|
||||
|
||||
Case 1: a pairwise additive model
|
||||
|
|
|
@ -134,8 +134,6 @@ Lowercase directories
|
|||
+-------------+------------------------------------------------------------------+
|
||||
| rerun | use of rerun and read_dump commands |
|
||||
+-------------+------------------------------------------------------------------+
|
||||
| rheo | RHEO simulations of fluid flows and phase transitions |
|
||||
+-------------+------------------------------------------------------------------+
|
||||
| rigid | rigid bodies modeled as independent or coupled |
|
||||
+-------------+------------------------------------------------------------------+
|
||||
| shear | sideways shear applied to 2d solid, with and without a void |
|
||||
|
|
|
@ -2327,7 +2327,7 @@ Procedures Bound to the :f:type:`lammps` Derived Type
|
|||
retrieved via :f:func:`get_last_error_message`. This allows to
|
||||
restart a calculation or delete and recreate the LAMMPS instance when
|
||||
a C++ exception occurs. One application of using exceptions this way
|
||||
is the :ref:`lammps_gui`.
|
||||
is the :ref:`lammps_shell`.
|
||||
|
||||
:to: :cpp:func:`lammps_config_has_exceptions`
|
||||
:r has_exceptions:
|
||||
|
|
|
@ -89,7 +89,6 @@ Packages howto
|
|||
Howto_drude2
|
||||
Howto_peri
|
||||
Howto_manifold
|
||||
Howto_rheo
|
||||
Howto_spins
|
||||
|
||||
Tutorials howto
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Use chunks to calculate system properties
|
||||
=========================================
|
||||
|
||||
In LAMMPS, "chunks" are collections of atoms, as defined by the
|
||||
In LAMMS, "chunks" are collections of atoms, as defined by the
|
||||
:doc:`compute chunk/atom <compute_chunk_atom>` command, which assigns
|
||||
each atom to a chunk ID (or to no chunk at all). The number of chunks
|
||||
and the assignment of chunk IDs to atoms can be static or change over
|
||||
|
@ -148,14 +148,14 @@ Example calculations with chunks
|
|||
Here are examples using chunk commands to calculate various
|
||||
properties:
|
||||
|
||||
1. Average velocity in each of 1000 2d spatial bins:
|
||||
(1) Average velocity in each of 1000 2d spatial bins:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
compute cc1 all chunk/atom bin/2d x 0.0 0.1 y lower 0.01 units reduced
|
||||
fix 1 all ave/chunk 100 10 1000 cc1 vx vy file tmp.out
|
||||
|
||||
2. Temperature in each spatial bin, after subtracting a flow
|
||||
(2) Temperature in each spatial bin, after subtracting a flow
|
||||
velocity:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
@ -164,7 +164,7 @@ velocity:
|
|||
compute vbias all temp/profile 1 0 0 y 10
|
||||
fix 1 all ave/chunk 100 10 1000 cc1 temp bias vbias file tmp.out
|
||||
|
||||
3. Center of mass of each molecule:
|
||||
(3) Center of mass of each molecule:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
|
@ -172,7 +172,7 @@ velocity:
|
|||
compute myChunk all com/chunk cc1
|
||||
fix 1 all ave/time 100 1 100 c_myChunk[*] file tmp.out mode vector
|
||||
|
||||
4. Total force on each molecule and ave/max across all molecules:
|
||||
(4) Total force on each molecule and ave/max across all molecules:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
|
@ -183,7 +183,7 @@ velocity:
|
|||
thermo 1000
|
||||
thermo_style custom step temp v_xave v_xmax
|
||||
|
||||
5. Histogram of cluster sizes:
|
||||
(5) Histogram of cluster sizes:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
|
@ -192,16 +192,16 @@ velocity:
|
|||
compute size all property/chunk cc1 count
|
||||
fix 1 all ave/histo 100 1 100 0 20 20 c_size mode vector ave running beyond ignore file tmp.histo
|
||||
|
||||
6. An example for using a per-chunk value to apply per-atom forces to
|
||||
(6) An example for using a per-chunk value to apply per-atom forces to
|
||||
compress individual polymer chains (molecules) in a mixture, is
|
||||
explained on the :doc:`compute chunk/spread/atom <compute_chunk_spread_atom>` command doc page.
|
||||
|
||||
7. An example for using one set of per-chunk values for molecule
|
||||
(7) An example for using one set of per-chunk values for molecule
|
||||
chunks, to create a second set of micelle-scale chunks (clustered
|
||||
molecules, due to hydrophobicity), is explained on the
|
||||
:doc:`compute reduce/chunk <compute_reduce_chunk>` command doc page.
|
||||
|
||||
8. An example for using one set of per-chunk values (dipole moment
|
||||
(8) An example for using one set of per-chunk values (dipole moment
|
||||
vectors) for molecule chunks, spreading the values to each atom in
|
||||
each chunk, then defining a second set of chunks as spatial bins, and
|
||||
using the :doc:`fix ave/chunk <fix_ave_chunk>` command to calculate an
|
||||
|
|
|
@ -339,6 +339,8 @@ Some common LAMMPS specific variables
|
|||
- build LAMMPS with OpenMP support (default: ``on`` if compiler supports OpenMP fully, else ``off``)
|
||||
* - ``BUILD_TOOLS``
|
||||
- compile some additional executables from the ``tools`` folder (default: ``off``)
|
||||
* - ``BUILD_LAMMPS_SHELL``
|
||||
- compile the LAMMPS shell from the ``tools/lammps-shell`` folder (default: ``off``)
|
||||
* - ``BUILD_DOC``
|
||||
- include building the HTML format documentation for packaging/installing (default: ``off``)
|
||||
* - ``CMAKE_TUNE_FLAGS``
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
Using LAMMPS-GUI
|
||||
================
|
||||
Using the LAMMPS GUI
|
||||
====================
|
||||
|
||||
This document describes **LAMMPS-GUI version 1.6**.
|
||||
This document describes **LAMMPS GUI version 1.5**.
|
||||
|
||||
-----
|
||||
|
||||
LAMMPS-GUI is a graphical text editor customized for editing LAMMPS
|
||||
LAMMPS GUI is a graphical text editor customized for editing LAMMPS
|
||||
input files that is linked to the :ref:`LAMMPS library <lammps_c_api>`
|
||||
and thus can run LAMMPS directly using the contents of the editor's text
|
||||
buffer as input. It can retrieve and display information from LAMMPS
|
||||
|
@ -16,107 +16,58 @@ to the online LAMMPS documentation for known LAMMPS commands and styles.
|
|||
|
||||
.. note::
|
||||
|
||||
Pre-compiled, ready-to-use LAMMPS-GUI executables for Linux x86\_64
|
||||
(Ubuntu 20.04LTS or later and compatible), macOS (version 11 aka Big
|
||||
Sur or later), and Windows (version 10 or later) :ref:`are available
|
||||
<lammps_gui_install>` for download. None-MPI LAMMPS executables for
|
||||
running LAMMPS from the command line and :doc:`some LAMMPS tools <Tools>`
|
||||
are also included.
|
||||
Pre-compiled, ready-to-use LAMMPS GUI executables for Linux (Ubuntu
|
||||
20.04LTS or later and compatible), macOS (version 11 aka Big Sur or
|
||||
later), and Windows (version 10 or later) :ref:`are available
|
||||
<lammps_gui_install>` for download. They may be linked to a
|
||||
development version of LAMMPS in case they need features not yet
|
||||
available in a released version. Serial LAMMPS executables of the
|
||||
same LAMMPS version are included as well. The source code for the
|
||||
LAMMPS GUI is included in the LAMMPS source code and can be found in
|
||||
the ``tools/lammps-gui`` folder. It can be compiled alongside LAMMPS
|
||||
when :doc:`compiling with CMake <Build_cmake>`.
|
||||
|
||||
The source code for LAMMPS-GUI is included in the LAMMPS source code
|
||||
distribution and can be found in the ``tools/lammps-gui`` folder. It
|
||||
can be compiled alongside LAMMPS when :doc:`compiling with CMake
|
||||
<Build_cmake>`.
|
||||
LAMMPS GUI tries to provide an experience similar to what people
|
||||
traditionally would do to run LAMMPS using a command line window:
|
||||
|
||||
LAMMPS-GUI tries to provide an experience similar to what people
|
||||
traditionally would have running LAMMPS using a command line window
|
||||
and the console LAMMPS executable but just rolled into a single executable:
|
||||
|
||||
- writing & editing LAMMPS input files with a text editor
|
||||
- run LAMMPS on those input file with selected command line flags
|
||||
- use or extract data from the created files and visualize it with
|
||||
either a molecular visualization program or a plotting program
|
||||
- editing inputs with a text editor
|
||||
- run LAMMPS on the input with selected command line flags
|
||||
- and then use or extract data from the created files and visualize it
|
||||
|
||||
That procedure is quite effective for people proficient in using the
|
||||
command line, as that allows them to use tools for the individual steps
|
||||
that they are most comfortable with. It is often *required* to adopt
|
||||
this workflow when running LAMMPS simulations on high-performance
|
||||
computing facilities.
|
||||
which they are most comfortable with. It is often required when running
|
||||
LAMMPS on high-performance computing facilities.
|
||||
|
||||
The main benefit of using LAMMPS-GUI is that many basic tasks can be
|
||||
done directly from the GUI without switching to a text console window or
|
||||
using external programs, let alone writing scripts to extract data from
|
||||
the generated output. It also integrates well with graphical desktop
|
||||
environments where the `.lmp` filename extension can be registered with
|
||||
LAMMPS-GUI as the executable to launch when double clicking on such
|
||||
files. Also, LAMMPS-GUI has support for drag-n-drop, i.e. an input
|
||||
file can be selected and then moved and dropped on the LAMMPS-GUI
|
||||
executable, and LAMMPS-GUI will launch and read the file into its
|
||||
buffer.
|
||||
The main benefit of using the LAMMPS GUI application instead is that
|
||||
many basic tasks can be done directly from the GUI without switching to
|
||||
a text console window or using external programs, let alone writing
|
||||
scripts to extract data from the generated output. It also integrates
|
||||
well with graphical desktop environments.
|
||||
|
||||
LAMMPS-GUI thus makes it easier for beginners to get started running
|
||||
LAMMPS GUI thus makes it easier for beginners to get started running
|
||||
simple LAMMPS simulations. It is very suitable for tutorials on LAMMPS
|
||||
since you only need to learn how to use a single program for most tasks
|
||||
and thus time can be saved and people can focus on learning LAMMPS.
|
||||
The tutorials at https://lammpstutorials.github.io/ were specifically
|
||||
updated for use with LAMMPS-GUI.
|
||||
|
||||
Another design goal is to keep the barrier low when replacing part of
|
||||
the functionality of LAMMPS-GUI with external tools.
|
||||
and thus time can be saved and people can focus on learning LAMMPS. It
|
||||
is also designed to keep the barrier low when you decide to switch to a
|
||||
full featured, standalone programming editor and more sophisticated
|
||||
visualization and analysis tools and run LAMMPS from a command line.
|
||||
|
||||
The following text provides a detailed tour of the features and
|
||||
functionality of LAMMPS-GUI. Suggestions for new features and
|
||||
reports of bugs are always welcome. You can use the :doc:`the same
|
||||
channels as for LAMMPS itself <Errors_bugs>` for that purpose.
|
||||
functionality of the LAMMPS GUI.
|
||||
|
||||
Suggestions for new features and reports of bugs are always welcome.
|
||||
You can use the :doc:`the same channels as for LAMMPS itself
|
||||
<Errors_bugs>` for that purpose.
|
||||
|
||||
-----
|
||||
|
||||
Installing Pre-compiled LAMMPS-GUI Packages
|
||||
-------------------------------------------
|
||||
Main window
|
||||
-----------
|
||||
|
||||
LAMMPS-GUI is available as pre-compiled binary packages for Linux
|
||||
x86\_64, macOS 11 and later, and Windows 10 and later. Alternately, it
|
||||
can be compiled from source.
|
||||
|
||||
Windows 10 and later
|
||||
^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
After downloading the ``LAMMPS-Win10-64bit-GUI-<version>.exe`` installer
|
||||
package, you need to execute it, and start the installation process.
|
||||
Since those packages are currently unsigned, you have to enable "Developer Mode"
|
||||
in the Windows System Settings to run the installer.
|
||||
|
||||
MacOS 11 and later
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
|
||||
After downloading the ``LAMMPS-macOS-multiarch-GUI-<version>.dmg``
|
||||
installer package, you need to double-click it and then, in the window
|
||||
that opens, drag the app bundle as indicated into the "Applications"
|
||||
folder. The follow the instructions in the "README.txt" file to
|
||||
get access to the other included executables.
|
||||
|
||||
Linux on x86\_64
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
After downloading and unpacking the
|
||||
``LAMMPS-Linux-x86_64-GUI-<version>.tar.gz`` package. You can switch
|
||||
into the "LAMMPS_GUI" folder and execute "./lammps-gui" directly.
|
||||
|
||||
Compiling from Source
|
||||
^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
There also are instructions for :ref:`compiling LAMMPS-GUI from source
|
||||
code <lammps_gui_compilation>` available elsewhere in the manual.
|
||||
Compilation from source *requires* using CMake.
|
||||
|
||||
-----
|
||||
|
||||
Starting LAMMPS-GUI
|
||||
-------------------
|
||||
|
||||
When LAMMPS-GUI starts, it shows the main window, labeled *Editor*, with
|
||||
either an empty buffer or the contents of the file used as argument. In
|
||||
the latter case it may look like the following:
|
||||
When LAMMPS GUI starts, it will show a main window with either an
|
||||
empty buffer or the contents of a loaded file. In the latter case it
|
||||
may look like the following:
|
||||
|
||||
.. image:: JPG/lammps-gui-main.png
|
||||
:align: center
|
||||
|
@ -129,41 +80,32 @@ the LAMMPS input file syntax. The status bar shows the status of
|
|||
LAMMPS execution on the left (e.g. "Ready." when idle) and the current
|
||||
working directory on the right. The name of the current file in the
|
||||
buffer is shown in the window title; the word `*modified*` is added if
|
||||
the buffer edits have not yet saved to a file. The geometry of the main
|
||||
window is stored when exiting and restored when starting again.
|
||||
the buffer edits have not yet saved to a file. The size of the main
|
||||
window will be stored when exiting and restored when starting again.
|
||||
|
||||
Opening Files
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
The LAMMPS-GUI application can be launched without command line arguments
|
||||
and then starts with an empty buffer in the *Editor* window. If arguments
|
||||
are given LAMMPS will use first command line argument as the file name for
|
||||
the *Editor* buffer and reads its contents into the buffer, if the file
|
||||
exists. All further arguments are ignored. Files can also be opened via
|
||||
the ``File`` menu, the `Ctrl-O` (`Command-O` on macOS) keyboard shortcut
|
||||
or by drag-and-drop of a file from a graphical file manager into the editor
|
||||
window. If a file extension (e.g. ``.lmp``) has been registered with the
|
||||
graphical environment to launch LAMMPS-GUI, an existing input file can
|
||||
be launched with LAMMPS-GUI through double clicking.
|
||||
|
||||
Only one file can be edited at a time, so opening a new file with a
|
||||
filled buffer closes that buffer. If the buffer has unsaved
|
||||
modifications, you are asked to either cancel the operation, discard the
|
||||
changes, or save them. A buffer with modifications can be saved any
|
||||
time from the "File" menu, by the keyboard shortcut `Ctrl-S`
|
||||
(`Command-S` on macOS), or by clicking on the "Save" button at the very
|
||||
left in the status bar.
|
||||
The LAMMPS GUI application will try to open the first command line
|
||||
argument as a LAMMPS input script, further arguments are ignored.
|
||||
When no argument is given, LAMMPS GUI will start with an empty buffer.
|
||||
Files can also be opened via the ``File`` menu or by drag-and-drop of
|
||||
a file from a graphical file manager into the editor window. Only one
|
||||
file can be open at a time, so opening a new file with a filled buffer
|
||||
will close the buffer. If the buffer has unsaved modifications, you
|
||||
will be asked to either cancel the operation, discard the changes, or
|
||||
save them.
|
||||
|
||||
Running LAMMPS
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
From within the LAMMPS-GUI main window LAMMPS can be started either from
|
||||
From within the LAMMPS GUI main window LAMMPS can be started either from
|
||||
the ``Run`` menu using the ``Run LAMMPS from Editor Buffer`` entry, by
|
||||
the keyboard shortcut `Ctrl-Enter` (`Command-Enter` on macOS), or by
|
||||
clicking on the green "Run" button in the status bar. All of these
|
||||
operations causes LAMMPS to process the entire input script in the
|
||||
editor buffer, which may contain multiple :doc:`run <run>` or
|
||||
:doc:`minimize <minimize>` commands.
|
||||
operations will cause LAMMPS to process the entire input script, which
|
||||
may contain multiple :doc:`run <run>` or :doc:`minimize <minimize>`
|
||||
commands.
|
||||
|
||||
LAMMPS runs in a separate thread, so the GUI stays responsive and is
|
||||
able to interact with the running calculation and access data it
|
||||
|
@ -186,30 +128,33 @@ before LAMMPS can be run from a file.
|
|||
|
||||
While LAMMPS is running, the contents of the status bar change. On
|
||||
the left side there is a text indicating that LAMMPS is running, which
|
||||
also indicates the number of active threads, when thread-parallel
|
||||
will also show the number of active threads, if thread-parallel
|
||||
acceleration was selected in the ``Preferences`` dialog. On the right
|
||||
side, a progress bar is shown that displays the estimated progress for
|
||||
the current :doc:`run <run>` or :doc:`minimize <minimize>` command.
|
||||
the current :doc:`run command <run>`.
|
||||
|
||||
Also, the line number of the currently executed command is highlighted
|
||||
in green.
|
||||
Also, the line number of the currently executed command will be
|
||||
highlighted in green.
|
||||
|
||||
.. image:: JPG/lammps-gui-run-highlight.png
|
||||
:align: center
|
||||
:scale: 75%
|
||||
|
||||
If an error occurs (in the example below the command :doc:`label
|
||||
<label>` was incorrectly capitalized as "Label"), an error message
|
||||
dialog is shown and the line of the input which triggered the error is
|
||||
highlighted. The state of LAMMPS in the status bar is set to "Failed."
|
||||
instead of "Ready."
|
||||
dialog will be shown and the line of the input which triggered the
|
||||
error will be highlighted. The state of LAMMPS in the status bar will
|
||||
be set to "Failed." instead of "Ready."
|
||||
|
||||
.. image:: JPG/lammps-gui-run-error.png
|
||||
:align: center
|
||||
:scale: 75%
|
||||
|
||||
Up to three additional windows may open during a run:
|
||||
Up to three additional windows will open during a run:
|
||||
|
||||
- an *Output* window with the captured screen output from LAMMPS
|
||||
- a *Charts* window with a line graph created from thermodynamic output of the run
|
||||
- a *Slide Show* window with images created by a :doc:`dump image command <dump_image>`
|
||||
in the input
|
||||
- a log window with the captured screen output
|
||||
- a chart window with a line graph created from the thermodynamic output of the run
|
||||
- a slide show window with images created by a :doc:`dump image command <dump_image>`
|
||||
|
||||
More information on those windows and how to adjust their behavior and
|
||||
contents is given below.
|
||||
|
@ -226,101 +171,77 @@ This is equivalent to the input script command :doc:`timer timeout 0
|
|||
interface. Please see the corresponding documentation pages to
|
||||
understand the implications of this operation.
|
||||
|
||||
Output Window
|
||||
-------------
|
||||
Log Window
|
||||
----------
|
||||
|
||||
By default, when starting a run, an *Output* window opens that displays
|
||||
the screen output of the running LAMMPS calculation, as shown below.
|
||||
This text would normally be seen in the command line window.
|
||||
By default, when starting a run, a "Log Window" will open that displays
|
||||
the current screen output of the LAMMPS calculation, that would normally
|
||||
be seen in the command line window, as shown below.
|
||||
|
||||
.. image:: JPG/lammps-gui-log.png
|
||||
:align: center
|
||||
:scale: 50%
|
||||
|
||||
LAMMPS-GUI captures the screen output from LAMMPS as it is generated and
|
||||
updates the *Output* window regularly during a run.
|
||||
LAMMPS GUI captures the screen output as it is generated and updates
|
||||
the log window regularly during a run.
|
||||
|
||||
By default, the *Output* window is replaced each time a run is started.
|
||||
By default, the log window will be replaced each time a run is started.
|
||||
The runs are counted and the run number for the current run is displayed
|
||||
in the window title. It is possible to change the behavior of
|
||||
LAMMPS-GUI in the preferences dialog to create a *new* *Output* window
|
||||
for every run or to not show the current *Output* window. It is also
|
||||
possible to show or hide the *current* *Output* window from the ``View``
|
||||
menu.
|
||||
in the window title. It is possible to change the behavior of LAMMPS
|
||||
GUI in the preferences dialog to create a *new* log window for every run
|
||||
or to not show the current log window. It is also possible to show or
|
||||
hide the *current* log window from the ``View`` menu.
|
||||
|
||||
The text in the *Output* window is read-only and cannot be modified, but
|
||||
The text in the log window is read-only and cannot be modified, but
|
||||
keyboard shortcuts to select and copy all or parts of the text can be
|
||||
used to transfer text to another program. Also, the keyboard shortcut
|
||||
`Ctrl-S` (`Command-S` on macOS) is available to save the *Output* buffer to a
|
||||
`Ctrl-S` (`Command-S` on macOS) is available to save the log buffer to a
|
||||
file. The "Select All" and "Copy" functions, as well as a "Save Log to
|
||||
File" option are also available from a context menu by clicking with the
|
||||
right mouse button into the *Output* window text area.
|
||||
right mouse button into the log window text area.
|
||||
|
||||
.. image:: JPG/lammps-gui-yaml.png
|
||||
:align: center
|
||||
:scale: 50%
|
||||
Chart Window
|
||||
------------
|
||||
|
||||
.. versionadded:: 1.6
|
||||
|
||||
Should the *Output* window contain embedded YAML format text (see above for a
|
||||
demonstration), for example from using :doc:`thermo_style yaml
|
||||
<thermo_style>` or :doc:`thermo_modify line yaml <thermo_modify>`, the
|
||||
keyboard shortcut `Ctrl-Y` (`Command-Y` on macOS) is available to save
|
||||
only the YAML parts to a file. This option is also available from a
|
||||
context menu by clicking with the right mouse button into the *Output* window
|
||||
text area.
|
||||
|
||||
Charts Window
|
||||
-------------
|
||||
|
||||
By default, when starting a run, a *Charts* window opens that displays a
|
||||
plot of thermodynamic output of the LAMMPS calculation as shown below.
|
||||
By default, when starting a run, a "Chart Window" will open that
|
||||
displays a plot of thermodynamic output of the LAMMPS calculation as
|
||||
shown below.
|
||||
|
||||
.. image:: JPG/lammps-gui-chart.png
|
||||
:align: center
|
||||
:scale: 33%
|
||||
:scale: 50%
|
||||
|
||||
The drop down menu on the top right allows selection of different
|
||||
properties that are computed and written to thermo output. Only one
|
||||
property can be shown at a time. The plots are updated with new data as
|
||||
the run progresses, so they can be used to visually monitor the
|
||||
evolution of available properties. The window title shows the current
|
||||
run number that this chart window corresponds to. Same as for the
|
||||
*Output* window, the chart window is replaced on each new run, but the
|
||||
behavior can be changed in the preferences dialog.
|
||||
|
||||
.. versionadded:: 1.6
|
||||
|
||||
Support for YAML export added
|
||||
property can be shown at a time. The plots will be updated with new
|
||||
data as the run progresses, so they can be used to visually monitor the
|
||||
evolution of available properties. The window title will show the
|
||||
current run number that this chart window corresponds to. Same as
|
||||
explained for the log window above, by default, the chart window will
|
||||
be replaced on each new run, but the behavior can be changed in the
|
||||
preferences dialog.
|
||||
|
||||
From the ``File`` menu on the top left, it is possible to save an image
|
||||
of the currently displayed plot or export the data in either plain text
|
||||
columns (for use by plotting tools like `gnuplot
|
||||
<http://www.gnuplot.info/>`_ or `grace
|
||||
<https://plasma-gate.weizmann.ac.il/Grace/>`_), as CSV data which can be
|
||||
imported for further processing with Microsoft Excel `LibreOffice Calc
|
||||
<https://www.libreoffice.org/>`_ or with Python via `pandas
|
||||
<https://pandas.pydata.org/>`_, or as YAML which can be imported into
|
||||
Python with `PyYAML <https://pyyaml.org/>`_ or pandas.
|
||||
<https://plasma-gate.weizmann.ac.il/Grace/>`_), or as CSV data which can
|
||||
be imported for further processing with Microsoft Excel or `pandas
|
||||
<https://pandas.pydata.org/>`_
|
||||
|
||||
Thermo output data from successive run commands in the input script is
|
||||
combined into a single data set unless the format, number, or names of
|
||||
output columns are changed with a :doc:`thermo_style <thermo_style>` or
|
||||
a :doc:`thermo_modify <thermo_modify>` command, or the current time step
|
||||
is reset with :doc:`reset_timestep <reset_timestep>`, or if a
|
||||
:doc:`clear <clear>` command is issued. This is where the YAML export
|
||||
from the *Charts* window differs from that of the *Output* window:
|
||||
here you get the compounded data set starting with the last change of
|
||||
output fields or timestep setting, while the export from the log will
|
||||
contain *all* YAML output but *segmented* into individual runs.
|
||||
Thermo output data from successive run commands in the input script will
|
||||
be combined into a single data set unless the format, number, or names
|
||||
of output columns are changed with a :doc:`thermo_style <thermo_style>`
|
||||
or a :doc:`thermo_modify <thermo_modify>` command, or the current time
|
||||
step is reset with :doc:`reset_timestep <reset_timestep>`, or if a
|
||||
:doc:`clear <clear>` command is issued.
|
||||
|
||||
Image Slide Show
|
||||
----------------
|
||||
|
||||
By default, if the LAMMPS input contains a :doc:`dump image
|
||||
<dump_image>` command, a "Slide Show" window opens which loads and
|
||||
displays the images created by LAMMPS as they are written. This is a
|
||||
convenient way to visually monitor the progress of the simulation.
|
||||
<dump_image>` command, a "Slide Show" window will open which loads and
|
||||
displays the images created by LAMMPS as they are written.
|
||||
|
||||
.. image:: JPG/lammps-gui-slideshow.png
|
||||
:align: center
|
||||
|
@ -329,17 +250,9 @@ convenient way to visually monitor the progress of the simulation.
|
|||
The various buttons at the bottom right of the window allow single
|
||||
stepping through the sequence of images or playing an animation (as a
|
||||
continuous loop or once from first to last). It is also possible to
|
||||
zoom in or zoom out of the displayed images. The button on the very
|
||||
left triggers an export of the slide show animation to a movie file,
|
||||
provided the `FFmpeg program <https://ffmpeg.org/>`_ is installed.
|
||||
|
||||
.. versionadded:: 1.6
|
||||
|
||||
When clicking on the "garbage can" icon, all image files of the slide
|
||||
show will be deleted. Since their number can be large for long
|
||||
simulations, this option enables to safely and quickly clean up the
|
||||
clutter caused in the working directory by those image files without
|
||||
risk of deleting other files by accident when using wildcards.
|
||||
zoom in or zoom out of the displayed images, and to export the slide
|
||||
show animation to a movie file, if `ffmpeg <https://ffmpeg.org/>`_ is
|
||||
installed.
|
||||
|
||||
Variable Info
|
||||
-------------
|
||||
|
@ -347,22 +260,23 @@ Variable Info
|
|||
During a run, it may be of interest to monitor the value of input script
|
||||
variables, for example to monitor the progress of loops. This can be
|
||||
done by enabling the "Variables Window" in the ``View`` menu or by using
|
||||
the `Ctrl-Shift-W` keyboard shortcut. This shows info similar to the
|
||||
:doc:`info variables <info>` command in a separate window as shown
|
||||
the `Ctrl-Shift-W` keyboard shortcut. This will show info similar to
|
||||
the :doc:`info variables <info>` command in a separate window as shown
|
||||
below.
|
||||
|
||||
.. image:: JPG/lammps-gui-variable-info.png
|
||||
:align: center
|
||||
:scale: 75%
|
||||
|
||||
Like for the *Output* and *Charts* windows, its content is continuously
|
||||
updated during a run. It will show "(none)" if there are no variables
|
||||
Like the log and chart windows, its content is continuously updated
|
||||
during a run. It will show "(none)" if there are no variables
|
||||
defined. Note that it is also possible to *set* :doc:`index style
|
||||
variables <variable>`, that would normally be set via command line
|
||||
flags, via the "Set Variables..." dialog from the ``Run`` menu.
|
||||
LAMMPS-GUI automatically defines the variable "gui_run" to the current
|
||||
value of the run counter. That way it is possible to automatically
|
||||
record a separate log for each run attempt by using the command
|
||||
LAMMPS GUI will automatically set the variable "gui_run" to the
|
||||
current value of the run counter. That way it would be possible
|
||||
to automatically record a log for each run attempt by using the
|
||||
command
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
|
@ -371,34 +285,26 @@ record a separate log for each run attempt by using the command
|
|||
at the beginning of an input file. That would record logs to files
|
||||
``logfile-1.txt``, ``logfile-2.txt``, and so on for successive runs.
|
||||
|
||||
Snapshot Image Viewer
|
||||
---------------------
|
||||
Viewing Snapshot Images
|
||||
-----------------------
|
||||
|
||||
By selecting the ``Create Image`` entry in the ``Run`` menu, or by
|
||||
hitting the `Ctrl-I` (`Command-I` on macOS) keyboard shortcut, or by
|
||||
clicking on the "palette" button in the status bar of the *Editor*
|
||||
window, LAMMPS-GUI sends a custom :doc:`write_dump image <dump_image>`
|
||||
command to LAMMPS and reads back the resulting snapshot image with the
|
||||
current state of the system into an image viewer. This functionality is
|
||||
*not* available *during* an ongoing run. In case LAMMPS is not yet
|
||||
initialized, LAMMPS-GUI tries to identify the line with the first run or
|
||||
minimize command and execute all commands from the input buffer up to
|
||||
that line, and then executes a "run 0" command. This initializes the
|
||||
system so an image of the initial state of the system can be rendered.
|
||||
If there was an error in that process, the snapshot image viewer does
|
||||
not appear.
|
||||
clicking on the "palette" button in the status bar, LAMMPS GUI will send
|
||||
a custom :doc:`write_dump image <dump_image>` command to LAMMPS and read
|
||||
the resulting snapshot image with the current state of the system into
|
||||
an image viewer window. This functionality is not available *during* an
|
||||
ongoing run. When LAMMPS is not yet initialized, LAMMPS GUI will try to
|
||||
identify the line with the first run or minimize command and execute all
|
||||
command up to that line from the input buffer and then add a "run 0"
|
||||
command. This will initialize the system so an image of the initial
|
||||
state of the system can be rendered. If there was an error, the
|
||||
snapshot image viewer will not appear.
|
||||
|
||||
When possible, LAMMPS-GUI tries to detect which elements the atoms
|
||||
correspond to (via their mass) and then colorize them in the image and
|
||||
set their atom diameters accordingly. If this is not possible, for
|
||||
instance when using reduced (= 'lj') :doc:`units <units>`, then
|
||||
LAMMPS-GUI will check the current pair style and if it is a
|
||||
Lennard-Jones type potential, it will extract the *sigma* parameter
|
||||
for each atom type and assign atom diameters from those numbers.
|
||||
|
||||
Otherwise the default sequence of colors of the :doc:`dump image
|
||||
<dump_image>` command is assigned to the different atom types and the
|
||||
diameters are all the same.
|
||||
When possible, LAMMPS GUI will try to detect which elements the atoms
|
||||
correspond to (via their mass) and then colorize them in the image
|
||||
accordingly. Otherwise the default predefined sequence of colors is
|
||||
assigned to the different atom types.
|
||||
|
||||
.. image:: JPG/lammps-gui-image.png
|
||||
:align: center
|
||||
|
@ -408,44 +314,33 @@ The default image size, some default image quality settings, the view
|
|||
style and some colors can be changed in the ``Preferences`` dialog
|
||||
window. From the image viewer window further adjustments can be made:
|
||||
actual image size, high-quality (SSAO) rendering, anti-aliasing, view
|
||||
style, display of box or axes, zoom factor. The view of the system can
|
||||
be rotated horizontally and vertically. It is also possible to only
|
||||
display the atoms within a group defined in the input script (default is
|
||||
"all"). The image can also be re-centered on the center of mass of the
|
||||
selected group. After each change, the image is rendered again and the
|
||||
display updated. The small palette icon on the top left is colored
|
||||
while LAMMPS is running to render the new image; it is grayed out when
|
||||
LAMMPS is finished. When there are many atoms to render and high
|
||||
quality images with anti-aliasing are requested, re-rendering may take
|
||||
several seconds. From the ``File`` menu of the image window, the
|
||||
current image can be saved to a file (keyboard shortcut `Ctrl-S`) or
|
||||
copied to the clipboard (keyboard shortcut `Ctrl-C`) for pasting the
|
||||
image into another application.
|
||||
style, display of box or axes, zoom factor. The view of the system
|
||||
can be rotated horizontally and vertically. It is also possible to
|
||||
only display the atoms within a group defined in the input script
|
||||
(default is "all"). After each change, the image is rendered again
|
||||
and the display updated. The small palette icon on the top left will
|
||||
be colored while LAMMPS is running to render the new image; it will be
|
||||
grayed out when it is finished. When there are many atoms to render
|
||||
and high quality images with anti-aliasing are requested, re-rendering
|
||||
may take several seconds. From the ``File`` menu of the image window,
|
||||
the current image can be saved to a file or copied into the
|
||||
cut-n-paste buffer for pasting into another application.
|
||||
|
||||
.. versionadded:: 1.6
|
||||
Editor Functions
|
||||
----------------
|
||||
|
||||
From the ``File`` menu it is also possible to copy the current
|
||||
:doc:`dump image <dump_image>` and :doc:`dump_modify <dump_image>`
|
||||
commands to the clipboard so they can be pasted into a LAMMPS input file
|
||||
so that the visualization settings of the snapshot image can be repeated
|
||||
for the entire simulation (and thus be repeated in the slide show
|
||||
viewer). This feature has the keyboard shortcut `Ctrl-D`.
|
||||
|
||||
Editor Window
|
||||
-------------
|
||||
|
||||
The *Editor* window of LAMMPS-GUI has most of the usual functionality
|
||||
that similar programs have: text selection via mouse or with cursor
|
||||
moves while holding the Shift key, Cut (`Ctrl-X`), Copy (`Ctrl-C`),
|
||||
Paste (`Ctrl-V`), Undo (`Ctrl-Z`), Redo (`Ctrl-Shift-Z`), Select All
|
||||
(`Ctrl-A`). When trying to exit the editor with a modified buffer, a
|
||||
dialog will pop up asking whether to cancel the exit operation, or to
|
||||
save or not save the buffer contents to a file.
|
||||
The editor has most of the usual functionality that similar programs
|
||||
have: text selection via mouse or with cursor moves while holding the
|
||||
Shift key, Cut (`Ctrl-X`), Copy (`Ctrl-C`), Paste (`Ctrl-V`), Undo
|
||||
(`Ctrl-Z`), Redo (`Ctrl-Shift-Z`), Select All (`Ctrl-A`). When trying
|
||||
to exit the editor with a modified buffer, a dialog will pop up asking
|
||||
whether to cancel the exit operation, or to save or not save the buffer
|
||||
contents to a file.
|
||||
|
||||
Context Specific Word Completion
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
By default, LAMMPS-GUI displays a small pop-up frame with possible
|
||||
By default, LAMMPS GUI will display a small pop-up frame with possible
|
||||
choices for LAMMPS input script commands or styles after 2 characters of
|
||||
a word have been typed.
|
||||
|
||||
|
@ -459,10 +354,10 @@ by clicking on the entry with the mouse. The automatic completion
|
|||
pop-up can be disabled in the ``Preferences`` dialog, but the completion
|
||||
can still be requested manually by either hitting the 'Shift-TAB' key or
|
||||
by right-clicking with the mouse and selecting the option from the
|
||||
context menu. Most of the completion information is retrieved from the
|
||||
active LAMMPS instance and thus it shows only available options that
|
||||
have been enabled when compiling LAMMPS. That list, however, excludes
|
||||
accelerated styles and commands; for improved clarity, only the
|
||||
context menu. Most of the completion information is taken from the
|
||||
LAMMPS instance and thus it will be adjusted to only show available
|
||||
options that have been enabled while compiling LAMMPS. That, however,
|
||||
excludes accelerated styles and commands; for improved clarity, only the
|
||||
non-suffix version of styles are shown.
|
||||
|
||||
Line Reformatting
|
||||
|
@ -474,8 +369,8 @@ whitespace padding to commands, type specifiers, IDs and names. This
|
|||
reformatting is performed by default when hitting the 'Enter' key to
|
||||
start a new line. This feature can be turned on or off in the
|
||||
``Preferences`` dialog, but it can still be manually performed by
|
||||
hitting the 'TAB' key. The amount of padding can be adjusted in the
|
||||
``Preferences`` dialog for the *Editor*.
|
||||
hitting the 'TAB' key. The amount of padding can also be changed in the
|
||||
``Preferences`` dialog.
|
||||
|
||||
Internally this functionality is achieved by splitting the line into
|
||||
"words" and then putting it back together with padding added where the
|
||||
|
@ -484,32 +379,17 @@ context can be detected; otherwise a single space is used between words.
|
|||
Context Specific Help
|
||||
^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. |gui-popup1| image:: JPG/lammps-gui-popup-help.png
|
||||
:width: 48%
|
||||
.. image:: JPG/lammps-gui-popup-help.png
|
||||
:align: center
|
||||
:scale: 50%
|
||||
|
||||
.. |gui-popup2| image:: JPG/lammps-gui-popup-view.png
|
||||
:width: 48%
|
||||
|
||||
|gui-popup1| |gui-popup2|
|
||||
|
||||
A unique feature of LAMMPS-GUI is the option to look up the LAMMPS
|
||||
A unique feature of the LAMMPS GUI is the option to look up the
|
||||
documentation for the command in the current line. This can be done by
|
||||
either clicking the right mouse button or by using the `Ctrl-?` keyboard
|
||||
shortcut. When using the mouse, there are additional entries in the
|
||||
context menu that open the corresponding documentation page in the
|
||||
online LAMMPS documentation in a web browser window. When using the
|
||||
keyboard, the first of those entries is chosen.
|
||||
|
||||
.. versionadded:: 1.6
|
||||
|
||||
If the word under the cursor is a file, then additionally the context
|
||||
menu has an entry to open the file in a read-only text viewer window.
|
||||
This is a convenient way to view the contents of files that are
|
||||
referenced in the input. The file viewer also supports on-the-fly
|
||||
decompression based on the file name suffix in a :ref:`similar fashion
|
||||
as available with LAMMPS <gzip>`. If the necessary decompression
|
||||
program is missing or the file cannot be decompressed, the viewer window
|
||||
will contain a corresponding message.
|
||||
shortcut. When clicking the mouse there are additional entries in the
|
||||
context menu that will open the corresponding documentation page in the
|
||||
online LAMMPS documentation. When using the keyboard, the first of
|
||||
those entries will be chosen directly.
|
||||
|
||||
Menu
|
||||
----
|
||||
|
@ -517,9 +397,9 @@ Menu
|
|||
The menu bar has entries ``File``, ``Edit``, ``Run``, ``View``, and
|
||||
``About``. Instead of using the mouse to click on them, the individual
|
||||
menus can also be activated by hitting the `Alt` key together with the
|
||||
corresponding underlined letter, that is `Alt-F` activates the
|
||||
corresponding underlined letter, that is `Alt-F` will activate the
|
||||
``File`` menu. For the corresponding activated sub-menus, the key
|
||||
corresponding the underlined letters can be used to select entries
|
||||
corresponding the underlined letters can again be used to select entries
|
||||
instead of using the mouse.
|
||||
|
||||
File
|
||||
|
@ -527,22 +407,19 @@ File
|
|||
|
||||
The ``File`` menu offers the usual options:
|
||||
|
||||
- ``New`` clears the current buffer and resets the file name to ``*unknown*``
|
||||
- ``Open`` opens a dialog to select a new file for editing in the *Editor*
|
||||
- ``View`` opens a dialog to select a file for viewing in a *separate* window (read-only) with support for on-the-fly decompression as explained above.
|
||||
- ``Save`` saves the current file; if the file name is ``*unknown*``
|
||||
- ``New`` will clear the current buffer and reset the file name to ``*unknown*``
|
||||
- ``Open`` will open a dialog to select a new file
|
||||
- ``Save`` will save the current file; if the file name is ``*unknown*``
|
||||
a dialog will open to select a new file name
|
||||
- ``Save As`` opens a dialog to select and new file name (and folder, if
|
||||
desired) and saves the buffer to it. Writing the buffer to a
|
||||
different folder will also switch the current working directory to
|
||||
that folder.
|
||||
- ``Quit`` exits LAMMPS-GUI. If there are unsaved changes, a dialog will
|
||||
appear to either cancel the operation, or to save, or to not save the
|
||||
modified buffer.
|
||||
- ``Save As`` will open a dialog to select and new file name and save
|
||||
the buffer to it
|
||||
- ``Quit`` will exit LAMMPS GUI. If there are unsaved changes, a dialog
|
||||
will appear to either cancel the operation, or to save or not save the
|
||||
edited file.
|
||||
|
||||
In addition, up to 5 recent file names will be listed after the ``Open``
|
||||
entry that allows re-opening recently opened files. This list is stored
|
||||
when quitting and recovered when starting again.
|
||||
In addition, up to 5 recent file names will be listed after the
|
||||
``Open`` entry that allows re-opening recent files. This list is
|
||||
stored when quitting and recovered when starting again.
|
||||
|
||||
Edit
|
||||
^^^^
|
||||
|
@ -550,20 +427,19 @@ Edit
|
|||
The ``Edit`` menu offers the usual editor functions like ``Undo``,
|
||||
``Redo``, ``Cut``, ``Copy``, ``Paste``. It can also open a
|
||||
``Preferences`` dialog (keyboard shortcut `Ctrl-P`) and allows deletion
|
||||
of all stored preferences and settings, so they are reset to their
|
||||
default values.
|
||||
of all stored preferences so they will be reset to default values.
|
||||
|
||||
Run
|
||||
^^^
|
||||
|
||||
The ``Run`` menu has options to start and stop a LAMMPS process. Rather
|
||||
than calling the LAMMPS executable as a separate executable, the
|
||||
LAMMPS-GUI is linked to the LAMMPS library and thus can run LAMMPS
|
||||
internally through the :ref:`LAMMPS C-library interface <lammps_c_api>`
|
||||
in a separate thread.
|
||||
The ``Run`` menu has options to start and stop a LAMMPS process.
|
||||
Rather than calling the LAMMPS executable as a separate executable,
|
||||
the LAMMPS GUI is linked to the LAMMPS library and thus can run LAMMPS
|
||||
internally through the :ref:`LAMMPS C-library interface
|
||||
<lammps_c_api>`.
|
||||
|
||||
Specifically, a LAMMPS instance will be created by calling
|
||||
:cpp:func:`lammps_open_no_mpi`. The buffer contents are then executed by
|
||||
:cpp:func:`lammps_open_no_mpi`. The buffer contents then executed by
|
||||
calling :cpp:func:`lammps_commands_string`. Certain commands and
|
||||
features are only available after a LAMMPS instance is created. Its
|
||||
presence is indicated by a small LAMMPS ``L`` logo in the status bar
|
||||
|
@ -573,16 +449,16 @@ reading the file. This is mainly provided as a fallback option in
|
|||
case the input uses some feature that is not available when running
|
||||
from a string buffer.
|
||||
|
||||
The LAMMPS calculations are run in a concurrent thread so that the GUI
|
||||
can stay responsive and be updated during the run. The GUI can retrieve
|
||||
data from the running LAMMPS instance and tell it to stop at the next
|
||||
timestep. The ``Stop LAMMPS`` entry will do this by calling the
|
||||
:cpp:func:`lammps_force_timeout` library function, which is equivalent
|
||||
to a :doc:`timer timeout 0 <timer>` command.
|
||||
The LAMMPS calculation will be run in a concurrent thread so that the
|
||||
GUI can stay responsive and be updated during the run. This can be
|
||||
used to tell the running LAMMPS instance to stop at the next timestep.
|
||||
The ``Stop LAMMPS`` entry will do this by calling
|
||||
:cpp:func:`lammps_force_timeout`, which is equivalent to a :doc:`timer
|
||||
timeout 0 <timer>` command.
|
||||
|
||||
The ``Set Variables...`` entry opens a dialog box where
|
||||
The ``Set Variables...`` entry will open a dialog box where
|
||||
:doc:`index style variables <variable>` can be set. Those variables
|
||||
are passed to the LAMMPS instance when it is created and are thus
|
||||
will be passed to the LAMMPS instance when it is created and are thus
|
||||
set *before* a run is started.
|
||||
|
||||
.. image:: JPG/lammps-gui-variables.png
|
||||
|
@ -602,12 +478,12 @@ in an ``Image Viewer`` window.
|
|||
|
||||
The ``View in OVITO`` entry will launch `OVITO <https://ovito.org>`_
|
||||
with a :doc:`data file <write_data>` containing the current state of
|
||||
the system. This option is only available if LAMMPS-GUI can find
|
||||
the system. This option is only available if the LAMMPS GUI can find
|
||||
the OVITO executable in the system path.
|
||||
|
||||
The ``View in VMD`` entry will launch VMD with a :doc:`data file
|
||||
<write_data>` containing the current state of the system. This option
|
||||
is only available if LAMMPS-GUI can find the VMD executable in the
|
||||
is only available if the LAMMPS GUI can find the VMD executable in the
|
||||
system path.
|
||||
|
||||
View
|
||||
|
@ -622,17 +498,14 @@ About
|
|||
^^^^^
|
||||
|
||||
The ``About`` menu finally offers a couple of dialog windows and an
|
||||
option to launch the LAMMPS online documentation in a web browser. The
|
||||
``About LAMMPS-GUI`` entry displays a dialog with a summary of the
|
||||
option to launch the LAMMPS online documentation in a web browser.
|
||||
The ``About LAMMPS`` entry displays a dialog with a summary of the
|
||||
configuration settings of the LAMMPS library in use and the version
|
||||
number of LAMMPS-GUI itself. The ``Quick Help`` displays a dialog with
|
||||
a minimal description of LAMMPS-GUI. The ``LAMMPS-GUI Howto`` entry
|
||||
will open this documentation page from the online documentation in a web
|
||||
browser window. The ``LAMMPS Manual`` entry will open the main page of
|
||||
the LAMMPS online documentation in a web browser window.
|
||||
The ``LAMMPS Tutorial`` entry will open the main page of the set of
|
||||
LAMMPS tutorials authored and maintained by Simon Gravelle at
|
||||
https://lammpstutorials.github.io/ in a web browser window.
|
||||
number of LAMMPS GUI itself. The ``Quick Help`` displays a dialog
|
||||
with a minimal description of LAMMPS GUI. The ``LAMMPS GUI Howto``
|
||||
entry will open this documentation page from the online documentation
|
||||
in a web browser window. The ``LAMMPS Manual`` entry will open the
|
||||
main page of the LAMMPS documentation in the web browser.
|
||||
|
||||
-----
|
||||
|
||||
|
@ -640,8 +513,8 @@ Preferences
|
|||
-----------
|
||||
|
||||
The ``Preferences`` dialog allows customization of the behavior and
|
||||
look of LAMMPS-GUI. The settings are grouped and each group is
|
||||
displayed within a tab.
|
||||
look of the LAMMPS GUI application. The settings are grouped and each
|
||||
group is displayed within a tab.
|
||||
|
||||
.. |guiprefs1| image:: JPG/lammps-gui-prefs-general.png
|
||||
:width: 24%
|
||||
|
@ -661,9 +534,9 @@ General Settings:
|
|||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
- *Echo input to log:* when checked, all input commands, including
|
||||
variable expansions, are echoed to the *Output* window. This is
|
||||
variable expansions, will be echoed to the log window. This is
|
||||
equivalent to using `-echo screen` at the command line. There is no
|
||||
log *file* produced by default, since LAMMPS-GUI uses `-log none`.
|
||||
log *file* produced by default, since LAMMPS GUI uses `-log none`.
|
||||
- *Include citation details:* when checked full citation info will be
|
||||
included to the log window. This is equivalent to using `-cite
|
||||
screen` on the command line.
|
||||
|
@ -685,12 +558,12 @@ General Settings:
|
|||
chart window will be replaced when a new snapshot image is requested,
|
||||
otherwise each command will create a new image window.
|
||||
- *Path to LAMMPS Shared Library File:* this option is only visible
|
||||
when LAMMPS-GUI was compiled to load the LAMMPS library at run time
|
||||
when LAMMPS GUI was compiled to load the LAMMPS library at run time
|
||||
instead of being linked to it directly. With the ``Browse..`` button
|
||||
or by changing the text, a different shared library file with a
|
||||
different compilation of LAMMPS with different settings or from a
|
||||
different version can be loaded. After this setting was changed,
|
||||
LAMMPS-GUI needs to be re-launched.
|
||||
LAMMPS GUI needs to be re-launched.
|
||||
- *Select Default Font:* Opens a font selection dialog where the type
|
||||
and size for the default font (used for everything but the editor and
|
||||
log) of the application can be set.
|
||||
|
@ -698,12 +571,11 @@ General Settings:
|
|||
size for the text editor and log font of the application can be set.
|
||||
- *GUI update interval:* Allows to set the time interval between GUI
|
||||
and data updates during a LAMMPS run in milliseconds. The default is
|
||||
to update the GUI every 10 milliseconds. This is good for most cases.
|
||||
For LAMMPS runs that run *very* fast, however, data may be missed and
|
||||
to update the GUI every 100 milliseconds. This is good for most cases.
|
||||
For LAMMPS runs that run very fast, however, data may be missed and
|
||||
through lowering this interval, this can be corrected. However, this
|
||||
will make the GUI use more resources, which may be a problem on some
|
||||
computers with slower CPUs and a small number of CPU cores. This
|
||||
setting may be changed to a value between 1 and 1000 milliseconds.
|
||||
computers with slower CPUs. The default value is 100 milliseconds.
|
||||
|
||||
Accelerators:
|
||||
^^^^^^^^^^^^^
|
||||
|
@ -776,54 +648,48 @@ available (On macOS use the Command key instead of Ctrl/Control).
|
|||
- Redo edit
|
||||
- Ctrl+/
|
||||
- Stop Active Run
|
||||
* - Ctrl+Shift+F
|
||||
- View File
|
||||
* - Ctrl+S
|
||||
- Save File
|
||||
- Ctrl+C
|
||||
- Copy text
|
||||
- Ctrl+Shift+V
|
||||
- Set Variables
|
||||
* - Ctrl+S
|
||||
- Save File
|
||||
* - Ctrl+Shift+S
|
||||
- Save File As
|
||||
- Ctrl+X
|
||||
- Cut text
|
||||
- Ctrl+I
|
||||
- Snapshot Image
|
||||
* - Ctrl+Shift+S
|
||||
- Save File As
|
||||
* - Ctrl+Q
|
||||
- Quit Application
|
||||
- Ctrl+V
|
||||
- Paste text
|
||||
- Ctrl+L
|
||||
- Slide Show
|
||||
* - Ctrl+Q
|
||||
- Quit Application
|
||||
* - Ctrl+W
|
||||
- Close Window
|
||||
- Ctrl+A
|
||||
- Select All
|
||||
- Ctrl+P
|
||||
- Preferences
|
||||
* - Ctrl+W
|
||||
- Close Window
|
||||
* - Ctrl+Shift+A
|
||||
- About LAMMPS
|
||||
- Ctrl+Shift+H
|
||||
- Quick Help
|
||||
- Ctrl+Shift+G
|
||||
- LAMMPS-GUI Howto
|
||||
* - Ctrl+Shift+A
|
||||
- About LAMMPS
|
||||
- LAMMPS GUI Howto
|
||||
* - Ctrl+Shift+M
|
||||
- LAMMPS Manual
|
||||
- Ctrl+?
|
||||
- Context Help
|
||||
- Ctrl+Shift+W
|
||||
- Show Variables
|
||||
* - Ctrl+Shift+M
|
||||
- LAMMPS Manual
|
||||
* - Ctrl+Shift+Enter
|
||||
- Run File
|
||||
- TAB
|
||||
- Reformat line
|
||||
- Shift+TAB
|
||||
- Show Completions
|
||||
* - Ctrl+Shift+T
|
||||
- LAMMPS Tutorial
|
||||
- Ctrl+Shift+Enter
|
||||
- Run File
|
||||
-
|
||||
-
|
||||
|
||||
Further editing keybindings `are documented with the Qt documentation
|
||||
<https://doc.qt.io/qt-5/qplaintextedit.html#editing-key-bindings>`_. In
|
||||
|
|
|
@ -6,22 +6,19 @@ PyLammps Tutorial
|
|||
Overview
|
||||
--------
|
||||
|
||||
:py:class:`PyLammps <lammps.PyLammps>` is a Python wrapper class for
|
||||
LAMMPS which can be created on its own or use an existing
|
||||
:py:class:`lammps Python <lammps.lammps>` object. It creates a simpler,
|
||||
``PyLammps`` is a Python wrapper class for LAMMPS which can be created
|
||||
on its own or use an existing lammps Python object. It creates a simpler,
|
||||
more "pythonic" interface to common LAMMPS functionality, in contrast to
|
||||
the :py:class:`lammps <lammps.lammps>` wrapper for the LAMMPS :ref:`C
|
||||
language library interface API <lammps_c_api>` which is written using
|
||||
`Python ctypes <ctypes_>`_. The :py:class:`lammps <lammps.lammps>`
|
||||
wrapper is discussed on the :doc:`Python_head` doc page.
|
||||
the ``lammps`` wrapper for the C-style LAMMPS library interface which
|
||||
is written using `Python ctypes <ctypes_>`_. The ``lammps`` wrapper
|
||||
is discussed on the :doc:`Python_head` doc page.
|
||||
|
||||
Unlike the flat `ctypes <ctypes_>`_ interface, PyLammps exposes a
|
||||
discoverable API. It no longer requires knowledge of the underlying C++
|
||||
code implementation. Finally, the :py:class:`IPyLammps
|
||||
<lammps.IPyLammps>` wrapper builds on top of :py:class:`PyLammps
|
||||
<lammps.PyLammps>` and adds some additional features for `IPython
|
||||
integration <ipython_>`_ into `Jupyter notebooks <jupyter_>`_, e.g. for
|
||||
embedded visualization output from :doc:`dump style image <dump_image>`.
|
||||
Unlike the flat ``ctypes`` interface, PyLammps exposes a discoverable
|
||||
API. It no longer requires knowledge of the underlying C++ code
|
||||
implementation. Finally, the ``IPyLammps`` wrapper builds on top of
|
||||
``PyLammps`` and adds some additional features for
|
||||
`IPython integration <ipython_>`_ into `Jupyter notebooks <jupyter_>`_,
|
||||
e.g. for embedded visualization output from :doc:`dump style image <dump_image>`.
|
||||
|
||||
.. _ctypes: https://docs.python.org/3/library/ctypes.html
|
||||
.. _ipython: https://ipython.org/
|
||||
|
@ -33,22 +30,19 @@ Comparison of lammps and PyLammps interfaces
|
|||
lammps.lammps
|
||||
"""""""""""""
|
||||
|
||||
* uses `ctypes <ctypes_>`_
|
||||
* direct memory access to native C++ data with optional support for NumPy arrays
|
||||
* uses ``ctypes``
|
||||
* direct memory access to native C++ data
|
||||
* provides functions to send and receive data to LAMMPS
|
||||
* interface modeled after the LAMMPS :ref:`C language library interface API <lammps_c_api>`
|
||||
* requires knowledge of how LAMMPS internally works (C pointers, etc)
|
||||
* full support for running Python with MPI using `mpi4py <https://mpi4py.readthedocs.io>`_
|
||||
|
||||
lammps.PyLammps
|
||||
"""""""""""""""
|
||||
|
||||
* higher-level abstraction built on *top* of original :py:class:`ctypes based interface <lammps.lammps>`
|
||||
* higher-level abstraction built on top of original ctypes interface
|
||||
* manipulation of Python objects
|
||||
* communication with LAMMPS is hidden from API user
|
||||
* shorter, more concise Python
|
||||
* better IPython integration, designed for quick prototyping
|
||||
* designed for serial execution
|
||||
|
||||
Quick Start
|
||||
-----------
|
||||
|
@ -512,26 +506,14 @@ inside of the IPython notebook.
|
|||
Using PyLammps and mpi4py (Experimental)
|
||||
----------------------------------------
|
||||
|
||||
PyLammps can be run in parallel using `mpi4py
|
||||
<https://mpi4py.readthedocs.io>`_. This python package can be installed
|
||||
using
|
||||
PyLammps can be run in parallel using mpi4py. This python package can be installed using
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
pip install mpi4py
|
||||
|
||||
.. warning::
|
||||
|
||||
Usually, any :py:class:`PyLammps <lammps.PyLammps>` command must be
|
||||
executed by *all* MPI processes. However, evaluations and querying
|
||||
the system state is only available on MPI rank 0. Using these
|
||||
functions from other MPI ranks will raise an exception.
|
||||
|
||||
The following is a short example which reads in an existing LAMMPS input
|
||||
file and executes it in parallel. You can find in.melt in the
|
||||
examples/melt folder. Please take note that the
|
||||
:py:meth:`PyLammps.eval() <lammps.PyLammps.eval>` is called only from
|
||||
MPI rank 0.
|
||||
The following is a short example which reads in an existing LAMMPS input file and
|
||||
executes it in parallel. You can find in.melt in the examples/melt folder.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
|
@ -553,6 +535,10 @@ following mpirun command:
|
|||
|
||||
mpirun -np 4 python melt.py
|
||||
|
||||
.. warning::
|
||||
|
||||
Any command must be executed by all MPI processes. However, evaluations and querying the system state is only available on rank 0.
|
||||
|
||||
Feedback and Contributing
|
||||
-------------------------
|
||||
|
||||
|
|
|
@ -1,116 +0,0 @@
|
|||
Reproducing hydrodynamics and elastic objects (RHEO)
|
||||
====================================================
|
||||
|
||||
The RHEO package is a hybrid implementation of smoothed particle
|
||||
hydrodynamics (SPH) for fluid flow, which can couple to the :doc:`BPM package
|
||||
<Howto_bpm>` to model solid elements. RHEO combines these methods to enable
|
||||
mesh-free modeling of multi-phase material systems. Its SPH solver supports
|
||||
many advanced options including reproducing kernels, particle shifting, free
|
||||
surface identification, and solid surface reconstruction. To model fluid-solid
|
||||
systems, the status of particles can dynamically change between a fluid and
|
||||
solid state, e.g. during melting/solidification, which determines how they
|
||||
interact and their physical behavior. The package is designed with modularity
|
||||
in mind, so one can easily turn various features on/off, adjust physical
|
||||
details of the system, or develop new capabilities. For instance, the numerics
|
||||
associated with calculating gradients, reproducing kernels, etc. are separated
|
||||
into distinct classes to simplify the development of new integration schemes
|
||||
which can call these calculations. Additional numerical details can be found in
|
||||
:ref:`(Palermo) <howto_rheo_palermo>` and
|
||||
:ref:`(Clemmer) <howto_rheo_clemmer>`.
|
||||
|
||||
Note, if you simply want to run a traditional SPH simulation, the :ref:`SPH package
|
||||
<PKG-SPH>` package is likely better suited for your application. It has fewer advanced
|
||||
features and therefore benefits from improved performance. The :ref:`MACHDYN
|
||||
<PKG-MACHDYN>` package for solids may also be relevant for fluid-solid problems.
|
||||
|
||||
----------
|
||||
|
||||
At the core of the package is :doc:`fix rheo <fix_rheo>` which integrates
|
||||
particle trajectories and controls many optional features (e.g. the use
|
||||
of reproducing kernels). In conjunction to fix rheo, one must specify an
|
||||
instance of :doc:`fix rheo/pressure <fix_rheo_pressure>` and
|
||||
:doc:`fix rheo/viscosity <fix_rheo_viscosity>` to define a pressure equation
|
||||
of state and viscosity model, respectively. Optionally, one can model
|
||||
a heat equation with :doc:`fix rheo/thermal <fix_rheo_thermal>`, which also
|
||||
allows the user to specify equations for a particle's thermal conductivity,
|
||||
specific heat, latent heat, and melting temperature. The ordering of these
|
||||
fixes in an an input script matters. Fix rheo must be defined prior to all
|
||||
other RHEO fixes.
|
||||
|
||||
Typically, RHEO requires atom style rheo. In addition to typical atom
|
||||
properties like positions and forces, particles store a local density,
|
||||
viscosity, pressure, and status. If thermal evolution is modeled, one must
|
||||
use atom style rheo/thermal which also includes a local energy, temperature, and
|
||||
conductivity. Note that the temperature is always derived from the energy.
|
||||
This implies the *temperature* attribute of :doc:`the set command <set>` does not
|
||||
affect particles. Instead, one should use the *sph/e* attribute.
|
||||
|
||||
The status variable uses bit-masking to track various properties of a particle
|
||||
such as its current state of matter (fluid or solid) and its location relative
|
||||
to a surface. Some of these properties (and others) can be accessed using
|
||||
:doc:`compute rheo/property/atom <compute_rheo_property_atom>`. The *status*
|
||||
attribute in :doc:`the set command <set>` only allows control over the first bit
|
||||
which sets the state of matter, 0 is fluid and 1 is solid.
|
||||
|
||||
Fluid interactions, including pressure forces, viscous forces, and heat exchange,
|
||||
are calculated using :doc:`pair rheo <pair_rheo>`. Unlike typical pair styles,
|
||||
pair rheo ignores the :doc:`special bond <special_bonds>` settings. Instead,
|
||||
it determines whether to calculate forces based on the status of particles: e.g.,
|
||||
hydrodynamic forces are only calculated if a fluid particle is involved.
|
||||
|
||||
----------
|
||||
|
||||
To model elastic objects, there are currently two mechanisms in RHEO, one designed
|
||||
for bulk solid bodies and the other for thin shells. Both mechanisms rely on
|
||||
introducing bonded forces between particles and therefore require a hybrid of atom
|
||||
style bond and rheo (or rheo/thermal).
|
||||
|
||||
To create an elastic solid body, one has to (a) change the status of constituent
|
||||
particles to solid (e.g. with the :doc:`set <set>` command), (b) create bpm
|
||||
bonds between the particles (see the :doc:`bpm howto <Howto_bpm>` page for
|
||||
more details), and (c) use :doc:`pair rheo/solid <pair_rheo_solid>` to
|
||||
apply repulsive contact forces between distinct solid bodies. Akin to pair rheo,
|
||||
pair rheo/solid considers a particles fluid/solid phase to determine whether to
|
||||
apply forces. However, unlike pair rheo, pair rheo/solid does obey special bond
|
||||
settings such that contact forces do not have to be calculated between two bonded
|
||||
solid particles in the same elastic body.
|
||||
|
||||
In systems with thermal evolution, fix rheo/thermal can optionally set a
|
||||
melting/solidification temperature allowing particles to dynamically swap their
|
||||
state between fluid and solid when the temperature exceeds or drops below the
|
||||
critical temperature, respectively. Using the *react* option, one can specify a maximum
|
||||
bond length and a bond type. Then, when solidifying, particles will search their
|
||||
local neighbors and automatically create bonds with any neighboring solid particles
|
||||
in range. For BPM bond styles, bonds will then use the immediate position of the two
|
||||
particles to calculate a reference state. When melting, particles will delete any
|
||||
bonds of the specified type when reverting to a fluid state. Special bonds are updated
|
||||
as bonds are created/broken.
|
||||
|
||||
The other option for elastic objects is an elastic shell that is nominally much
|
||||
thinner than a particle diameter, e.g. a oxide skin which gradually forms over time
|
||||
on the surface of a fluid. Currently, this is implemented using
|
||||
:doc:`fix rheo/oxidation <fix_rheo_oxidation>` and bond style
|
||||
:doc:`rheo/shell <bond_rheo_shell>`. Essentially, fix rheo/oxidation creates candidate
|
||||
bonds of a specified type between surface fluid particles within a specified distance.
|
||||
a newly created rheo/shell bond will then start a timer. While the timer is counting
|
||||
down, the bond will delete itself if particles move too far apart or move away from the
|
||||
surface. However, if the timer reaches a user-defined threshold, then the bond will
|
||||
activate and apply additional forces to the fluid particles. Bond style rheo/shell
|
||||
then operates very similarly to a BPM bond style, storing a reference length and
|
||||
breaking if stretched too far. Unlike the above method, this option does not remove
|
||||
the underlying fluid interactions (although particle shifting is turned off) and does
|
||||
not modify special bond settings of particles.
|
||||
|
||||
While these two options are not expected to be appropriate for every system,
|
||||
either framework can be modified to create more suitable models (e.g. by changing the
|
||||
criteria for creating/deleting a bond or altering force calculations).
|
||||
|
||||
----------
|
||||
|
||||
.. _howto_rheo_palermo:
|
||||
|
||||
**(Palermo)** Palermo, Wolf, Clemmer, O'Connor, in preparation.
|
||||
|
||||
.. _howto_rheo_clemmer:
|
||||
|
||||
**(Clemmer)** Clemmer, Pierce, O'Connor, Nevins, Jones, Lechman, Tencer, Appl. Math. Model., 130, 310-326 (2024).
|
|
@ -35,11 +35,11 @@ packages listed below), they do not depend on any installed software and
|
|||
thus should run on *any* 64-bit x86 machine with *any* Linux version.
|
||||
|
||||
These executable include most of the available packages and multi-thread
|
||||
parallelization (via INTEL, KOKKOS, or OPENMP package). They are
|
||||
**not** compatible with MPI. Several of the LAMMPS tools executables
|
||||
(e.g. ``msi2lmp``) are included as well. Because of the static linkage,
|
||||
there is no ``liblammps.so`` library file and thus also the LAMMPS
|
||||
python module, which depends on it, is not included.
|
||||
parallelization (via INTEL, KOKKOS, or OPENMP package). They are **not**
|
||||
compatible with MPI. Several of the LAMMPS tools executables (e.g. ``msi2lmp``)
|
||||
and the ``lammps-shell`` program are included as well. Because of the
|
||||
static linkage, there is no ``liblammps.so`` library file and thus also the
|
||||
LAMMPS python module, which depends on it, is not included.
|
||||
|
||||
The compressed tar archives available for download have names following
|
||||
the pattern ``lammps-linux-x86_64-<version>.tar.gz`` and will all unpack
|
||||
|
|
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 105 KiB |
Before Width: | Height: | Size: 145 KiB After Width: | Height: | Size: 123 KiB |
Before Width: | Height: | Size: 103 KiB After Width: | Height: | Size: 95 KiB |
Before Width: | Height: | Size: 93 KiB After Width: | Height: | Size: 90 KiB |
Before Width: | Height: | Size: 103 KiB After Width: | Height: | Size: 130 KiB |
Before Width: | Height: | Size: 96 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 67 KiB |
Before Width: | Height: | Size: 171 KiB |
|
@ -13,8 +13,6 @@ This section documents the following functions:
|
|||
- :cpp:func:`lammps_extract_setting`
|
||||
- :cpp:func:`lammps_extract_global_datatype`
|
||||
- :cpp:func:`lammps_extract_global`
|
||||
- :cpp:func:`lammps_extract_pair_dimension`
|
||||
- :cpp:func:`lammps_extract_pair`
|
||||
- :cpp:func:`lammps_map_atom`
|
||||
|
||||
--------------------
|
||||
|
@ -125,16 +123,6 @@ subdomains and processors.
|
|||
|
||||
-----------------------
|
||||
|
||||
.. doxygenfunction:: lammps_extract_pair_dimension
|
||||
:project: progguide
|
||||
|
||||
-----------------------
|
||||
|
||||
.. doxygenfunction:: lammps_extract_pair
|
||||
:project: progguide
|
||||
|
||||
-----------------------
|
||||
|
||||
.. doxygenfunction:: lammps_map_atom
|
||||
:project: progguide
|
||||
|
||||
|
|
|
@ -8,12 +8,12 @@ info on how to download or build any extra library it requires. It also
|
|||
gives links to documentation, example scripts, and pictures/movies (if
|
||||
available) that illustrate use of the package.
|
||||
|
||||
The majority of packages can be included in a LAMMPS build with a single
|
||||
setting (``-D PKG_<NAME>=on`` for CMake) or command (``make yes-<name>``
|
||||
for make). See the :doc:`Build package <Build_package>` page for more
|
||||
info. A few packages may require additional steps; this is indicated in
|
||||
the descriptions below. The :doc:`Build extras <Build_extras>` page
|
||||
gives those details.
|
||||
The majority of packages can be included in a LAMMPS build with a
|
||||
single setting (``-D PKG_<NAME>=on`` for CMake) or command
|
||||
(``make yes-<name>`` for make). See the :doc:`Build package <Build_package>`
|
||||
page for more info. A few packages may require additional steps;
|
||||
this is indicated in the descriptions below. The :doc:`Build extras <Build_extras>`
|
||||
page gives those details.
|
||||
|
||||
.. note::
|
||||
|
||||
|
@ -103,7 +103,6 @@ gives those details.
|
|||
* :ref:`QEQ <PKG-QEQ>`
|
||||
* :ref:`QMMM <PKG-QMMM>`
|
||||
* :ref:`QTB <PKG-QTB>`
|
||||
* :ref:`RHEO <PKG-RHEO>`
|
||||
* :ref:`REACTION <PKG-REACTION>`
|
||||
* :ref:`REAXFF <PKG-REAXFF>`
|
||||
* :ref:`REPLICA <PKG-REPLICA>`
|
||||
|
@ -1324,19 +1323,18 @@ KSPACE package
|
|||
|
||||
**Contents:**
|
||||
|
||||
A variety of long-range Coulombic solvers, as well as pair styles which
|
||||
compute the corresponding short-range pairwise Coulombic interactions.
|
||||
These include Ewald, particle-particle particle-mesh (PPPM), and
|
||||
multilevel summation method (MSM) solvers.
|
||||
A variety of long-range Coulombic solvers, as well as pair styles
|
||||
which compute the corresponding short-range pairwise Coulombic
|
||||
interactions. These include Ewald, particle-particle particle-mesh
|
||||
(PPPM), and multilevel summation method (MSM) solvers.
|
||||
|
||||
**Install:**
|
||||
|
||||
Building with this package requires a 1d FFT library be present on your
|
||||
system for use by the PPPM solvers. This can be the KISS FFT library
|
||||
provided with LAMMPS, third party libraries like FFTW, or a
|
||||
vendor-supplied FFT library. See the :doc:`Build settings
|
||||
<Build_settings>` page for details on how to select different FFT
|
||||
options for your LAMMPS build.
|
||||
Building with this package requires a 1d FFT library be present on
|
||||
your system for use by the PPPM solvers. This can be the KISS FFT
|
||||
library provided with LAMMPS, third party libraries like FFTW, or a
|
||||
vendor-supplied FFT library. See the :doc:`Build settings <Build_settings>` page for details on how to select
|
||||
different FFT options for your LAMPMS build.
|
||||
|
||||
**Supporting info:**
|
||||
|
||||
|
@ -2623,45 +2621,6 @@ another set.
|
|||
|
||||
----------
|
||||
|
||||
.. _PKG-RHEO:
|
||||
|
||||
RHEO package
|
||||
------------
|
||||
|
||||
**Contents:**
|
||||
|
||||
Pair styles, bond styles, fixes, and computes for reproducing
|
||||
hydrodynamics and elastic objects. See the :doc:`Howto rheo
|
||||
<Howto_rheo>` page for an overview.
|
||||
|
||||
**Install:**
|
||||
|
||||
This package has :ref:`specific installation instructions <rheo>` on the :doc:`Build extras <Build_extras>` page.
|
||||
|
||||
**Authors:** Joel T. Clemmer (Sandia National Labs),
|
||||
Thomas C. O'Connor (Carnegie Mellon University)
|
||||
|
||||
.. versionadded:: TBD
|
||||
|
||||
**Supporting info:**
|
||||
|
||||
* src/RHEO filenames -> commands
|
||||
* :doc:`Howto_rheo <Howto_rheo>`
|
||||
* :doc:`atom_style rheo <atom_style>`
|
||||
* :doc:`atom_style rheo/thermal <atom_style>`
|
||||
* :doc:`bond_style rheo/shell <bond_rheo_shell>`
|
||||
* :doc:`compute rheo/property/atom <compute_rheo_property_atom>`
|
||||
* :doc:`fix rheo <fix_rheo>`
|
||||
* :doc:`fix rheo/oxidation <fix_rheo_oxidation>`
|
||||
* :doc:`fix rheo/pressure <fix_rheo_pressure>`
|
||||
* :doc:`fix rheo/thermal <fix_rheo_thermal>`
|
||||
* :doc:`fix rheo/viscosity <fix_rheo_viscosity>`
|
||||
* :doc:`pair_style rheo <pair_rheo>`
|
||||
* :doc:`pair_style rheo/solid <pair_rheo_solid>`
|
||||
* examples/rheo
|
||||
|
||||
----------
|
||||
|
||||
.. _PKG-RIGID:
|
||||
|
||||
RIGID package
|
||||
|
|
|
@ -413,11 +413,6 @@ whether an extra library is needed to build and use the package:
|
|||
- :doc:`fix qtb <fix_qtb>` :doc:`fix qbmsst <fix_qbmsst>`
|
||||
- qtb
|
||||
- no
|
||||
* - :ref:`RHEO <PKG-RHEO>`
|
||||
- reproducing hydrodynamics and elastic objects
|
||||
- :doc:`Howto rheo <Howto_rheo>`
|
||||
- rheo
|
||||
- no
|
||||
* - :ref:`REACTION <PKG-REACTION>`
|
||||
- chemical reactions in classical MD
|
||||
- :doc:`fix bond/react <fix_bond_react>`
|
||||
|
|
|
@ -92,6 +92,7 @@ Miscellaneous tools
|
|||
* :ref:`emacs <emacs>`
|
||||
* :ref:`i-PI <ipi>`
|
||||
* :ref:`kate <kate>`
|
||||
* :ref:`LAMMPS shell <lammps_shell>`
|
||||
* :ref:`LAMMPS GUI <lammps_gui>`
|
||||
* :ref:`LAMMPS magic patterns for file(1) <magic>`
|
||||
* :ref:`Offline build tool <offline>`
|
||||
|
@ -443,9 +444,219 @@ The file was provided by Alessandro Luigi Sellerio
|
|||
|
||||
----------
|
||||
|
||||
.. _lammps_shell:
|
||||
|
||||
LAMMPS shell
|
||||
------------
|
||||
|
||||
.. versionadded:: 9Oct2020
|
||||
|
||||
Overview
|
||||
^^^^^^^^
|
||||
|
||||
The LAMMPS Shell, ``lammps-shell`` is a program that functions very
|
||||
similar to the regular LAMMPS executable but has several modifications
|
||||
and additions that make it more powerful for interactive sessions,
|
||||
i.e. where you type LAMMPS commands from the prompt instead of reading
|
||||
them from a file.
|
||||
|
||||
- It uses the readline and history libraries to provide command line
|
||||
editing and context aware TAB-expansion (details on that below).
|
||||
|
||||
- When processing an input file with the '-in' or '-i' flag from the
|
||||
command line, it does not exit at the end of that input file but
|
||||
stops at a prompt, so that additional commands can be issued
|
||||
|
||||
- Errors will not abort the shell but return to the prompt.
|
||||
|
||||
- It has additional commands aimed at interactive use (details below).
|
||||
|
||||
- Interrupting a calculation with CTRL-C will not terminate the
|
||||
session but rather enforce a timeout to cleanly stop an ongoing
|
||||
run (more info on timeouts is in the :doc:`timer command <timer>`
|
||||
documentation).
|
||||
|
||||
These enhancements make the LAMMPS shell an attractive choice for
|
||||
interactive LAMMPS sessions in graphical desktop environments
|
||||
(e.g. Gnome, KDE, Cinnamon, XFCE, Windows).
|
||||
|
||||
TAB-expansion
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
When writing commands interactively at the shell prompt, you can hit
|
||||
the TAB key at any time to try and complete the text. This completion
|
||||
is context aware and will expand any first word only to commands
|
||||
available in that executable.
|
||||
|
||||
- For style commands it will expand to available styles of the
|
||||
corresponding category (e.g. pair styles after a
|
||||
:doc:`pair_style <pair_style>` command).
|
||||
|
||||
- For :doc:`compute <compute>`, :doc:`fix <fix>`, or :doc:`dump <dump>`
|
||||
it will also expand only to already defined groups for the group-ID
|
||||
keyword.
|
||||
|
||||
- For commands like :doc:`compute_modify <compute_modify>`,
|
||||
:doc:`fix_modify <fix_modify>`, or :doc:`dump_modify <dump_modify>`
|
||||
it will expand to known compute/fix/dump IDs only.
|
||||
|
||||
- When typing references to computes, fixes, or variables with a
|
||||
"c\_", "f\_", or "v\_" prefix, respectively, then the expansion will
|
||||
be to known compute/fix IDs and variable names. Variable name
|
||||
expansion is also available for the ${name} variable syntax.
|
||||
|
||||
- In all other cases TAB expansion will complete to names of files
|
||||
and directories.
|
||||
|
||||
Command line editing and history
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
When typing commands, command line editing similar to what BASH
|
||||
provides is available. Thus it is possible to move around the
|
||||
currently line and perform various cut and insert and edit operations.
|
||||
Previous commands can be retrieved by scrolling up (and down)
|
||||
or searching (e.g. with CTRL-r).
|
||||
|
||||
Also history expansion through using the exclamation mark '!'
|
||||
can be performed. Examples: '!!' will be replaced with the previous
|
||||
command, '!-2' will repeat the command before that, '!30' will be
|
||||
replaced with event number 30 in the command history list, and
|
||||
'!run' with the last command line that started with "run". Adding
|
||||
a ":p" to such a history expansion will result that the expansion is
|
||||
printed and added to the history list, but NOT executed.
|
||||
On exit the LAMMPS shell will write the history list to a file
|
||||
".lammps_history" in the current working directory. If such a
|
||||
file exists when the LAMMPS shell is launched it will be read to
|
||||
populate the history list.
|
||||
|
||||
This is realized via the readline library and can thus be customized
|
||||
with an ``.inputrc`` file in the home directory. For application
|
||||
specific customization, the LAMMPS shell uses the name "lammps-shell".
|
||||
For more information about using and customizing an application using
|
||||
readline, please see the available documentation at:
|
||||
https://www.gnu.org/software/readline/
|
||||
|
||||
|
||||
Additional commands
|
||||
^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
The following commands are added to the LAMMPS shell on top of the
|
||||
regular LAMMPS commands:
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
help (or ?) print a brief help message
|
||||
history display the current command history list
|
||||
clear_history wipe out the current command history list
|
||||
save_history <range> <file>
|
||||
write commands from the history to file.
|
||||
The range is given as <from>-<to>, where <from> and <to>
|
||||
may be empty. Example: save_history 100- in.recent
|
||||
source <file> read commands from file (same as "include")
|
||||
pwd print current working directory
|
||||
cd <directory> change current working directory (same as pwd if no directory)
|
||||
mem print current and maximum memory usage
|
||||
\|<command> execute <command> as a shell command and return to the command prompt
|
||||
exit exit the LAMMPS shell cleanly (unlike the "quit" command)
|
||||
|
||||
Please note that some known shell operations are implemented in the
|
||||
LAMMPS :doc:`shell command <shell>` in a platform neutral fashion,
|
||||
while using the '\|' character will always pass the following text
|
||||
to the operating system's shell command.
|
||||
|
||||
Compilation
|
||||
^^^^^^^^^^^
|
||||
|
||||
Compilation of the LAMMPS shell can be enabled by setting the CMake
|
||||
variable ``BUILD_LAMMPS_SHELL`` to "on" or using the makefile in the
|
||||
``tools/lammps-shell`` folder to compile after building LAMMPS using
|
||||
the conventional make procedure. The makefile will likely need
|
||||
customization depending on the features and settings used for
|
||||
compiling LAMMPS.
|
||||
|
||||
Limitations
|
||||
^^^^^^^^^^^
|
||||
|
||||
The LAMMPS shell was not designed for use with MPI parallelization
|
||||
via ``mpirun`` or ``mpiexec`` or ``srun``.
|
||||
|
||||
Readline customization
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
The behavior of the readline functionality can be customized in the
|
||||
``${HOME}/.inputrc`` file. This can be used to alter the default
|
||||
settings or change the key-bindings. The LAMMPS Shell sets the
|
||||
application name ``lammps-shell``, so settings can be either applied
|
||||
globally or only for the LAMMPS shell by bracketing them between
|
||||
``$if lammps-shell`` and ``$endif`` like in the following example:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$if lammps-shell
|
||||
# disable "beep" or "screen flash"
|
||||
set bell-style none
|
||||
# bind the "Insert" key to toggle overwrite mode
|
||||
"\e[2~": overwrite-mode
|
||||
$endif
|
||||
|
||||
More details about this are in the `readline documentation <https://tiswww.cwru.edu/php/chet/readline/rluserman.html#SEC9>`_.
|
||||
|
||||
|
||||
LAMMPS Shell tips and tricks
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Below are some suggestions for how to use and customize the LAMMPS shell.
|
||||
|
||||
Enable tilde expansion
|
||||
""""""""""""""""""""""
|
||||
|
||||
Adding ``set expand-tilde on`` to ``${HOME}/.inputrc`` is recommended as
|
||||
this will change the filename expansion behavior to replace any text
|
||||
starting with "~" by the full path to the corresponding user's home
|
||||
directory. While the expansion of filenames **will** happen on all
|
||||
arguments where the context is not known (e.g. ``~/compile/lamm<TAB>``
|
||||
will expand to ``~/compile/lammps/``), it will not replace the tilde by
|
||||
default. But since LAMMPS does not do tilde expansion itself (unlike a
|
||||
shell), this will result in errors. Instead the tilde-expression should
|
||||
be expanded into a valid path, where the plain "~/" stands for the
|
||||
current user's home directory and "~someuser/" stands for
|
||||
"/home/someuser" or whatever the full path to that user's home directory
|
||||
is.
|
||||
|
||||
File extension association
|
||||
""""""""""""""""""""""""""
|
||||
|
||||
Since the LAMMPS shell (unlike the regular LAMMPS executable) does not
|
||||
exit when an input file is passed on the command line with the "-in" or
|
||||
"-i" flag (the behavior is like for ``python -i <filename>``), it makes
|
||||
the LAMMPS shell suitable for associating it with input files based on
|
||||
their filename extension (e.g. ".lmp"). Since ``lammps-shell`` is a
|
||||
console application, you have to run it inside a terminal program with a
|
||||
command line like this:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
xterm -title "LAMMPS Shell" -e /path/to/lammps-shell -i in.file.lmp
|
||||
|
||||
|
||||
Use history to create an input file
|
||||
"""""""""""""""""""""""""""""""""""
|
||||
|
||||
When experimenting with commands to interactively to figure out a
|
||||
suitable choice of settings or simply the correct syntax, you may want
|
||||
to record part of your commands to a file for later use. This can be
|
||||
done with the ``save_history`` commands, which allows to selectively
|
||||
write a section of the command history to a file (Example:
|
||||
``save_history 25-30 in.run``). This file can be further edited
|
||||
(Example: ``|vim in.run``) and then the file read back in and tried out
|
||||
(Example: ``source in.run``). If the input also creates a system box,
|
||||
you first need to use the :doc:`clear` command.
|
||||
|
||||
----------
|
||||
|
||||
.. _lammps_gui:
|
||||
|
||||
LAMMPS-GUI
|
||||
LAMMPS GUI
|
||||
----------
|
||||
|
||||
.. versionadded:: 2Aug2023
|
||||
|
@ -453,28 +664,25 @@ LAMMPS-GUI
|
|||
Overview
|
||||
^^^^^^^^
|
||||
|
||||
LAMMPS-GUI is a graphical text editor customized for editing LAMMPS
|
||||
LAMMPS GUI is a graphical text editor customized for editing LAMMPS
|
||||
input files that is linked to the :ref:`LAMMPS C-library <lammps_c_api>`
|
||||
and thus can run LAMMPS directly using the contents of the editor's text
|
||||
buffer as input. It can retrieve and display information from LAMMPS
|
||||
while it is running, display visualizations created with the :doc:`dump
|
||||
image command <dump_image>`, and is adapted specifically for editing
|
||||
LAMMPS input files through syntax highlighting, text completion, and
|
||||
reformatting, and linking to the online LAMMPS documentation for known
|
||||
LAMMPS commands and styles.
|
||||
LAMMPS input files through text completion and reformatting, and linking
|
||||
to the online LAMMPS documentation for known LAMMPS commands and styles.
|
||||
|
||||
This is similar to what people traditionally would do to run LAMMPS but
|
||||
all rolled into a single application: that is, using a text editor,
|
||||
plotting program, and a visualization program to edit the input, run
|
||||
LAMMPS, process the output into graphs and visualizations from a command
|
||||
line window. This similarity is a design goal. While making it easy for
|
||||
beginners to start with LAMMPS, it is also the expectation that
|
||||
LAMMPS-GUI users will eventually transition to workflows that most
|
||||
experienced LAMMPS users employ.
|
||||
This is similar to what people traditionally would do to run LAMMPS:
|
||||
using a regular text editor to edit the input and run the necessary
|
||||
commands, possibly including the text editor, too, from a command line
|
||||
terminal window. This similarity is a design goal. While making it easy
|
||||
for beginners to start with LAMMPS, it is also the intention to simplify
|
||||
the transition to workflows like most experienced LAMMPS users do.
|
||||
|
||||
All features have been extensively exposed to keyboard shortcuts, so
|
||||
that there is also appeal for experienced LAMMPS users for prototyping
|
||||
and testing simulation setups.
|
||||
and testing simulations setups.
|
||||
|
||||
Features
|
||||
^^^^^^^^
|
||||
|
@ -482,46 +690,46 @@ Features
|
|||
A detailed discussion and explanation of all features and functionality
|
||||
are in the :doc:`Howto_lammps_gui` tutorial Howto page.
|
||||
|
||||
Here are a few highlights of LAMMPS-GUI
|
||||
Here are a few highlights of LAMMPS GUI
|
||||
|
||||
- Text editor with line numbers and syntax highlighting customized for LAMMPS
|
||||
- Text editor features command completion and auto-indentation for known commands and styles
|
||||
- Text editor will switch its working directory to folder of file in buffer
|
||||
- Many adjustable settings and preferences that are persistent including the 5 most recent files
|
||||
- Text editor with syntax highlighting customized for LAMMPS
|
||||
- Text editor will switch working directory to folder of file in buffer
|
||||
- Text editor will remember up to 5 recent files
|
||||
- Context specific LAMMPS command help via online documentation
|
||||
- LAMMPS is running in a concurrent thread, so the GUI remains responsive
|
||||
- Support for most accelerator packages
|
||||
- Progress bar indicates how far a run command is completed
|
||||
- LAMMPS can be started and stopped with a mouse click or a hotkey
|
||||
- Screen output is captured in an *Output* Window
|
||||
- Thermodynamic output is captured and displayed as line graph in a *Chart* Window
|
||||
- LAMMPS can be started and stopped with a hotkey
|
||||
- Screen output is captured in a Log Window
|
||||
- Thermodynamic output is captured and displayed as line graph in a Chart Window
|
||||
- Indicator for currently executed command
|
||||
- Indicator for line that caused an error
|
||||
- Visualization of current state in Image Viewer (via calling :doc:`write_dump image <dump_image>`)
|
||||
- Capture of images created via :doc:`dump image <dump_image>` in Slide show window
|
||||
- Dialog to set variables, similar to the LAMMPS command line flag '-v' / '-var'
|
||||
- Support for GPU, INTEL, KOKKOS/OpenMP, OPENMAP, and OPT and accelerator packages
|
||||
- Visualization of current state in Image Viewer (via :doc:`dump image <dump_image>`)
|
||||
- Many adjustable settings and preferences that are persistent
|
||||
- Dialog to set variables from the LAMMPS command line
|
||||
|
||||
Parallelization
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
Due to its nature as a graphical application, it is not possible to use
|
||||
the LAMMPS-GUI in parallel with MPI, but OpenMP multi-threading and GPU
|
||||
the LAMMPS GUI in parallel with MPI, but OpenMP multi-threading and GPU
|
||||
acceleration is available and enabled by default.
|
||||
|
||||
Prerequisites and portability
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
LAMMPS-GUI is programmed in C++ based on the C++11 standard and using
|
||||
LAMMPS GUI is programmed in C++ based on the C++11 standard and using
|
||||
the `Qt GUI framework <https://www.qt.io/product/framework>`_.
|
||||
Currently, Qt version 5.12 or later is required; Qt 5.15LTS is
|
||||
recommended; support for Qt version 6.x is available. Building LAMMPS
|
||||
with CMake is required.
|
||||
recommended; support for Qt version 6.x is under active development and
|
||||
thus far only tested with Qt 6.5LTS on Linux. Building LAMMPS with
|
||||
CMake is required.
|
||||
|
||||
The LAMMPS-GUI has been successfully compiled and tested on:
|
||||
The LAMMPS GUI has been successfully compiled and tested on:
|
||||
|
||||
- Ubuntu Linux 20.04LTS x86_64 using GCC 9, Qt version 5.12
|
||||
- Fedora Linux 40 x86\_64 using GCC 14 and Clang 17, Qt version 5.15LTS
|
||||
- Fedora Linux 40 x86\_64 using GCC 14, Qt version 6.7
|
||||
- Fedora Linux 40 x86\_64 using GCC 14, Qt version 6.5LTS
|
||||
- Apple macOS 12 (Monterey) and macOS 13 (Ventura) with Xcode on arm64 and x86\_64, Qt version 5.15LTS
|
||||
- Windows 10 and 11 x86_64 with Visual Studio 2022 and Visual C++ 14.36, Qt version 5.15LTS
|
||||
- Windows 10 and 11 x86_64 with MinGW / GCC 10.0 cross-compiler on Fedora 38, Qt version 5.15LTS
|
||||
|
@ -537,22 +745,20 @@ available from https://download.lammps.org/static or
|
|||
https://github.com/lammps/lammps/releases. You can unpack the archives
|
||||
(or mount the macOS disk image) and run the GUI directly in place. The
|
||||
folder may also be moved around and added to the ``PATH`` environment
|
||||
variable so the executables will be found automatically. The LAMMPS-GUI
|
||||
variable so the executables will be found automatically. The LAMMPS GUI
|
||||
executable is called ``lammps-gui`` and either takes no arguments or
|
||||
attempts to load the first argument as LAMMPS input file.
|
||||
|
||||
.. _lammps_gui_compilation:
|
||||
|
||||
Compilation
|
||||
^^^^^^^^^^^
|
||||
|
||||
The source for the LAMMPS-GUI is included with the LAMMPS source code
|
||||
The source for the LAMMPS GUI is included with the LAMMPS source code
|
||||
distribution in the folder ``tools/lammps-gui`` and thus it can be can
|
||||
be built as part of a regular LAMMPS compilation. :doc:`Using CMake
|
||||
<Howto_cmake>` is required. To enable its compilation, the CMake
|
||||
variable ``-D BUILD_LAMMPS_GUI=on`` must be set when creating the CMake
|
||||
configuration. All other settings (compiler, flags, compile type) for
|
||||
LAMMPS-GUI are then inherited from the regular LAMMPS build. If the Qt
|
||||
LAMMPS GUI are then inherited from the regular LAMMPS build. If the Qt
|
||||
library is packaged for Linux distributions, then its location is
|
||||
typically auto-detected since the required CMake configuration files are
|
||||
stored in a location where CMake can find them without additional help.
|
||||
|
@ -560,17 +766,17 @@ Otherwise, the location of the Qt library installation must be indicated
|
|||
by setting ``-D Qt5_DIR=/path/to/qt5/lib/cmake/Qt5``, which is a path to
|
||||
a folder inside the Qt installation that contains the file
|
||||
``Qt5Config.cmake``. Similarly, for Qt6 the location of the Qt library
|
||||
installation can be indicated by setting ``-D
|
||||
Qt6_DIR=/path/to/qt6/lib/cmake/Qt6``, if necessary. When both, Qt5 and
|
||||
Qt6 are available, Qt6 will be preferred unless ``-D
|
||||
LAMMPS_GUI_USE_QT5=yes`` is set.
|
||||
installation can be indicated by setting ``-D Qt6_DIR=/path/to/qt6/lib/cmake/Qt6``,
|
||||
if necessary. When both, Qt5 and Qt6 are available, Qt6 will be preferred
|
||||
unless ``-D LAMMPS_GUI_USE_QT5=yes`` is set.
|
||||
|
||||
It is possible to build the LAMMPS-GUI as a standalone compilation
|
||||
(e.g. when LAMMPS has been compiled with traditional make). Then the
|
||||
CMake configuration needs to be told where to find the LAMMPS headers
|
||||
and the LAMMPS library, via ``-D LAMMPS_SOURCE_DIR=/path/to/lammps/src``.
|
||||
CMake will try to guess a build folder with the LAMMPS library from that
|
||||
path, but it can also be set with ``-D LAMMPS_LIB_DIR=/path/to/lammps/lib``.
|
||||
It should be possible to build the LAMMPS GUI as a standalone
|
||||
compilation (e.g. when LAMMPS has been compiled with traditional make).
|
||||
Then the CMake configuration needs to be told where to find the LAMMPS
|
||||
headers and the LAMMPS library, via ``-D
|
||||
LAMMPS_SOURCE_DIR=/path/to/lammps/src``. CMake will try to guess a
|
||||
build folder with the LAMMPS library from that path, but it can also be
|
||||
set with ``-D LAMMPS_LIB_DIR=/path/to/lammps/lib``.
|
||||
|
||||
Rather than linking to the LAMMPS library during compilation, it is also
|
||||
possible to compile the GUI with a plugin loader that will load
|
||||
|
@ -621,13 +827,13 @@ There is a custom `x64-GUI-MSVC` build configuration provided in the
|
|||
compilation settings for project. Choosing this configuration will
|
||||
activate building the `lammps-gui.exe` executable in addition to LAMMPS
|
||||
through importing package selection from the ``windows.cmake`` preset
|
||||
file and enabling building the LAMMPS-GUI and disabling building with MPI.
|
||||
file and enabling building the LAMMPS GUI and disabling building with MPI.
|
||||
When requesting an installation from the `Build` menu in Visual Studio,
|
||||
it will create a compressed ``LAMMPS-Win10-amd64.zip`` zip file with the
|
||||
executables and required dependent .dll files. This zip file can be
|
||||
uncompressed and ``lammps-gui.exe`` run directly from there. The
|
||||
uncompressed folder can be added to the ``PATH`` environment and LAMMPS
|
||||
and LAMMPS-GUI can be launched from anywhere from the command line.
|
||||
and LAMMPS GUI can be launched from anywhere from the command line.
|
||||
|
||||
**MinGW64 Cross-compiler**
|
||||
|
||||
|
@ -1123,7 +1329,7 @@ for Tcl with:
|
|||
.. code-block:: bash
|
||||
|
||||
swig -tcl -module tcllammps lammps.i
|
||||
gcc -fPIC -shared $(pkg-config tcl --cflags) -o tcllammps.so \
|
||||
gcc -fPIC -shared $(pkgconf --cflags tcl) -o tcllammps.so \
|
||||
lammps_wrap.c -L ../src/ -llammps
|
||||
tclsh
|
||||
|
||||
|
@ -1134,8 +1340,8 @@ functions included with:
|
|||
|
||||
swig -tcl -module tcllmps lammps_shell.i
|
||||
gcc -o tcllmpsh lammps_wrap.c -Xlinker -export-dynamic \
|
||||
-DHAVE_CONFIG_H $(pkg-config tcl --cflags) \
|
||||
$(pkg-config tcl --libs) -L ../src -llammps
|
||||
-DHAVE_CONFIG_H $(pkgconf --cflags tcl) \
|
||||
$(pkgconf --libs tcl) -L ../src -llammps
|
||||
|
||||
In both cases it is assumed that the LAMMPS library was compiled
|
||||
as a shared library in the ``src`` folder. Otherwise the last
|
||||
|
|
|
@ -1,11 +1,8 @@
|
|||
.. index:: angle_style hybrid
|
||||
.. index:: angle_style hybrid/kk
|
||||
|
||||
angle_style hybrid command
|
||||
==========================
|
||||
|
||||
Accelerator Variants: *hybrid/kk*
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
|
@ -82,10 +79,6 @@ for specific angle types.
|
|||
|
||||
----------
|
||||
|
||||
.. include:: accel_styles.rst
|
||||
|
||||
----------
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
|
@ -94,9 +87,8 @@ MOLECULE package. See the :doc:`Build package <Build_package>` doc page
|
|||
for more info.
|
||||
|
||||
Unlike other angle styles, the hybrid angle style does not store angle
|
||||
coefficient info for individual sub-styles in :doc:`binary restart files
|
||||
<restart>` or :doc:`data files <write_data>`. Thus when restarting a
|
||||
simulation, you need to re-specify the angle_coeff commands.
|
||||
coefficient info for individual sub-styles in a :doc:`binary restart files <restart>`. Thus when restarting a simulation from a restart
|
||||
file, you need to re-specify :doc:`angle_coeff <angle_coeff>` commands.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
.. index:: angle_style spica
|
||||
.. index:: angle_style spica/omp
|
||||
.. index:: angle_style spica/kk
|
||||
|
||||
angle_style spica command
|
||||
=========================
|
||||
|
||||
Accelerator Variants: *spica/omp*, *spica/kk*
|
||||
Accelerator Variants: *spica/omp*
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
|
|
@ -71,11 +71,11 @@ all atoms, e.g. in a data or restart file.
|
|||
atom IDs are required, due to how neighbor lists are built.
|
||||
|
||||
The *map* keyword determines how atoms with specific IDs are found
|
||||
when required. For example, the bond (angle, etc) methods need to
|
||||
find the local index of an atom with a specific global ID which is a
|
||||
bond (angle, etc) partner. LAMMPS performs this operation efficiently
|
||||
by creating a "map", which is either an *array* or *hash* table, as
|
||||
described below.
|
||||
when required. An example are the bond (angle, etc) methods which
|
||||
need to find the local index of an atom with a specific global ID
|
||||
which is a bond (angle, etc) partner. LAMMPS performs this operation
|
||||
efficiently by creating a "map", which is either an *array* or *hash*
|
||||
table, as described below.
|
||||
|
||||
When the *map* keyword is not specified in your input script, LAMMPS
|
||||
only creates a map for :doc:`atom_styles <atom_style>` for molecular
|
||||
|
@ -83,39 +83,34 @@ systems which have permanent bonds (angles, etc). No map is created
|
|||
for atomic systems, since it is normally not needed. However some
|
||||
LAMMPS commands require a map, even for atomic systems, and will
|
||||
generate an error if one does not exist. The *map* keyword thus
|
||||
allows you to force the creation of a map.
|
||||
allows you to force the creation of a map. The *yes* value will
|
||||
create either an *array* or *hash* style map, as explained in the next
|
||||
paragraph. The *array* and *hash* values create an array-style or
|
||||
hash-style map respectively.
|
||||
|
||||
Specifying a value of *yes* will create either an array-style or
|
||||
hash-style map, depending on the size of the system. If no atom ID is
|
||||
larger than 1 million, then an array-style map is used, otherwise a
|
||||
hash-style map is used. Specifying a value of *array* or *hash*
|
||||
creates an array-style or hash-style map respectively, regardless of
|
||||
the size of the system.
|
||||
For an *array*\ -style map, each processor stores a lookup table of
|
||||
length N, where N is the largest atom ID in the system. This is a
|
||||
fast, simple method for many simulations, but requires too much memory
|
||||
for large simulations. For a *hash*\ -style map, a hash table is
|
||||
created on each processor, which finds an atom ID in constant time
|
||||
(independent of the global number of atom IDs). It can be slightly
|
||||
slower than the *array* map, but its memory cost is proportional to
|
||||
the number of atoms owned by a processor, i.e. N/P when N is the total
|
||||
number of atoms in the system and P is the number of processors.
|
||||
|
||||
For an array-style map, each processor stores a lookup table of length
|
||||
N, where N is the largest atom ID in the system. This is a fast,
|
||||
simple method for many simulations, but requires too much memory for
|
||||
large simulations. For a hash-style map, a hash table is created on
|
||||
each processor, which finds an atom ID in constant time (independent
|
||||
of the global number of atom IDs). It can be slightly slower than the
|
||||
*array* map, but its memory cost is proportional to the number of
|
||||
atoms owned by a processor, i.e. N/P when N is the total number of
|
||||
atoms in the system and P is the number of processors.
|
||||
|
||||
The *first* keyword allows a :doc:`group <group>` to be specified
|
||||
whose atoms will be maintained as the first atoms in each processor's
|
||||
list of owned atoms. This in only useful when the specified group is
|
||||
a small fraction of all the atoms, and there are other operations
|
||||
LAMMPS is performing that will be sped-up significantly by being able
|
||||
to loop over the smaller set of atoms. Otherwise the reordering
|
||||
required by this option will be a net slow-down. The
|
||||
:doc:`neigh_modify include <neigh_modify>` and :doc:`comm_modify group
|
||||
<comm_modify>` commands are two examples of commands that require this
|
||||
setting to work efficiently. Several :doc:`fixes <fix>`, most notably
|
||||
time integration fixes like :doc:`fix nve <fix_nve>`, also take
|
||||
advantage of this setting if the group they operate on is the group
|
||||
specified by this command. Note that specifying "all" as the group-ID
|
||||
effectively turns off the *first* option.
|
||||
The *first* keyword allows a :doc:`group <group>` to be specified whose
|
||||
atoms will be maintained as the first atoms in each processor's list
|
||||
of owned atoms. This in only useful when the specified group is a
|
||||
small fraction of all the atoms, and there are other operations LAMMPS
|
||||
is performing that will be sped-up significantly by being able to loop
|
||||
over the smaller set of atoms. Otherwise the reordering required by
|
||||
this option will be a net slow-down. The :doc:`neigh_modify include <neigh_modify>` and :doc:`comm_modify group <comm_modify>`
|
||||
commands are two examples of commands that require this setting to
|
||||
work efficiently. Several :doc:`fixes <fix>`, most notably time
|
||||
integration fixes like :doc:`fix nve <fix_nve>`, also take advantage of
|
||||
this setting if the group they operate on is the group specified by
|
||||
this command. Note that specifying "all" as the group-ID effectively
|
||||
turns off the *first* option.
|
||||
|
||||
It is OK to use the *first* keyword with a group that has not yet been
|
||||
defined, e.g. to use the atom_modify first command at the beginning of
|
||||
|
@ -153,16 +148,15 @@ cache locality will be undermined.
|
|||
|
||||
.. note::
|
||||
|
||||
Running a simulation with sorting on versus off should not change
|
||||
the simulation results in a statistical sense. However, a
|
||||
different ordering will induce round-off differences, which will
|
||||
lead to diverging trajectories over time when comparing two
|
||||
simulations. Various commands, particularly those which use random
|
||||
numbers (e.g. :doc:`velocity create <velocity>`, and :doc:`fix
|
||||
langevin <fix_langevin>`), may generate (statistically identical)
|
||||
results which depend on the order in which atoms are processed.
|
||||
The order of atoms in a :doc:`dump <dump>` file will also typically
|
||||
change if sorting is enabled.
|
||||
Running a simulation with sorting on versus off should not
|
||||
change the simulation results in a statistical sense. However, a
|
||||
different ordering will induce round-off differences, which will lead
|
||||
to diverging trajectories over time when comparing two simulations.
|
||||
Various commands, particularly those which use random numbers
|
||||
(e.g. :doc:`velocity create <velocity>`, and :doc:`fix langevin <fix_langevin>`), may generate (statistically identical)
|
||||
results which depend on the order in which atoms are processed. The
|
||||
order of atoms in a :doc:`dump <dump>` file will also typically change
|
||||
if sorting is enabled.
|
||||
|
||||
.. note::
|
||||
|
||||
|
@ -189,13 +183,12 @@ Default
|
|||
|
||||
By default, *id* is yes. By default, atomic systems (no bond topology
|
||||
info) do not use a map. For molecular systems (with bond topology
|
||||
info), the default is to use a map of either *array* or *hash* style
|
||||
depending on the size of the system, as explained above for the *map
|
||||
yes* keyword/value option. By default, a *first* group is not
|
||||
defined. By default, sorting is enabled with a frequency of 1000 and
|
||||
a binsize of 0.0, which means the neighbor cutoff will be used to set
|
||||
the bin size. If no neighbor cutoff is defined, sorting will be turned
|
||||
off.
|
||||
info), a map is used. The default map style is array if no atom ID is
|
||||
larger than 1 million, otherwise the default is hash. By default, a
|
||||
"first" group is not defined. By default, sorting is enabled with a
|
||||
frequency of 1000 and a binsize of 0.0, which means the neighbor
|
||||
cutoff will be used to set the bin size. If no neighbor cutoff is
|
||||
defined, sorting will be turned off.
|
||||
|
||||
----------
|
||||
|
||||
|
|
|
@ -189,14 +189,6 @@ the Additional Information section below.
|
|||
- *atomic* + molecule, radius, rmass + "smd data"
|
||||
- :ref:`MACHDYN <PKG-MACHDYN>`
|
||||
- Smooth Mach Dynamics models
|
||||
* - *rheo*
|
||||
- *atomic* + rho, status
|
||||
- :ref:`RHEO <PKG-RHEO>`
|
||||
- solid and fluid RHEO particles
|
||||
* - *rheo/thermal*
|
||||
- *atomic* + rho, status, energy, temperature
|
||||
- :ref:`RHEO <PKG-RHEO>`
|
||||
- RHEO particles with temperature
|
||||
* - *sph*
|
||||
- *atomic* + "sph data"
|
||||
- :ref:`SPH <PKG-SPH>`
|
||||
|
|
|
@ -75,9 +75,8 @@ package. See the :doc:`Build package <Build_package>` page for more
|
|||
info.
|
||||
|
||||
Unlike other bond styles, the hybrid bond style does not store bond
|
||||
coefficient info for individual sub-styles in :doc:`binary restart files
|
||||
<restart>` or :doc:`data files <write_data>`. Thus when restarting a
|
||||
simulation, you need to re-specify the bond_coeff commands.
|
||||
coefficient info for individual sub-styles in a :doc:`binary restart files <restart>`. Thus when restarting a simulation from a restart
|
||||
file, you need to re-specify bond_coeff commands.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
|
|
@ -1,188 +0,0 @@
|
|||
.. index:: bond_style rheo/shell
|
||||
|
||||
bond_style rheo/shell command
|
||||
=============================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
bond_style rheo/shell keyword value attribute1 attribute2 ...
|
||||
|
||||
* required keyword = *t/form*
|
||||
* optional keyword = *store/local*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*t/form* value = formation time for a bond (time units)
|
||||
|
||||
*store/local* values = fix_ID N attributes ...
|
||||
* fix_ID = ID of associated internal fix to store data
|
||||
* N = prepare data for output every this many timesteps
|
||||
* attributes = zero or more of the below attributes may be appended
|
||||
|
||||
*id1, id2* = IDs of 2 atoms in the bond
|
||||
*time* = the timestep the bond broke
|
||||
*x, y, z* = the center of mass position of the 2 atoms when the bond broke (distance units)
|
||||
*x/ref, y/ref, z/ref* = the initial center of mass position of the 2 atoms (distance units)
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
bond_style rheo/shell t/form 10.0
|
||||
bond_coeff 1 1.0 0.05 0.1
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
.. versionadded:: TBD
|
||||
|
||||
The *rheo/shell* bond style is designed to work with
|
||||
:doc:`fix rheo/oxidation <fix_rheo_oxidation>` which creates candidate
|
||||
bonds between eligible surface or near-surface particles. When a bond
|
||||
is first created, it computes no forces and starts a timer. Forces are
|
||||
not computed until the timer reaches the specified bond formation time,
|
||||
*t/form*, and the bond is enabled and applies forces. If the two particles
|
||||
move outside of the maximum bond distance or move into the bulk before
|
||||
the timer reaches *t/form*, the bond automatically deletes itself. This
|
||||
deletion is not recorded as a broken bond in the optional *store/local* fix.
|
||||
|
||||
Before bonds are enabled, they are still treated as regular bonds by
|
||||
all other parts of LAMMPS. This means they are written to data files
|
||||
and counted in computes such as :doc:`nbond/atom <compute_nbond_atom>`.
|
||||
To only count enabled bonds, use the *nbond/shell* attribute in
|
||||
:doc:`compute rheo/property/atom <compute_rheo_property_atom>`.
|
||||
|
||||
When enabled, the bond then computes forces based on deviations from
|
||||
the initial reference state of the two atoms much like a BPM style
|
||||
bond (as further discussed in the :doc:`BPM howto page <Howto_bpm>`).
|
||||
The reference state is stored by each bond when it is first enabled.
|
||||
Data is then preserved across run commands and is written to
|
||||
:doc:`binary restart files <restart>` such that restarting the system
|
||||
will not reset the reference state of a bond or the timer.
|
||||
|
||||
This bond style is based on a model described in
|
||||
:ref:`(Clemmer) <rheo_clemmer>`. The force has a magnitude of
|
||||
|
||||
.. math::
|
||||
|
||||
F = 2 k (r - r_0) + \frac{2 k}{r_0^2 \epsilon_c^2} (r - r_0)^3
|
||||
|
||||
where :math:`k` is a stiffness, :math:`r` is the current distance
|
||||
and :math:`r_0` is the initial distance between the two particles, and
|
||||
:math:`\epsilon_c` is maximum strain beyond which a bond breaks. This
|
||||
is done by setting the bond type to 0 such that forces are no longer
|
||||
computed.
|
||||
|
||||
A damping force proportional to the difference in the normal velocity
|
||||
of particles is also applied to bonded particles:
|
||||
|
||||
.. math::
|
||||
|
||||
F_D = - \gamma w (\hat{r} \bullet \vec{v})
|
||||
|
||||
where :math:`\gamma` is the damping strength, :math:`\hat{r}` is the
|
||||
displacement normal vector, and :math:`\vec{v}` is the velocity difference
|
||||
between the two particles.
|
||||
|
||||
The following coefficients must be defined for each bond type via the
|
||||
:doc:`bond_coeff <bond_coeff>` command as in the example above, or in
|
||||
the data file or restart files read by the :doc:`read_data
|
||||
<read_data>` or :doc:`read_restart <read_restart>` commands:
|
||||
|
||||
* :math:`k` (force/distance units)
|
||||
* :math:`\epsilon_c` (unit less)
|
||||
* :math:`\gamma` (force/velocity units)
|
||||
|
||||
Unlike other BPM-style bonds, this bond style does not update special
|
||||
bond settings when bonds are created or deleted. This bond style also
|
||||
does not enforce specific :doc:`special_bonds <special_bonds>` settings.
|
||||
This behavior is purposeful such :doc:`RHEO pair <pair_rheo>` forces
|
||||
and heat flows are still calculated.
|
||||
|
||||
If the *store/local* keyword is used, an internal fix will track bonds that
|
||||
break during the simulation. Whenever a bond breaks, data is processed
|
||||
and transferred to an internal fix labeled *fix_ID*. This allows the
|
||||
local data to be accessed by other LAMMPS commands. Following this optional
|
||||
keyword, a list of one or more attributes is specified. These include the
|
||||
IDs of the two atoms in the bond. The other attributes for the two atoms
|
||||
include the timestep during which the bond broke and the current/initial
|
||||
center of mass position of the two atoms.
|
||||
|
||||
Data is continuously accumulated over intervals of *N*
|
||||
timesteps. At the end of each interval, all of the saved accumulated
|
||||
data is deleted to make room for new data. Individual datum may
|
||||
therefore persist anywhere between *1* to *N* timesteps depending on
|
||||
when they are saved. This data can be accessed using the *fix_ID* and a
|
||||
:doc:`dump local <dump>` command. To ensure all data is output,
|
||||
the dump frequency should correspond to the same interval of *N*
|
||||
timesteps. A dump frequency of an integer multiple of *N* can be used
|
||||
to regularly output a sample of the accumulated data.
|
||||
|
||||
Note that when unbroken bonds are dumped to a file via the
|
||||
:doc:`dump local <dump>` command, bonds with type 0 (broken bonds)
|
||||
are not included.
|
||||
The :doc:`delete_bonds <delete_bonds>` command can also be used to
|
||||
query the status of broken bonds or permanently delete them, e.g.:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
delete_bonds all stats
|
||||
delete_bonds all bond 0 remove
|
||||
|
||||
----------
|
||||
|
||||
Restart and other info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
This bond style writes the reference state of each bond to
|
||||
:doc:`binary restart files <restart>`. Loading a restart
|
||||
file will properly restore bonds. However, the reference state is NOT
|
||||
written to data files. Therefore reading a data file will not
|
||||
restore bonds and will cause their reference states to be redefined.
|
||||
|
||||
If the *store/local* option is used, an internal fix will calculate
|
||||
a local vector or local array depending on the number of input values.
|
||||
The length of the vector or number of rows in the array is the number
|
||||
of recorded, broken bonds. If a single input is specified, a local
|
||||
vector is produced. If two or more inputs are specified, a local array
|
||||
is produced where the number of columns = the number of inputs. The
|
||||
vector or array can be accessed by any command that uses local values
|
||||
from a compute as input. See the :doc:`Howto output <Howto_output>` page
|
||||
for an overview of LAMMPS output options.
|
||||
|
||||
The vector or array will be floating point values that correspond to
|
||||
the specified attribute.
|
||||
|
||||
The single() function of this bond style returns 0.0 for the energy
|
||||
of a bonded interaction, since energy is not conserved in these
|
||||
dissipative potentials. The single() function also calculates two
|
||||
extra bond quantities, the initial distance :math:`r_0` and a time.
|
||||
These extra quantities can be accessed by the
|
||||
:doc:`compute bond/local <compute_bond_local>` command as *b1* and *b2*\ .
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This bond style is part of the RHEO package. It is only enabled if
|
||||
LAMMPS was built with that package. See the :doc:`Build package
|
||||
<Build_package>` page for more info.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`bond_coeff <bond_coeff>`, :doc:`fix rheo/oxidation <fix_rheo_oxidation>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
NA
|
||||
|
||||
----------
|
||||
|
||||
.. _rheo_clemmer:
|
||||
|
||||
**(Clemmer)** Clemmer, Pierce, O'Connor, Nevins, Jones, Lechman, Tencer, Appl. Math. Model., 130, 310-326 (2024).
|
|
@ -105,7 +105,6 @@ accelerated styles exist.
|
|||
* :doc:`oxdna2/fene <bond_oxdna>` - same as oxdna but used with different pair styles
|
||||
* :doc:`oxrna2/fene <bond_oxdna>` - modified FENE bond suitable for RNA modeling
|
||||
* :doc:`quartic <bond_quartic>` - breakable quartic bond
|
||||
* :doc:`rheo/shell <bond_rheo_shell>` - shell bond for oxidation modeling in RHEO
|
||||
* :doc:`special <bond_special>` - enable special bond exclusions for 1-5 pairs and beyond
|
||||
* :doc:`table <bond_table>` - tabulated by bond length
|
||||
|
||||
|
|
|
@ -290,7 +290,6 @@ The individual style names on the :doc:`Commands compute <Commands_compute>` pag
|
|||
* :doc:`reduce <compute_reduce>` - combine per-atom quantities into a single global value
|
||||
* :doc:`reduce/chunk <compute_reduce_chunk>` - reduce per-atom quantities within each chunk
|
||||
* :doc:`reduce/region <compute_reduce>` - same as compute reduce, within a region
|
||||
* :doc:`rheo/property/atom <compute_rheo_property_atom>` - convert atom attributes in RHEO package to per-atom vectors/arrays
|
||||
* :doc:`rigid/local <compute_rigid_local>` - extract rigid body attributes
|
||||
* :doc:`saed <compute_saed>` - electron diffraction intensity on a mesh of reciprocal lattice nodes
|
||||
* :doc:`slcsa/atom <compute_slcsa_atom>` - perform Supervised Learning Crystal Structure Analysis (SL-CSA)
|
||||
|
|
|
@ -8,17 +8,10 @@ Syntax
|
|||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
compute ID group-ID nbond/atom keyword value
|
||||
compute ID group-ID nbond/atom
|
||||
|
||||
* ID, group-ID are documented in :doc:`compute <compute>` command
|
||||
* nbond/atom = style name of this compute command
|
||||
* zero or more keyword/value pairs may be appended
|
||||
* keyword = *bond/type*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*bond/type* value = *btype*
|
||||
*btype* = bond type included in count
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
@ -26,7 +19,6 @@ Examples
|
|||
.. code-block:: LAMMPS
|
||||
|
||||
compute 1 all nbond/atom
|
||||
compute 1 all nbond/atom bond/type 2
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
@ -39,9 +31,6 @@ the :doc:`Howto broken bonds <Howto_bpm>` page for more information.
|
|||
The number of bonds will be zero for atoms not in the specified
|
||||
compute group. This compute does not depend on Newton bond settings.
|
||||
|
||||
If the keyword *bond/type* is specified, only bonds of *btype* are
|
||||
counted.
|
||||
|
||||
Output info
|
||||
"""""""""""
|
||||
|
||||
|
|
|
@ -1,143 +0,0 @@
|
|||
.. index:: compute rheo/property/atom
|
||||
|
||||
compute rheo/property/atom command
|
||||
==================================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
compute ID group-ID rheo/property/atom input1 input2 ...
|
||||
|
||||
* ID, group-ID are documented in :doc:`compute <compute>` command
|
||||
* rheo/property/atom = style name of this compute command
|
||||
* input = one or more atom attributes
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
possible attributes = phase, surface, surface/r,
|
||||
surface/divr, surface/n/a, coordination,
|
||||
shift/v/a, energy, temperature, heatflow,
|
||||
conductivity, cv, viscosity, pressure, rho,
|
||||
grad/v/ab, stress/v/ab, stress/t/ab, nbond/shell
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*phase* = atom phase state
|
||||
*surface* = atom surface status
|
||||
*surface/r* = atom distance from the surface
|
||||
*surface/divr* = divergence of position at atom position
|
||||
*surface/n/a* = a-component of surface normal vector
|
||||
*coordination* = coordination number
|
||||
*shift/v/a* = a-component of atom shifting velocity
|
||||
*energy* = atom energy
|
||||
*temperature* = atom temperature
|
||||
*heatflow* = atom heat flow
|
||||
*conductivity* = atom conductivity
|
||||
*cv* = atom specific heat
|
||||
*viscosity* = atom viscosity
|
||||
*pressure* = atom pressure
|
||||
*rho* = atom density
|
||||
*grad/v/ab* = ab-component of atom velocity gradient tensor
|
||||
*stress/v/ab* = ab-component of atom viscous stress tensor
|
||||
*stress/t/ab* = ab-component of atom total stress tensor (pressure and viscous)
|
||||
*nbond/shell* = number of oxide bonds
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
compute 1 all rheo/property/atom phase surface/r surface/n/* pressure
|
||||
compute 2 all rheo/property/atom shift/v/x grad/v/xx stress/v/*
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
.. versionadded:: TBD
|
||||
|
||||
Define a computation that stores atom attributes specific to the RHEO
|
||||
package for each atom in the group. This is useful so that the values
|
||||
can be used by other :doc:`output commands <Howto_output>` that take
|
||||
computes as inputs. See for example, the
|
||||
:doc:`compute reduce <compute_reduce>`,
|
||||
:doc:`fix ave/atom <fix_ave_atom>`,
|
||||
:doc:`fix ave/histo <fix_ave_histo>`,
|
||||
:doc:`fix ave/chunk <fix_ave_chunk>`, and
|
||||
:doc:`atom-style variable <variable>` commands.
|
||||
|
||||
For vector attributes, e.g. *shift/v/*:math:`\alpha`, one must specify
|
||||
:math:`\alpha` as the *x*, *y*, or *z* component, e.g. *shift/v/x*.
|
||||
Alternatively, a wild card \* will include all components, *x* and *y* in
|
||||
2D or *x*, *y*, and *z* in 3D.
|
||||
|
||||
For tensor attributes, e.g. *grad/v/*:math:`\alpha \beta`, one must specify
|
||||
both :math:`\alpha` and :math:`\beta` as *x*, *y*, or *z*, e.g. *grad/v/xy*.
|
||||
Alternatively, a wild card \* will include all components. In 2D, this
|
||||
includes *xx*, *xy*, *yx*, and *yy*. In 3D, this includes *xx*, *xy*, *xz*,
|
||||
*yx*, *yy*, *yz*, *zx*, *zy*, and *zz*.
|
||||
|
||||
Many properties require their respective fixes, listed below in related
|
||||
commands, be defined. For instance, the *viscosity* attribute is the
|
||||
viscosity of a particle calculated by
|
||||
:doc:`fix rheo/viscous <fix_rheo_viscosity>`. The meaning of less obvious
|
||||
properties is described below.
|
||||
|
||||
The *phase* property indicates whether the particle is in a fluid state,
|
||||
a value of 0, or a solid state, a value of 1.
|
||||
|
||||
The *surface* property indicates the surface designation produced by
|
||||
the *interface/reconstruct* option of :doc:`fix rheo <fix_rheo>`. Bulk
|
||||
particles have a value of 0, surface particles have a value of 1, and
|
||||
splash particles have a value of 2. The *surface/r* property is the
|
||||
distance from the surface, up to the kernel cutoff length. Surface particles
|
||||
have a value of 0. The *surface/n/*:math:`\alpha` properties are the
|
||||
components of the surface normal vector.
|
||||
|
||||
The *shift/v/*:math:`\alpha` properties are the components of the shifting
|
||||
velocity produced by the *shift* option of :doc:`fix rheo <fix_rheo>`.
|
||||
|
||||
The *nbond/shell* property is the number of shell bonds that have been
|
||||
activated from :doc:`bond style rheo/shell <bond_rheo_shell>`.
|
||||
|
||||
The values are stored in a per-atom vector or array as discussed
|
||||
below. Zeroes are stored for atoms not in the specified group or for
|
||||
quantities that are not defined for a particular particle in the group
|
||||
|
||||
Output info
|
||||
"""""""""""
|
||||
|
||||
This compute calculates a per-atom vector or per-atom array depending
|
||||
on the number of input values. Generally, if a single input is specified,
|
||||
a per-atom vector is produced. If two or more inputs are specified, a
|
||||
per-atom array is produced where the number of columns = the number of
|
||||
inputs. However, if a wild card \* is used for a vector or tensor, then
|
||||
the number of inputs is considered to be incremented by the dimension or
|
||||
the dimension squared, respectively. The vector or array can be accessed
|
||||
by any command that uses per-atom values from a compute as input. See the
|
||||
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
||||
options.
|
||||
|
||||
The vector or array values will be in whatever :doc:`units <units>` the
|
||||
corresponding attribute is in (e.g., density units for *rho*).
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
none
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`dump custom <dump>`, :doc:`compute reduce <compute_reduce>`,
|
||||
:doc:`fix ave/atom <fix_ave_atom>`, :doc:`fix ave/chunk <fix_ave_chunk>`,
|
||||
:doc:`fix rheo/viscosity <fix_rheo_viscosity>`,
|
||||
:doc:`fix rheo/pressure <fix_rheo_pressure>`,
|
||||
:doc:`fix rheo/thermal <fix_rheo_thermal>`,
|
||||
:doc:`fix rheo/oxdiation <fix_rheo_oxidation>`,
|
||||
:doc:`fix rheo <fix_rheo>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
none
|
|
@ -1,11 +1,8 @@
|
|||
.. index:: dihedral_style hybrid
|
||||
.. index:: dihedral_style hybrid/kk
|
||||
|
||||
dihedral_style hybrid command
|
||||
=============================
|
||||
|
||||
Accelerator Variants: *hybrid/kk*
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
|
@ -83,10 +80,6 @@ for specific dihedral types.
|
|||
|
||||
----------
|
||||
|
||||
.. include:: accel_styles.rst
|
||||
|
||||
----------
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
|
@ -95,10 +88,8 @@ MOLECULE package. See the :doc:`Build package <Build_package>` doc page
|
|||
for more info.
|
||||
|
||||
Unlike other dihedral styles, the hybrid dihedral style does not store
|
||||
dihedral coefficient info for individual sub-styles in :doc:`binary
|
||||
restart files <restart>` or :doc:`data files <write_data>`. Thus when
|
||||
restarting a simulation, you need to re-specify the dihedral_coeff
|
||||
commands.
|
||||
dihedral coefficient info for individual sub-styles in a :doc:`binary restart files <restart>`. Thus when restarting a simulation from a
|
||||
restart file, you need to re-specify dihedral_coeff commands.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
|
|
@ -107,13 +107,6 @@ Syntax
|
|||
|
||||
*checksum* args = *yes* or *no* (add checksum at end of zst file)
|
||||
|
||||
* these keywords apply only to the vtk* dump style
|
||||
* keyword = *binary*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*binary* args = *yes* or *no* (select between binary and text mode VTK files)
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
|
@ -914,11 +907,11 @@ box size stored with the snapshot.
|
|||
|
||||
----------
|
||||
|
||||
The :ref:`COMPRESS package <PKG-COMPRESS>` offers both GZ and Zstd
|
||||
compression variants of styles atom, custom, local, cfg, and xyz. When
|
||||
using these styles the compression level can be controlled by the
|
||||
:code:`compression_level` keyword. File names with these styles have to
|
||||
end in either :code:`.gz` or :code:`.zst`.
|
||||
The COMPRESS package offers both GZ and Zstd compression variants of
|
||||
styles atom, custom, local, cfg, and xyz. When using these styles the
|
||||
compression level can be controlled by the :code:`compression_level`
|
||||
keyword. File names with these styles have to end in either
|
||||
:code:`.gz` or :code:`.zst`.
|
||||
|
||||
GZ supports compression levels from :math:`-1` (default), 0 (no compression),
|
||||
and 1 to 9, 9 being the best compression. The COMPRESS :code:`/gz` styles use 9
|
||||
|
@ -937,17 +930,6 @@ default and it can be disabled with the :code:`checksum` keyword.
|
|||
|
||||
----------
|
||||
|
||||
The :ref:`VTK package <PKG-VTK>` offers writing dump files in `VTK file
|
||||
formats <https://www.vtk.org/>`_ that can be read by a variety of
|
||||
visualization tools based on the VTK library. These VTK files follow
|
||||
naming conventions that collide with the LAMMPS convention to append
|
||||
".bin" to a file name in order to switch to a binary output. Thus for
|
||||
:doc:`vtk style dumps <dump_vtk>` the dump_modify command supports the
|
||||
keyword *binary* which selects between generating text mode and binary
|
||||
style VTK files.
|
||||
|
||||
----------
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
|
|
|
@ -193,7 +193,6 @@ accelerated styles exist.
|
|||
* :doc:`adapt <fix_adapt>` - change a simulation parameter over time
|
||||
* :doc:`adapt/fep <fix_adapt_fep>` - enhanced version of fix adapt
|
||||
* :doc:`addforce <fix_addforce>` - add a force to each atom
|
||||
* :doc:`add/heat <fix_add_heat>` - add a heat flux to each atom
|
||||
* :doc:`addtorque <fix_addtorque>` - add a torque to a group of atoms
|
||||
* :doc:`alchemy <fix_alchemy>` - perform an "alchemical transformation" between two partitions
|
||||
* :doc:`amoeba/bitorsion <fix_amoeba_bitorsion>` - torsion/torsion terms in AMOEBA force field
|
||||
|
@ -370,11 +369,6 @@ accelerated styles exist.
|
|||
* :doc:`reaxff/species <fix_reaxff_species>` - write out ReaxFF molecule information
|
||||
* :doc:`recenter <fix_recenter>` - constrain the center-of-mass position of a group of atoms
|
||||
* :doc:`restrain <fix_restrain>` - constrain a bond, angle, dihedral
|
||||
* :doc:`rheo <fix_rheo>` - integrator for the RHEO package
|
||||
* :doc:`rheo/thermal <fix_rheo_thermal>` - thermal integrator for the RHEO package
|
||||
* :doc:`rheo/oxidation <fix_rheo_oxidation>` - create oxidation bonds for the RHEO package
|
||||
* :doc:`rheo/pressure <fix_rheo_pressure>` - pressure calculation for the RHEO package
|
||||
* :doc:`rheo/viscosity <fix_rheo_pressure>` - viscosity calculation for the RHEO package
|
||||
* :doc:`rhok <fix_rhok>` - add bias potential for long-range ordered systems
|
||||
* :doc:`rigid <fix_rigid>` - constrain one or more clusters of atoms to move as a rigid body with NVE integration
|
||||
* :doc:`rigid/meso <fix_rigid_meso>` - constrain clusters of mesoscopic SPH/SDPD particles to move as a rigid body
|
||||
|
|
|
@ -1,111 +0,0 @@
|
|||
.. index:: fix add/heat
|
||||
|
||||
fix add/heat command
|
||||
====================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix ID group-ID add/heat style args keyword values ...
|
||||
|
||||
* ID, group-ID are documented in :doc:`fix <fix>` command
|
||||
* add/heat = style name of this fix command
|
||||
* style = *constant* or *linear* or *quartic*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*constant* args = *rate*
|
||||
*rate* = rate of heat flow (energy/time units)
|
||||
*linear* args = :math:`T_{target}` *k*
|
||||
:math:`T_{target}` = target temperature (temperature units)
|
||||
*k* = prefactor (energy/(time*temperature) units)
|
||||
*quartic* args = :math:`T_{target}` *k*
|
||||
:math:`T_{target}` = target temperature (temperature units)
|
||||
*k* = prefactor (energy/(time*temperature^4) units)
|
||||
|
||||
* zero or more keyword/value pairs may be appended to args
|
||||
* keyword = *overwrite*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*overwrite* value = *yes* or *no*
|
||||
*yes* = sets current heat flow of particle
|
||||
*no* = adds to current heat flow of particle
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix 1 all add/heat constant v_heat
|
||||
fix 1 all add/heat linear 10.0 1.0 overwrite yes
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
This fix adds heat to particles with the temperature attribute every timestep.
|
||||
Note that this is an internal temperature of a particle intended for use with
|
||||
non-atomistic models like the discrete element method.
|
||||
|
||||
For the *constant* style, heat is added at the specified rate. For the *linear* style,
|
||||
heat is added at a rate of :math:`k (T_{target} - T)` where :math:`k` is the
|
||||
specified prefactor, :math:`T_{target}` is the specified target temperature, and
|
||||
:math:`T` is the temperature of the atom. This may be more representative of a
|
||||
conductive process. For the *quartic* style, heat is added at a rate of
|
||||
:math:`k (T_{target}^4 - T^4)`, akin to radiative heat transfer.
|
||||
|
||||
The rate or temperature can be can be specified as an equal-style or atom-style
|
||||
:doc:`variable <variable>`. If the value is a variable, it should be
|
||||
specified as v_name, where name is the variable name. In this case, the
|
||||
variable will be evaluated each time step, and its value will be used to
|
||||
determine the rate of heat added.
|
||||
|
||||
Equal-style variables can specify formulas with various mathematical
|
||||
functions and include :doc:`thermo_style <thermo_style>` command
|
||||
keywords for the simulation box parameters, time step, and elapsed time
|
||||
to specify time-dependent heating.
|
||||
|
||||
Atom-style variables can specify the same formulas as equal-style
|
||||
variables but can also include per-atom values, such as atom
|
||||
coordinates to specify spatially-dependent heating.
|
||||
|
||||
If the *overwrite* keyword is set to *yes*, this fix will set the total
|
||||
heat flow on a particle every timestep, overwriting contributions from pair
|
||||
styles or other fixes. If *overwrite* is *no*, this fix will add heat on
|
||||
top of other contributions.
|
||||
|
||||
----------
|
||||
|
||||
Restart, fix_modify, output, run start/stop, minimize info
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
No information about this fix is written to :doc:`binary restart files <restart>`.
|
||||
None of the :doc:`fix_modify <fix_modify>` options are relevant to this fix.
|
||||
No global or per-atom quantities are stored by this fix for access by various
|
||||
:doc:`output commands <Howto_output>`. No parameter of this fix can be used
|
||||
with the *start/stop* keywords of the :doc:`run <run>` command. This fix is
|
||||
not invoked during :doc:`energy minimization <minimize>`.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This pair style is part of the GRANULAR package. It is
|
||||
only enabled if LAMMPS was built with that package.
|
||||
See the :doc:`Build package <Build_package>` page for more info.
|
||||
|
||||
This fix requires that atoms store temperature and heat flow
|
||||
as defined by the :doc:`fix property/atom <fix_property_atom>` command.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`fix heat/flow <fix_heat_flow>`,
|
||||
:doc:`fix property/atom <fix_property_atom>`,
|
||||
:doc:`fix rheo/thermal <fix_rheo_thermal>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
The default for the *overwrite* keyword is *no*
|
|
@ -4,6 +4,9 @@
|
|||
fix deform command
|
||||
==================
|
||||
|
||||
:doc:`fix deform/pressure <fix_deform_pressure>` command
|
||||
========================================================
|
||||
|
||||
Accelerator Variants: *deform/kk*
|
||||
|
||||
Syntax
|
||||
|
@ -11,11 +14,12 @@ Syntax
|
|||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix ID group-ID deform N parameter style args ... keyword value ...
|
||||
fix ID group-ID fix_style N parameter style args ... keyword value ...
|
||||
|
||||
* ID, group-ID are documented in :doc:`fix <fix>` command
|
||||
* fix_style = *deform* or *deform/pressure*
|
||||
* N = perform box deformation every this many timesteps
|
||||
* one or more parameter/args sequences may be appended
|
||||
* one or more parameter/style/args sequences of arguments may be appended
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
|
@ -42,6 +46,12 @@ Syntax
|
|||
*variable* values = v_name1 v_name2
|
||||
v_name1 = variable with name1 for box length change as function of time
|
||||
v_name2 = variable with name2 for change rate as function of time
|
||||
*pressure* values = target gain (ONLY available in :doc:`fix deform/pressure <fix_deform_pressure>` command)
|
||||
target = target pressure (pressure units)
|
||||
gain = proportional gain constant (1/(time * pressure) or 1/time units)
|
||||
*pressure/mean* values = target gain (ONLY available in :doc:`fix deform/pressure <fix_deform_pressure>` command)
|
||||
target = target pressure (pressure units)
|
||||
gain = proportional gain constant (1/(time * pressure) or 1/time units)
|
||||
|
||||
*xy*, *xz*, *yz* args = style value
|
||||
style = *final* or *delta* or *vel* or *erate* or *trate* or *wiggle* or *variable*
|
||||
|
@ -54,6 +64,8 @@ Syntax
|
|||
effectively an engineering shear strain rate
|
||||
*erate* value = R
|
||||
R = engineering shear strain rate (1/time units)
|
||||
*erate/rescale* value = R (ONLY available in :doc:`fix deform/pressure <fix_deform_pressure>` command)
|
||||
R = engineering shear strain rate (1/time units)
|
||||
*trate* value = R
|
||||
R = true shear strain rate (1/time units)
|
||||
*wiggle* values = A Tp
|
||||
|
@ -62,6 +74,9 @@ Syntax
|
|||
*variable* values = v_name1 v_name2
|
||||
v_name1 = variable with name1 for tilt change as function of time
|
||||
v_name2 = variable with name2 for change rate as function of time
|
||||
*pressure* values = target gain (ONLY available in :doc:`fix deform/pressure <fix_deform_pressure>` command)
|
||||
target = target pressure (pressure units)
|
||||
gain = proportional gain constant (1/(time * pressure) or 1/time units)
|
||||
|
||||
* zero or more keyword/value pairs may be appended
|
||||
* keyword = *remap* or *flip* or *units* or *couple* or *vol/balance/p* or *max/rate* or *normalize/pressure*
|
||||
|
@ -77,6 +92,15 @@ Syntax
|
|||
*units* value = *lattice* or *box*
|
||||
lattice = distances are defined in lattice units
|
||||
box = distances are defined in simulation box units
|
||||
*couple* value = *none* or *xyz* or *xy* or *yz* or *xz* (ONLY available in :doc:`fix deform/pressure <fix_deform_pressure>` command)
|
||||
couple pressure values of various dimensions
|
||||
*vol/balance/p* value = *yes* or *no* (ONLY available in :doc:`fix deform/pressure <fix_deform_pressure>` command)
|
||||
Modifies the behavior of the *volume* option to try and balance pressures
|
||||
*max/rate* value = *rate* (ONLY available in :doc:`fix deform/pressure <fix_deform_pressure>` command)
|
||||
rate = maximum strain rate for pressure control
|
||||
*normalize/pressure* value = *yes* or *no* (ONLY available in :doc:`fix deform/pressure <fix_deform_pressure>` command)
|
||||
Modifies pressure controls such that the deviation in pressure is normalized by the target pressure
|
||||
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
@ -88,6 +112,8 @@ Examples
|
|||
fix 1 all deform 1 xy erate 0.001 remap v
|
||||
fix 1 all deform 10 y delta -0.5 0.5 xz vel 1.0
|
||||
|
||||
See examples for :doc:`fix deform/pressure <fix_deform_pressure>` on its doc page
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
|
@ -97,13 +123,17 @@ run. Orthogonal simulation boxes have 3 adjustable parameters
|
|||
adjustable parameters (x,y,z,xy,xz,yz). Any or all of them can be
|
||||
adjusted independently and simultaneously.
|
||||
|
||||
The :doc:`fix deform/pressure <fix_deform_pressure>` command extends
|
||||
this command with additional keywords and arguments. The rest of this
|
||||
page explains the options common to both commands. The :doc:`fix
|
||||
deform/pressure <fix_deform_pressure>` page explains the options
|
||||
available ONLY with the fix deform/pressure command. Note that a
|
||||
simulation can define only a single deformation command: fix deform or
|
||||
fix deform/pressure.
|
||||
The fix deform command allows use of all the arguments listed above,
|
||||
except those flagged as available ONLY for the :doc:`fix
|
||||
deform/pressure <fix_deform_pressure>` command, which are
|
||||
pressure-based controls. The fix deform/pressure command allows use
|
||||
of all the arguments listed above.
|
||||
|
||||
The rest of this doc page explains the options common to both
|
||||
commands. The :doc:`fix deform/pressure <fix_deform_pressure>` doc
|
||||
page explains the options available ONLY with the fix deform/pressure
|
||||
command. Note that a simulation can define only a single deformation
|
||||
command: fix deform or fix deform/pressure.
|
||||
|
||||
Both these fixes can be used to perform non-equilibrium MD (NEMD)
|
||||
simulations of a continuously strained system. See the :doc:`fix
|
||||
|
@ -113,24 +143,6 @@ simulation of a continuously extended system (extensional flow) can be
|
|||
modeled using the :ref:`UEF package <PKG-UEF>` and its :doc:`fix
|
||||
commands <fix_nh_uef>`.
|
||||
|
||||
.. admonition:: Inconsistent trajectories due to image flags
|
||||
:class: warning
|
||||
|
||||
When running long simulations while shearing the box or using a high
|
||||
shearing rate, it is possible that the image flags used for storing
|
||||
unwrapped atom positions will "wrap around". When LAMMPS is compiled
|
||||
with the default settings, case image flags are limited to a range of
|
||||
:math:`-512 \le i \le 511`, which will overflow when atoms starting
|
||||
at zero image flag value have passed through a periodic box dimension
|
||||
more than 512 times.
|
||||
|
||||
Changing the :ref:`size of LAMMPS integer types <size>` to the
|
||||
"bigbig" setting can make this overflow much less likely, since it
|
||||
increases the image flag value range to :math:`- 1,048,576 \le i \le
|
||||
1\,048\,575`
|
||||
|
||||
----------
|
||||
|
||||
For the *x*, *y*, *z* parameters, the associated dimension cannot be
|
||||
shrink-wrapped. For the *xy*, *yz*, *xz* parameters, the associated
|
||||
second dimension cannot be shrink-wrapped. Dimensions not varied by
|
||||
|
|
|
@ -13,66 +13,29 @@ Syntax
|
|||
* ID, group-ID are documented in :doc:`fix <fix>` command
|
||||
* deform/pressure = style name of this fix command
|
||||
* N = perform box deformation every this many timesteps
|
||||
* one or more parameter/args sequences may be appended
|
||||
* one or more parameter/arg sequences may be appended
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
parameter = *x* or *y* or *z* or *xy* or *xz* or *yz* or *box*
|
||||
*x*, *y*, *z* args = style value(s)
|
||||
style = *final* or *delta* or *scale* or *vel* or *erate* or *trate* or *volume* or *wiggle* or *variable* or *pressure* or *pressure/mean*
|
||||
*final* values = lo hi
|
||||
lo hi = box boundaries at end of run (distance units)
|
||||
*delta* values = dlo dhi
|
||||
dlo dhi = change in box boundaries at end of run (distance units)
|
||||
*scale* values = factor
|
||||
factor = multiplicative factor for change in box length at end of run
|
||||
*vel* value = V
|
||||
V = change box length at this velocity (distance/time units),
|
||||
effectively an engineering strain rate
|
||||
*erate* value = R
|
||||
R = engineering strain rate (1/time units)
|
||||
*trate* value = R
|
||||
R = true strain rate (1/time units)
|
||||
*volume* value = none = adjust this dim to preserve volume of system
|
||||
*wiggle* values = A Tp
|
||||
A = amplitude of oscillation (distance units)
|
||||
Tp = period of oscillation (time units)
|
||||
*variable* values = v_name1 v_name2
|
||||
v_name1 = variable with name1 for box length change as function of time
|
||||
v_name2 = variable with name2 for change rate as function of time
|
||||
*pressure* values = target gain
|
||||
target = target pressure (pressure units)
|
||||
gain = proportional gain constant (1/(time * pressure) or 1/time units)
|
||||
*pressure/mean* values = target gain
|
||||
target = target pressure (pressure units)
|
||||
gain = proportional gain constant (1/(time * pressure) or 1/time units)
|
||||
NOTE: All other styles are documented by the :doc:`fix deform <fix_deform>` command
|
||||
|
||||
*xy*, *xz*, *yz* args = style value
|
||||
style = *final* or *delta* or *vel* or *erate* or *trate* or *wiggle* or *variable* or *pressure* or *erate/rescale*
|
||||
*final* value = tilt
|
||||
tilt = tilt factor at end of run (distance units)
|
||||
*delta* value = dtilt
|
||||
dtilt = change in tilt factor at end of run (distance units)
|
||||
*vel* value = V
|
||||
V = change tilt factor at this velocity (distance/time units),
|
||||
effectively an engineering shear strain rate
|
||||
*erate* value = R
|
||||
R = engineering shear strain rate (1/time units)
|
||||
*erate/rescale* value = R
|
||||
R = engineering shear strain rate (1/time units)
|
||||
*trate* value = R
|
||||
R = true shear strain rate (1/time units)
|
||||
*wiggle* values = A Tp
|
||||
A = amplitude of oscillation (distance units)
|
||||
Tp = period of oscillation (time units)
|
||||
*variable* values = v_name1 v_name2
|
||||
v_name1 = variable with name1 for tilt change as function of time
|
||||
v_name2 = variable with name2 for change rate as function of time
|
||||
*pressure* values = target gain
|
||||
target = target pressure (pressure units)
|
||||
gain = proportional gain constant (1/(time * pressure) or 1/time units)
|
||||
*erate/rescale* value = R
|
||||
R = engineering shear strain rate (1/time units)
|
||||
NOTE: All other styles are documented by the :doc:`fix deform <fix_deform>` command
|
||||
|
||||
*box* = style value
|
||||
style = *volume* or *pressure*
|
||||
|
@ -86,15 +49,6 @@ Syntax
|
|||
|
||||
.. parsed-literal::
|
||||
|
||||
*remap* value = *x* or *v* or *none*
|
||||
x = remap coords of atoms in group into deforming box
|
||||
v = remap velocities of atoms in group when they cross periodic boundaries
|
||||
none = no remapping of x or v
|
||||
*flip* value = *yes* or *no*
|
||||
allow or disallow box flips when it becomes highly skewed
|
||||
*units* value = *lattice* or *box*
|
||||
lattice = distances are defined in lattice units
|
||||
box = distances are defined in simulation box units
|
||||
*couple* value = *none* or *xyz* or *xy* or *yz* or *xz*
|
||||
couple pressure values of various dimensions
|
||||
*vol/balance/p* value = *yes* or *no*
|
||||
|
@ -103,6 +57,7 @@ Syntax
|
|||
rate = maximum strain rate for pressure control
|
||||
*normalize/pressure* value = *yes* or *no*
|
||||
Modifies pressure controls such that the deviation in pressure is normalized by the target pressure
|
||||
NOTE: All other keywords are documented by the :doc:`fix deform <fix_deform>` command
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
@ -124,26 +79,10 @@ pressure-based controls implemented by this command.
|
|||
|
||||
All arguments described on the :doc:`fix deform <fix_deform>` doc page
|
||||
also apply to this fix unless otherwise noted below. The rest of this
|
||||
page explains the arguments specific to this fix only. Note that a
|
||||
doc page explains the arguments specific to this fix. Note that a
|
||||
simulation can define only a single deformation command: fix deform or
|
||||
fix deform/pressure.
|
||||
|
||||
.. admonition:: Inconsistent trajectories due to image flags
|
||||
:class: warning
|
||||
|
||||
When running long simulations while shearing the box or using a high
|
||||
shearing rate, it is possible that the image flags used for storing
|
||||
unwrapped atom positions will "wrap around". When LAMMPS is compiled
|
||||
with the default settings, case image flags are limited to a range of
|
||||
:math:`-512 \le i \le 511`, which will overflow when atoms starting
|
||||
at zero image flag value have passed through a periodic box dimension
|
||||
more than 512 times.
|
||||
|
||||
Changing the :ref:`size of LAMMPS integer types <size>` to the
|
||||
"bigbig" setting can make this overflow much less likely, since it
|
||||
increases the image flag value range to :math:`- 1,048,576 \le i \le
|
||||
1\,048\,575`
|
||||
|
||||
----------
|
||||
|
||||
For the *x*, *y*, and *z* parameters, this is the meaning of the
|
||||
|
|
|
@ -38,7 +38,7 @@ Syntax
|
|||
*electrode/thermo* args = potential eta *temp* values
|
||||
potential = electrode potential
|
||||
charge = electrode charge
|
||||
eta = reciprocal width of electrode charge smearing (can be NULL if eta keyword is used)
|
||||
eta = reciprocal width of electrode charge smearing
|
||||
*temp* values = T_v tau_v rng_v
|
||||
T_v = temperature of thermo-potentiostat
|
||||
tau_v = time constant of thermo-potentiostat
|
||||
|
@ -110,7 +110,7 @@ electrostatic configurations:
|
|||
:ref:`(Deissenbeck)<Deissenbeck>` between two electrodes
|
||||
|
||||
* (resulting in changing charges and potentials with appropriate
|
||||
average potential difference and thermal variance)
|
||||
average potential difference and thermal variance)
|
||||
|
||||
The first group-ID provided to each fix specifies the first electrode
|
||||
group, and more group(s) are added using the *couple* keyword for each
|
||||
|
@ -287,18 +287,8 @@ The *fix_modify tf* option enables the Thomas-Fermi metallicity model
|
|||
fix_modify ID tf type length voronoi
|
||||
|
||||
|
||||
If this option is used, these two parameters must be set for
|
||||
all atom types of the electrode:
|
||||
|
||||
* `tf` is the Thomas-Fermi length :math:`l_{TF}`
|
||||
* `voronoi` is the Voronoi volume per atom in units of length cubed
|
||||
|
||||
Different types may have different `tf` and `voronoi` values.
|
||||
The following self-energy term is then added for all electrode atoms:
|
||||
|
||||
.. math::
|
||||
|
||||
A_{ii} += \frac{1}{4 \pi \epsilon_0} \times \frac{4 \pi l_{TF}^2}{\mathrm{Voronoi volume}}
|
||||
If this option is used parameters must be set for all atom types of the
|
||||
electrode.
|
||||
|
||||
The *fix_modify timer* option turns on (off) additional timer outputs in the log
|
||||
file, for code developers to track optimization.
|
||||
|
@ -331,11 +321,9 @@ The global array has *N* rows and *2N+1* columns, where the fix manages
|
|||
array, the elements are:
|
||||
|
||||
* array[I][1] = total charge that group *I* would have had *if it were
|
||||
at 0 V applied potential*
|
||||
* array[I][2 to *N* + 1] = the *N* entries
|
||||
at 0 V applied potential* * array[I][2 to *N* + 1] = the *N* entries
|
||||
of the *I*-th row of the electrode capacitance matrix (definition
|
||||
follows)
|
||||
* array[I][*N* + 2 to *2N* + 1] = the *N* entries of the
|
||||
follows) * array[I][*N* + 2 to *2N* + 1] = the *N* entries of the
|
||||
*I*-th row of the electrode elastance matrix (the inverse of the
|
||||
electrode capacitance matrix)
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.. index:: fix heat/flow
|
||||
|
||||
fix heat/flow command
|
||||
=====================
|
||||
==========================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
@ -56,19 +56,13 @@ not invoked during :doc:`energy minimization <minimize>`.
|
|||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This pair style is part of the GRANULAR package. It is
|
||||
only enabled if LAMMPS was built with that package.
|
||||
See the :doc:`Build package <Build_package>` page for more info.
|
||||
|
||||
This fix requires that atoms store temperature and heat flow
|
||||
as defined by the :doc:`fix property/atom <fix_property_atom>` command.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`pair granular <pair_granular>`,
|
||||
:doc:`fix add/heat <fix_add_heat>`,
|
||||
:doc:`fix property/atom <fix_property_atom>`
|
||||
:doc:`pair granular <pair_granular>`, :doc:`fix property/atom <fix_property_atom>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
|
|
@ -68,10 +68,10 @@ material or as an obstacle in a flow. Alternatively, it can be used as a
|
|||
constraining wall around a simulation; see the discussion of the
|
||||
*side* keyword below.
|
||||
|
||||
The *gstyle* keyword selects the geometry of the indenter and it can
|
||||
either have the value of *sphere*, *cylinder*, *cone*, or *plane*\ .
|
||||
The *gstyle* geometry of the indenter can either be a sphere, a
|
||||
cylinder, a cone, or a plane.
|
||||
|
||||
A spherical indenter (*gstyle* = *sphere*) exerts a force of magnitude
|
||||
A spherical indenter exerts a force of magnitude
|
||||
|
||||
.. math::
|
||||
|
||||
|
@ -82,16 +82,13 @@ distance from the atom to the center of the indenter, and *R* is the
|
|||
radius of the indenter. The force is repulsive and F(r) = 0 for *r* >
|
||||
*R*\ .
|
||||
|
||||
A cylindrical indenter (*gstyle* = *cylinder*) follows the same formula
|
||||
for the force as a sphere, except that *r* is defined the distance
|
||||
from the atom to the center axis of the cylinder. The cylinder extends
|
||||
infinitely along its axis.
|
||||
A cylindrical indenter exerts the same force, except that *r* is the
|
||||
distance from the atom to the center axis of the cylinder. The
|
||||
cylinder extends infinitely along its axis.
|
||||
|
||||
.. versionadded:: 17April2024
|
||||
|
||||
A conical indenter (*gstyle* = *cone*) is similar to a cylindrical indenter
|
||||
except that it has a finite length (between *lo* and *hi*), and that two
|
||||
different radii (one at each end, *radlo* and *radhi*) can be defined.
|
||||
A conical indenter is similar to a cylindrical indenter except that it
|
||||
has a finite length (between *lo* and *hi*), and that two different
|
||||
radii (one at each end, *radlo* and *radhi*) can be defined.
|
||||
|
||||
Spherical, cylindrical, and conical indenters account for periodic
|
||||
boundaries in two ways. First, the center point of a spherical
|
||||
|
@ -104,15 +101,15 @@ or axis accounts for periodic boundaries. Both of these mean that an
|
|||
indenter can effectively move through and straddle one or more
|
||||
periodic boundaries.
|
||||
|
||||
A planar indenter (*gstyle* = *plane*) behaves like an axis-aligned
|
||||
infinite-extent wall with the same force expression on atoms in the
|
||||
system as before, but where *R* is the position of the plane and *r-R*
|
||||
is the distance of an from the plane. If the *side* parameter of the
|
||||
plane is specified as *lo* then it will indent from the lo end of the
|
||||
simulation box, meaning that atoms with a coordinate less than the
|
||||
plane's current position will be pushed towards the hi end of the box
|
||||
and atoms with a coordinate higher than the plane's current position
|
||||
will feel no force. Vice versa if *side* is specified as *hi*\ .
|
||||
A planar indenter is really an axis-aligned infinite-extent wall
|
||||
exerting the same force on atoms in the system, where *R* is the
|
||||
position of the plane and *r-R* is the distance from the plane. If
|
||||
the *side* parameter of the plane is specified as *lo* then it will
|
||||
indent from the lo end of the simulation box, meaning that atoms with
|
||||
a coordinate less than the plane's current position will be pushed
|
||||
towards the hi end of the box and atoms with a coordinate higher than
|
||||
the plane's current position will feel no force. Vice versa if *side*
|
||||
is specified as *hi*\ .
|
||||
|
||||
Any of the 4 quantities defining a spherical indenter's geometry can
|
||||
be specified as an equal-style :doc:`variable <variable>`, namely *x*,
|
||||
|
|
|
@ -247,11 +247,6 @@ defined by the :doc:`atom_style sph <atom_style>` command.
|
|||
|
||||
All particles in the group must be mesoscopic SPH/SDPD particles.
|
||||
|
||||
.. versionchanged:: TBD
|
||||
|
||||
This fix is incompatible with deformation controls that remap velocity,
|
||||
for instance the *remap v* option of :doc:`fix deform <fix_deform>`.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
|
|
|
@ -97,11 +97,6 @@ These fixes are part of the DPD-MESO package. They are only enabled if
|
|||
LAMMPS was built with that package. See the :doc:`Build package
|
||||
<Build_package>` page for more info.
|
||||
|
||||
.. versionchanged:: TBD
|
||||
|
||||
This fix is incompatible with deformation controls that remap velocity,
|
||||
for instance the *remap v* option of :doc:`fix deform <fix_deform>`.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
|
|
|
@ -236,7 +236,7 @@ The keyword *fixcom* specifies whether the center-of-mass of the extended ring-p
|
|||
Once *fixcom* is set to be *yes*, the center-of-mass velocity will be distracted from the centroid-mode velocities in each step.
|
||||
|
||||
The keyword *lj* should be used if :doc:`lj units <units>` is used for *fix pimd/langevin*. Typically one may want to use
|
||||
reduced units to run the simulation, and then convert the results into some physical units (for example, :doc:`metal units <units>`). In this case, the 5 quantities in the physical mass units are needed: epsilon (energy scale), sigma (length scale), mass, Planck's constant, mvv2e (mass * velocity^2 to energy conversion factor). Planck's constant and mvv2e can be found in src/update.cpp. If there is no need to convert reduced units to physical units, you can omit the keyword *lj* and these five values will be set to 1.
|
||||
reduced units to run the simulation, and then convert the results into some physical units (for example, :doc:`metal units <units>`). In this case, the 5 quantities in the physical mass units are needed: epsilon (energy scale), sigma (length scale), mass, Planck's constant, mvv2e (mass * velocity^2 to energy conversion factor). Planck's constant and mvv2e can be found in src/update.cpp. If there is no need to convert reduced units to physical units, set all these five value to 1.
|
||||
|
||||
The PIMD algorithm in LAMMPS is implemented as a hyper-parallel scheme
|
||||
as described in :ref:`Calhoun <Calhoun>`. In LAMMPS this is done by using
|
||||
|
|
|
@ -1,180 +0,0 @@
|
|||
.. index:: fix rheo
|
||||
|
||||
fix rheo command
|
||||
================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
fix ID group-ID rheo cut kstyle zmin keyword values...
|
||||
|
||||
* ID, group-ID are documented in :doc:`fix <fix>` command
|
||||
* rheo = style name of this fix command
|
||||
* cut = cutoff for the kernel (distance)
|
||||
* kstyle = *quintic* or *RK0* or *RK1* or *RK2*
|
||||
* zmin = minimal number of neighbors for reproducing kernels
|
||||
* zero or more keyword/value pairs may be appended to args
|
||||
* keyword = *thermal* or *interface/reconstruct* or *surface/detection* or
|
||||
*shift* or *rho/sum* or *density* or *self/mass* or *speed/sound*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*thermal* values = none, turns on thermal evolution
|
||||
*interface/reconstruct* values = none, reconstructs interfaces with solid particles
|
||||
*surface/detection* values = *sdstyle* *limit* *limit/splash*
|
||||
*sdstyle* = *coordination* or *divergence*
|
||||
*limit* = threshold for surface particles
|
||||
*limit/splash* = threshold for splash particles
|
||||
*shift* values = none, turns on velocity shifting
|
||||
*rho/sum* values = none, uses the kernel to compute the density of particles
|
||||
*self/mass* values = none, a particle uses its own mass in a rho summation
|
||||
*density* values = *rho01*, ... *rho0N* (density)
|
||||
*speed/sound* values = *cs0*, ... *csN* (velocity)
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix 1 all rheo 3.0 quintic 0 thermal density 0.1 0.1 speed/sound 10.0 1.0
|
||||
fix 1 all rheo 3.0 RK1 10 shift surface/detection coordination 40
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
.. versionadded:: TBD
|
||||
|
||||
Perform time integration for RHEO particles, updating positions, velocities,
|
||||
and densities. For a detailed breakdown of the integration timestep and
|
||||
numerical details, see :ref:`(Palermo) <rheo_palermo>`. For an
|
||||
overview of other features available in the RHEO package, see
|
||||
:doc:`the RHEO howto <Howto_rheo>`.
|
||||
|
||||
The type of kernel is specified using *kstyle* and the cutoff is *cut*. Four
|
||||
kernels are currently available. The *quintic* kernel is a standard quintic
|
||||
spline function commonly used in SPH. The other options, *RK0*, *RK1*, and
|
||||
*RK2*, are zeroth, first, and second order reproducing. To generate a
|
||||
reproducing kernel, a particle must have sufficient neighbors inside the
|
||||
kernel cutoff distance (a coordination number) to accurately calculate
|
||||
moments. This threshold is set by *zmin*. If reproducing kernels are
|
||||
requested but a particle has fewer neighbors, then it will revert to a
|
||||
non-reproducing quintic kernel until it gains more neighbors.
|
||||
|
||||
To model temperature evolution, one must specify the *thermal* keyword,
|
||||
define a separate instance of :doc:`fix rheo/thermal <fix_rheo_thermal>`,
|
||||
and use atom style rheo/thermal.
|
||||
|
||||
By default, the density of solid RHEO particles does not evolve and forces
|
||||
with fluid particles are calculated using the current velocity of the solid
|
||||
particle. If the *interface/reconstruct* keyword is used, then the density
|
||||
and velocity of solid particles are alternatively reconstructed for every
|
||||
fluid-solid interaction to ensure no-slip and pressure-balanced boundaries.
|
||||
This is done by estimating the location of the fluid-solid interface and
|
||||
extrapolating fluid particle properties across the interface to calculate a
|
||||
temporary apparent density and velocity for a solid particle. The numerical
|
||||
details are the same as those described in
|
||||
:ref:`(Palermo) <howto_rheo_palermo>` except there is an additional
|
||||
restriction that the reconstructed solid density cannot be less than the
|
||||
equilibrium density. This prevents fluid particles from sticking to solid
|
||||
surfaces.
|
||||
|
||||
A modified form of Fickian particle shifting can be enabled with the
|
||||
*shift* keyword. This effectively shifts particle positions to generate a
|
||||
more uniform spatial distribution. Shifting currently does not consider the
|
||||
type of a particle and therefore may be inappropriate in systems consisting
|
||||
of multiple fluid phases.
|
||||
|
||||
In systems with free surfaces, the *surface/detection* keyword can be used
|
||||
to classify the location of particles as being within the bulk fluid, on a
|
||||
free surface, or isolated from other particles in a splash or droplet.
|
||||
Shifting is then disabled in the normal direction away from the free surface
|
||||
to prevent particles from diffusing away. Surface detection can also be used
|
||||
to control surface-nucleated effects like oxidation when used in combination
|
||||
with :doc:`fix rheo/oxidation <fix_rheo_oxidation>`. Surface detection is not
|
||||
performed on solid bodies.
|
||||
|
||||
The *surface/detection* keyword takes three arguments: *sdstyle*, *limit*,
|
||||
and *limit/splash*. The first, *sdstyle*, specifies whether surface particles
|
||||
are identified using a coordination number (*coordination*) or the divergence
|
||||
of the local particle positions (*divergence*). The threshold value for a
|
||||
surface particle for either of these criteria is set by the numerical value
|
||||
of *limit*. Additionally, if a particle's coordination number is too low,
|
||||
i.e. if it has separated off from the bulk in a droplet, it is not possible
|
||||
to define surfaces and the particle is classified as a splash. The coordination
|
||||
threshold for this classification is set by the numerical value of
|
||||
*limit/splash*.
|
||||
|
||||
By default, RHEO integrates particles' densities using a mass diffusion
|
||||
equation. Alternatively, one can update densities every timestep by performing
|
||||
a kernel summation of the masses of neighboring particles by specifying the *rho/sum*
|
||||
keyword.
|
||||
|
||||
The *self/mass* keyword modifies the behavior of the density summation in *rho/sum*.
|
||||
Typically, the density :math:`\rho` of a particle is calculated as the sum over neighbors
|
||||
|
||||
.. math::
|
||||
\rho_i = \sum_{j} W_{ij} M_j
|
||||
|
||||
where :math:`W_{ij}` is the kernel, and :math:`M_j` is the mass of particle :math:`j`.
|
||||
The *self/mass* keyword augments this expression by replacing :math:`M_j` with
|
||||
:math:`M_i`. This may be useful in simulations of multiple fluid phases with large
|
||||
differences in density, :ref:`(Hu) <fix_rheo_hu>`.
|
||||
|
||||
The *density* keyword is used to specify the equilibrium density of each of the N
|
||||
particle types. It must be followed by N numerical values specifying each type's
|
||||
equilibrium density *rho0*.
|
||||
|
||||
The *speed/sound* keyword is used to specify the speed of sound of each of the
|
||||
N particle types. It must be followed by N numerical values specifying each type's
|
||||
speed of sound *cs*.
|
||||
|
||||
Restart, fix_modify, output, run start/stop, minimize info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
No information about this fix is written to :doc:`binary restart files <restart>`.
|
||||
None of the :doc:`fix_modify <fix_modify>` options
|
||||
are relevant to this fix. No global or per-atom quantities are stored
|
||||
by this fix for access by various :doc:`output commands <Howto_output>`.
|
||||
No parameter of this fix can be used with the *start/stop* keywords of
|
||||
the :doc:`run <run>` command. This fix is not invoked during
|
||||
:doc:`energy minimization <minimize>`.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This fix must be used with atom style rheo or rheo/thermal. This fix must
|
||||
be used in conjunction with :doc:`fix rheo/pressure <fix_rheo_pressure>`.
|
||||
and :doc:`fix rheo/viscosity <fix_rheo_viscosity>`. If the *thermal* setting
|
||||
is used, there must also be an instance of
|
||||
:doc:`fix rheo/thermal <fix_rheo_thermal>`. The fix group must be set to all.
|
||||
Only one instance of fix rheo may be defined and it must be defined prior
|
||||
to all other RHEO fixes in the input script.
|
||||
|
||||
This fix is part of the RHEO package. It is only enabled if LAMMPS was built
|
||||
with that package. See the :doc:`Build package <Build_package>` page for more info.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`fix rheo/viscosity <fix_rheo_viscosity>`,
|
||||
:doc:`fix rheo/pressure <fix_rheo_pressure>`,
|
||||
:doc:`fix rheo/thermal <fix_rheo_thermal>`,
|
||||
:doc:`pair rheo <pair_rheo>`,
|
||||
:doc:`compute rheo/property/atom <compute_rheo_property_atom>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
*rho0* and *cs* are set to 1.0 for all atom types.
|
||||
|
||||
----------
|
||||
|
||||
.. _rheo_palermo:
|
||||
|
||||
**(Palermo)** Palermo, Wolf, Clemmer, O'Connor, in preparation.
|
||||
|
||||
.. _fix_rheo_hu:
|
||||
|
||||
**(Hu)** Hu, and Adams J. Comp. Physics, 213, 844-861 (2006).
|
|
@ -1,85 +0,0 @@
|
|||
.. index:: fix rheo/oxidation
|
||||
|
||||
fix rheo/oxidation command
|
||||
==========================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
fix ID group-ID rheo/oxidation cut btype rsurf
|
||||
|
||||
* ID, group-ID are documented in :doc:`fix <fix>` command
|
||||
* rheo/oxidation = style name of this fix command
|
||||
* cut = maximum bond length (distance units)
|
||||
* btype = type of bonds created
|
||||
* rsurf = distance from surface to create bonds (distance units)
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix 1 all rheo/oxidation 1.5 2 0.0
|
||||
fix 1 all rheo/oxidation 1.0 1 2.0
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
.. versionadded:: TBD
|
||||
|
||||
This fix dynamically creates bonds on the surface of fluids to
|
||||
represent physical processes such as oxidation. It is intended
|
||||
for use with bond style :doc:`bond rheo/shell <bond_rheo_shell>`.
|
||||
|
||||
Every timestep, particles check neighbors within a distance of *cut*.
|
||||
This distance must be smaller than the kernel length defined in
|
||||
:doc:`fix rheo <fix_rheo>`. Bonds of type *btype* are created between
|
||||
a fluid particle and either a fluid or solid neighbor. The fluid particles
|
||||
must also be on the fluid surface, or within a distance of *rsurf* from
|
||||
the surface. This process is further described in
|
||||
:ref:`(Clemmer) <howto_rheo_clemmer2>`.
|
||||
|
||||
If used in conjunction with solid bodies, such as those generated
|
||||
by the *react* option of :doc:`fix rheo/thermal <fix_rheo_thermal>`,
|
||||
it is recommended to use a :doc:`hybrid bond style <bond_hybrid>`
|
||||
with different bond types for solid and oxide bonds.
|
||||
|
||||
Restart, fix_modify, output, run start/stop, minimize info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
No information about this fix is written to :doc:`binary restart files <restart>`.
|
||||
None of the :doc:`fix_modify <fix_modify>` options
|
||||
are relevant to this fix. No global or per-atom quantities are stored
|
||||
by this fix for access by various :doc:`output commands <Howto_output>`.
|
||||
No parameter of this fix can be used with the *start/stop* keywords of
|
||||
the :doc:`run <run>` command. This fix is not invoked during :doc:`energy minimization <minimize>`.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This fix must be used with the bond style :doc:`rheo/shell <bond_rheo_shell>`
|
||||
and :doc:`fix rheo <fix_rheo>` with surface detection enabled.
|
||||
|
||||
This fix is part of the RHEO package. It is only enabled if
|
||||
LAMMPS was built with that package. See the :doc:`Build package <Build_package>`
|
||||
page for more info.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`fix rheo <fix_rheo>`,
|
||||
:doc:`bond rheo/shell <bond_rheo_shell>`,
|
||||
:doc:`compute rheo/property/atom <compute_rheo_property_atom>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
none
|
||||
|
||||
----------
|
||||
|
||||
.. _howto_rheo_clemmer2:
|
||||
|
||||
**(Clemmer)** Clemmer, Pierce, O'Connor, Nevins, Jones, Lechman, Tencer, Appl. Math. Model., 130, 310-326 (2024).
|
|
@ -1,106 +0,0 @@
|
|||
.. index:: fix rheo/pressure
|
||||
|
||||
fix rheo/pressure command
|
||||
=========================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
fix ID group-ID rheo/pressure type1 pstyle1 args1 ... typeN pstyleN argsN
|
||||
|
||||
* ID, group-ID are documented in :doc:`fix <fix>` command
|
||||
* rheo/pressure = style name of this fix command
|
||||
* one or more types and pressure styles must be appended
|
||||
* types = lists of types (see below)
|
||||
* pstyle = *linear* or *taitwater* or *cubic*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*linear* args = none
|
||||
*taitwater* args = none
|
||||
*cubic* args = cubic prefactor :math:`A_3` (pressure/density\^2)
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix 1 all rheo/pressure * linear
|
||||
fix 1 all rheo/pressure 1 linear 2 cubic 10.0
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
.. versionadded:: TBD
|
||||
|
||||
This fix defines a pressure equation of state for RHEO particles. One can
|
||||
define different equations of state for different atom types. An equation
|
||||
must be specified for every atom type.
|
||||
|
||||
One first defines the atom *types*. A wild-card asterisk can be used in place
|
||||
of or in conjunction with the *types* argument to set the coefficients for
|
||||
multiple pairs of atom types. This takes the form "\*" or "\*n" or "m\*"
|
||||
or "m\*n". If :math:`N` is the number of atom types, then an asterisk with
|
||||
no numeric values means all types from 1 to :math:`N`. A leading asterisk
|
||||
means all types from 1 to n (inclusive). A trailing asterisk means all types
|
||||
from m to :math:`N` (inclusive). A middle asterisk means all types from m to n
|
||||
(inclusive).
|
||||
|
||||
The *types* definition is followed by the pressure style, *pstyle*. Current
|
||||
options *linear*, *taitwater*, and *cubic*. Style *linear* is a linear
|
||||
equation of state with a particle pressure :math:`P` calculated as
|
||||
|
||||
.. math::
|
||||
|
||||
P = c (\rho - \rho_0)
|
||||
|
||||
where :math:`c` is the speed of sound, :math:`\rho_0` is the equilibrium density,
|
||||
and :math:`\rho` is the current density of a particle. The numerical values of
|
||||
:math:`c` and :math:`\rho_0` are set in :doc:`fix rheo <fix_rheo>`. Style *cubic*
|
||||
is a cubic equation of state which has an extra argument :math:`A_3`,
|
||||
|
||||
.. math::
|
||||
|
||||
P = c ((\rho - \rho_0) + A_3 (\rho - \rho_0)^3) .
|
||||
|
||||
Style *taitwater* is Tait's equation of state:
|
||||
|
||||
.. math::
|
||||
|
||||
P = \frac{c^2 \rho_0}{7} \biggl[\left(\frac{\rho}{\rho_0}\right)^{7} - 1\biggr].
|
||||
|
||||
Restart, fix_modify, output, run start/stop, minimize info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
No information about this fix is written to :doc:`binary restart files <restart>`.
|
||||
None of the :doc:`fix_modify <fix_modify>` options
|
||||
are relevant to this fix. No global or per-atom quantities are stored
|
||||
by this fix for access by various :doc:`output commands <Howto_output>`.
|
||||
No parameter of this fix can be used with the *start/stop* keywords of
|
||||
the :doc:`run <run>` command. This fix is not invoked during :doc:`energy minimization <minimize>`.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This fix must be used with an atom style that includes density
|
||||
such as atom_style rheo or rheo/thermal. This fix must be used in
|
||||
conjunction with :doc:`fix rheo <fix_rheo>`. The fix group must be
|
||||
set to all. Only one instance of fix rheo/pressure can be defined.
|
||||
|
||||
This fix is part of the RHEO package. It is only enabled if
|
||||
LAMMPS was built with that package. See the :doc:`Build package <Build_package>`
|
||||
page for more info.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`fix rheo <fix_rheo>`,
|
||||
:doc:`pair rheo <pair_rheo>`,
|
||||
:doc:`compute rheo/property/atom <compute_rheo_property_atom>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
none
|
|
@ -1,128 +0,0 @@
|
|||
.. index:: fix rheo/thermal
|
||||
|
||||
fix rheo/thermal command
|
||||
========================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
fix ID group-ID rheo/thermal attribute values ...
|
||||
|
||||
* ID, group-ID are documented in :doc:`fix <fix>` command
|
||||
* rheo/thermal = style name of this fix command
|
||||
* one or more attributes may be appended
|
||||
* attribute = *conductivity* or *specific/heat* or *latent/heat* or *Tfreeze* or *react*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*conductivity* args = types style args
|
||||
types = lists of types (see below)
|
||||
style = *constant*
|
||||
*constant* arg = conductivity (power/temperature)
|
||||
*specific/heat* args = types style args
|
||||
types = lists of types (see below)
|
||||
style = *constant*
|
||||
*constant* arg = specific heat (energy/(mass*temperature))
|
||||
*latent/heat* args = types style args
|
||||
types = lists of types (see below)
|
||||
style = *constant*
|
||||
*constant* arg = latent heat (energy/mass)
|
||||
*Tfreeze* args = types style args
|
||||
types = lists of types (see below)
|
||||
style = *constant*
|
||||
*constant* arg = freezing temperature (temperature)
|
||||
*react* args = cut type
|
||||
cut = maximum bond distance
|
||||
type = bond type
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix 1 all rheo/thermal conductivity * constant 1.0 specific/heat * constant 1.0 Tfreeze * constant 1.0
|
||||
fix 1 all rheo/pressure conductivity 1*2 constant 1.0 conductivity 3*4 constant 2.0 specific/heat * constant 1.0
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
.. versionadded:: TBD
|
||||
|
||||
This fix performs time integration of temperature for atom style rheo/thermal.
|
||||
In addition, it defines multiple thermal properties of particles and handles
|
||||
melting/solidification, if applicable. For more details on phase transitions
|
||||
in RHEO, see :doc:`the RHEO howto <Howto_rheo>`.
|
||||
|
||||
Note that the temperature of a particle is always derived from the energy.
|
||||
This implies the *temperature* attribute of :doc:`the set command <set>` does
|
||||
not affect particles. Instead, one should use the *sph/e* attribute.
|
||||
|
||||
For each atom type, one can define expressions for the *conductivity*,
|
||||
*specific/heat*, *latent/heat*, and critical temperature (*Tfreeze*).
|
||||
The conductivity and specific heat must be defined for all atom types.
|
||||
The latent heat and critical temperature are optional. However, a
|
||||
critical temperature must be defined to specify a latent heat.
|
||||
|
||||
Note, if shifting is turned on in :doc:`fix rheo <fix_rheo>`, the gradient
|
||||
of the energy is used to shift energies. This may be inappropriate in systems
|
||||
with multiple atom types with different specific heats.
|
||||
|
||||
For each property, one must first define a list of atom types. A wild-card
|
||||
asterisk can be used in place of or in conjunction with the *types* argument
|
||||
to set the coefficients for multiple pairs of atom types. This takes the
|
||||
form "\*" or "\*n" or "m\*" or "m\*n". If :math:`N` is the number of atom
|
||||
types, then an asterisk with no numeric values means all types from 1 to
|
||||
:math:`N`. A leading asterisk means all types from 1 to n (inclusive).
|
||||
A trailing asterisk means all types from m to :math:`N` (inclusive). A
|
||||
middle asterisk means all types from m to n (inclusive).
|
||||
|
||||
The *types* definition for each property is followed by the style. Currently,
|
||||
the only option is *constant*. Style *constant* simply applies a constant value
|
||||
of respective property to each particle of the assigned type.
|
||||
|
||||
The *react* keyword controls whether bonds are created/deleted when particles
|
||||
transition between a fluid and solid state. This option only applies to atom
|
||||
types that have a defined value of *Tfreeze*. When a fluid particle's
|
||||
temperature drops below *Tfreeze*, bonds of type *btype* are created between
|
||||
nearby solid particles within a distance of *cut*. The particle's status also
|
||||
swaps to a solid state. When a solid particle's temperature rises above
|
||||
*Tfreeze*, all bonds of type *btype* are broken and the particle's status swaps
|
||||
to a fluid state.
|
||||
|
||||
Restart, fix_modify, output, run start/stop, minimize info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
No information about this fix is written to :doc:`binary restart files <restart>`.
|
||||
None of the :doc:`fix_modify <fix_modify>` options
|
||||
are relevant to this fix. No global or per-atom quantities are stored
|
||||
by this fix for access by various :doc:`output commands <Howto_output>`.
|
||||
No parameter of this fix can be used with the *start/stop* keywords of
|
||||
the :doc:`run <run>` command. This fix is not invoked during :doc:`energy minimization <minimize>`.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This fix must be used with an atom style that includes temperature,
|
||||
heatflow, and conductivity such as atom_style rheo/thermal This fix
|
||||
must be used in conjunction with :doc:`fix rheo <fix_rheo>` with the
|
||||
*thermal* setting. The fix group must be set to all. Only one
|
||||
instance of fix rheo/pressure can be defined.
|
||||
|
||||
This fix is part of the RHEO package. It is only enabled if
|
||||
LAMMPS was built with that package. See the :doc:`Build package <Build_package>`
|
||||
page for more info.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`fix rheo <fix_rheo>`,
|
||||
:doc:`pair rheo <pair_rheo>`,
|
||||
:doc:`compute rheo/property/atom <compute_rheo_property_atom>`,
|
||||
:doc:`fix add/heat <fix_add_heat>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
none
|
|
@ -1,117 +0,0 @@
|
|||
.. index:: fix rheo/viscosity
|
||||
|
||||
fix rheo/viscosity command
|
||||
==========================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
fix ID group-ID rheo/viscosity type1 pstyle1 args1 ... typeN pstyleN argsN
|
||||
|
||||
* ID, group-ID are documented in :doc:`fix <fix>` command
|
||||
* rheo/viscosity = style name of this fix command
|
||||
* one or more types and viscosity styles must be appended
|
||||
* types = lists of types (see below)
|
||||
* vstyle = *constant* or *power*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*constant* args = *eta*
|
||||
*eta* = viscosity
|
||||
|
||||
*power* args = *eta*, *gd0*, *K*, *n*
|
||||
*eta* = viscosity
|
||||
*gd0* = critical strain rate
|
||||
*K* = consistency index
|
||||
*n* = power-law exponent
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix 1 all rheo/viscosity * constant 1.0
|
||||
fix 1 all rheo/viscosity 1 constant 1.0 2 power 0.1 5e-4 0.001 0.5
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
.. versionadded:: TBD
|
||||
|
||||
This fix defines a viscosity for RHEO particles. One can define different
|
||||
viscosities for different atom types, but a viscosity must be specified for
|
||||
every atom type.
|
||||
|
||||
One first defines the atom *types*. A wild-card asterisk can be used in place
|
||||
of or in conjunction with the *types* argument to set the coefficients for
|
||||
multiple pairs of atom types. This takes the form "\*" or "\*n" or "m\*"
|
||||
or "m\*n". If :math:`N` is the number of atom types, then an asterisk with
|
||||
no numeric values means all types from 1 to :math:`N`. A leading asterisk
|
||||
means all types from 1 to n (inclusive). A trailing asterisk means all types
|
||||
from m to :math:`N` (inclusive). A middle asterisk means all types from m to n
|
||||
(inclusive).
|
||||
|
||||
The *types* definition is followed by the viscosity style, *vstyle*. Two
|
||||
options are available, *constant* and *power*. Style *constant* simply
|
||||
applies a constant value of the viscosity *eta* to each particle of the
|
||||
assigned type. Style *power* is a Hershchel-Bulkley constitutive equation
|
||||
for the stress :math:`\tau`
|
||||
|
||||
.. math::
|
||||
|
||||
\tau = \left(\frac{\tau_0}{\dot{\gamma}} + K \dot{\gamma}^{n - 1}\right) \dot{\gamma}, \tau \ge \tau_0
|
||||
|
||||
where :math:`\dot{\gamma}` is the strain rate and :math:`\tau_0` is the critical
|
||||
yield stress, below which :math:`\dot{\gamma} = 0.0`. To avoid divergences, this
|
||||
expression is regularized by defining a critical strain rate *gd0*. If the local
|
||||
strain rate on a particle falls below this limit, a constant viscosity of *eta*
|
||||
is assigned. This implies a value of
|
||||
|
||||
.. math::
|
||||
\tau_0 = \eta \dot{\gamma}_0 - K \dot{\gamma}_0^N
|
||||
|
||||
as further discussed in :ref:`(Palermo) <rheo_palermo2>`.
|
||||
|
||||
|
||||
Restart, fix_modify, output, run start/stop, minimize info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
No information about this fix is written to :doc:`binary restart files <restart>`.
|
||||
None of the :doc:`fix_modify <fix_modify>` options
|
||||
are relevant to this fix. No global or per-atom quantities are stored
|
||||
by this fix for access by various :doc:`output commands <Howto_output>`.
|
||||
No parameter of this fix can be used with the *start/stop* keywords of
|
||||
the :doc:`run <run>` command. This fix is not invoked during
|
||||
:doc:`energy minimization <minimize>`.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This fix must be used with an atom style that includes viscosity
|
||||
such as atom_style rheo or rheo/thermal. This fix must be used in
|
||||
conjunction with :doc:`fix rheo <fix_rheo>`. The fix group must be
|
||||
set to all. Only one instance of fix rheo/viscosity can be defined.
|
||||
|
||||
This fix is part of the RHEO package. It is only enabled if
|
||||
LAMMPS was built with that package. See the
|
||||
:doc:`Build package <Build_package>` page for more info.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`fix rheo <fix_rheo>`,
|
||||
:doc:`pair rheo <pair_rheo>`,
|
||||
:doc:`compute rheo/property/atom <compute_rheo_property_atom>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
none
|
||||
|
||||
----------
|
||||
|
||||
.. _rheo_palermo2:
|
||||
|
||||
**(Palermo)** Palermo, Wolf, Clemmer, O'Connor, in preparation.
|
|
@ -353,11 +353,6 @@ defined by the :doc:`atom_style sph <atom_style>` command.
|
|||
|
||||
All particles in the group must be mesoscopic SPH/SDPD particles.
|
||||
|
||||
.. versionchanged:: TBD
|
||||
|
||||
This fix is incompatible with deformation controls that remap velocity,
|
||||
for instance the *remap v* option of :doc:`fix deform <fix_deform>`.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
|
|
|
@ -27,9 +27,9 @@ Syntax
|
|||
|
||||
.. parsed-literal::
|
||||
|
||||
*b* values = one or more bond types (may use type labels)
|
||||
*a* values = one or more angle types (may use type labels)
|
||||
*t* values = one or more atom types (may use type labels)
|
||||
*b* values = one or more bond types
|
||||
*a* values = one or more angle types
|
||||
*t* values = one or more atom types
|
||||
*m* value = one or more mass values
|
||||
|
||||
* zero or more keyword/value pairs may be appended
|
||||
|
@ -137,17 +137,7 @@ constrained (within a fudge factor of MASSDELTA specified in
|
|||
both bonds in the angle are constrained then the angle will also be
|
||||
constrained if its type is in the list.
|
||||
|
||||
.. versionchanged:: TBD
|
||||
|
||||
The types may be given as type labels *only* if there is no atom, bond,
|
||||
or angle type label named *b*, *a*, *t*, or *m* defined in the
|
||||
simulation. If that is the case, type labels cannot be used as
|
||||
constraint type index with these two fixes, because the type labels
|
||||
would be incorrectly treated as a new type of constraint instead.
|
||||
Thus, LAMMPS will print a warning and type label handling is disabled
|
||||
and numeric types must be used.
|
||||
|
||||
For all constraints, a particular bond is only constrained if *both*
|
||||
For all constraints, a particular bond is only constrained if both
|
||||
atoms in the bond are in the group specified with the SHAKE fix.
|
||||
|
||||
The degrees-of-freedom removed by SHAKE bonds and angles are accounted
|
||||
|
|
|
@ -53,11 +53,6 @@ Restrictions
|
|||
This fix is part of the MACHDYN package. It is only enabled if
|
||||
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` page for more info.
|
||||
|
||||
.. versionchanged:: TBD
|
||||
|
||||
This fix is incompatible with deformation controls that remap velocity,
|
||||
for instance the *remap v* option of :doc:`fix deform <fix_deform>`.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
|
|
|
@ -61,11 +61,6 @@ Restrictions
|
|||
This fix is part of the MACHDYN package. It is only enabled if
|
||||
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` page for more info.
|
||||
|
||||
.. versionchanged:: TBD
|
||||
|
||||
This fix is incompatible with deformation controls that remap velocity,
|
||||
for instance the *remap v* option of :doc:`fix deform <fix_deform>`.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
|
|
|
@ -23,12 +23,11 @@ Examples
|
|||
Description
|
||||
"""""""""""
|
||||
|
||||
Store the forces on atoms in the group at the point during each timestep
|
||||
when the fix is invoked, as described below. This is useful for storing
|
||||
forces before constraints or other boundary conditions are computed
|
||||
which modify the forces, so that unmodified forces can be :doc:`written
|
||||
to a dump file <dump>` or accessed by other :doc:`output commands
|
||||
<Howto_output>` that use per-atom quantities.
|
||||
Store the forces on atoms in the group at the point during each
|
||||
timestep when the fix is invoked, as described below. This is useful
|
||||
for storing forces before constraints or other boundary conditions are
|
||||
computed which modify the forces, so that unmodified forces can be
|
||||
:doc:`written to a dump file <dump>` or accessed by other :doc:`output commands <Howto_output>` that use per-atom quantities.
|
||||
|
||||
This fix is invoked at the point in the velocity-Verlet timestepping
|
||||
immediately after :doc:`pair <pair_style>`, :doc:`bond <bond_style>`,
|
||||
|
@ -37,13 +36,12 @@ immediately after :doc:`pair <pair_style>`, :doc:`bond <bond_style>`,
|
|||
forces have been calculated. It is the point in the timestep when
|
||||
various fixes that compute constraint forces are calculated and
|
||||
potentially modify the force on each atom. Examples of such fixes are
|
||||
:doc:`fix shake <fix_shake>`, :doc:`fix wall <fix_wall>`, and :doc:`fix
|
||||
indent <fix_indent>`.
|
||||
:doc:`fix shake <fix_shake>`, :doc:`fix wall <fix_wall>`, and :doc:`fix indent <fix_indent>`.
|
||||
|
||||
.. note::
|
||||
|
||||
The order in which various fixes are applied which operate at the
|
||||
same point during the timestep, is the same as the order they are
|
||||
The order in which various fixes are applied which operate at
|
||||
the same point during the timestep, is the same as the order they are
|
||||
specified in the input script. Thus normally, if you want to store
|
||||
per-atom forces due to force field interactions, before constraints
|
||||
are applied, you should list this fix first within that set of fixes,
|
||||
|
@ -54,9 +52,8 @@ indent <fix_indent>`.
|
|||
Restart, fix_modify, output, run start/stop, minimize info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
No information about this fix is written to :doc:`binary restart files
|
||||
<restart>`. None of the :doc:`fix_modify <fix_modify>` options are
|
||||
relevant to this fix.
|
||||
No information about this fix is written to :doc:`binary restart files <restart>`. None of the :doc:`fix_modify <fix_modify>` options
|
||||
are relevant to this fix.
|
||||
|
||||
This fix produces a per-atom array which can be accessed by various
|
||||
:doc:`output commands <Howto_output>`. The number of columns for each
|
||||
|
@ -64,8 +61,7 @@ atom is 3, and the columns store the x,y,z forces on each atom. The
|
|||
per-atom values be accessed on any timestep.
|
||||
|
||||
No parameter of this fix can be used with the *start/stop* keywords of
|
||||
the :doc:`run <run>` command. This fix is not invoked during
|
||||
:doc:`energy minimization <minimize>`.
|
||||
the :doc:`run <run>` command. This fix is not invoked during :doc:`energy minimization <minimize>`.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
|
|
@ -1,11 +1,8 @@
|
|||
.. index:: improper_style hybrid
|
||||
.. index:: improper_style hybrid/kk
|
||||
|
||||
improper_style hybrid command
|
||||
=============================
|
||||
|
||||
Accelerator Variants: *hybrid/kk*
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
|
@ -82,10 +79,6 @@ types.
|
|||
|
||||
----------
|
||||
|
||||
.. include:: accel_styles.rst
|
||||
|
||||
----------
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
|
@ -94,10 +87,9 @@ MOLECULE package. See the :doc:`Build package <Build_package>` doc page
|
|||
for more info.
|
||||
|
||||
Unlike other improper styles, the hybrid improper style does not store
|
||||
improper coefficient info for individual sub-styles in :doc:`binary
|
||||
restart files <restart>` or :doc:`data files <write_data>`. Thus when
|
||||
restarting a simulation, you need to re-specify the improper_coeff
|
||||
commands.
|
||||
improper coefficient info for individual sub-styles in a :doc:`binary restart files <restart>`.
|
||||
Thus when restarting a simulation from a
|
||||
restart file, you need to re-specify improper_coeff commands.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
|
|
@ -32,7 +32,7 @@ Syntax
|
|||
group-ID = only build pair neighbor lists for atoms in this group
|
||||
*exclude* values:
|
||||
*type* M N
|
||||
M,N = exclude if one atom in pair is type M, other is type N (M and N may be type labels)
|
||||
M,N = exclude if one atom in pair is type M, other is type N
|
||||
*group* group1-ID group2-ID
|
||||
group1-ID,group2-ID = exclude if one atom is in 1st group, other in 2nd
|
||||
*molecule/intra* group-ID
|
||||
|
@ -159,19 +159,15 @@ sample scenarios where this is useful:
|
|||
* When one or more rigid bodies are specified, interactions within each
|
||||
body can be turned off to save needless computation. See the :doc:`fix rigid <fix_rigid>` command for more details.
|
||||
|
||||
.. versionchanged:: TBD
|
||||
|
||||
Support for type labels was added.
|
||||
|
||||
The *exclude type* option turns off the pairwise interaction if one atom
|
||||
is of type M and the other of type N. M can equal N. The *exclude
|
||||
group* option turns off the interaction if one atom is in the first
|
||||
group and the other is the second. Group1-ID can equal group2-ID. The
|
||||
*exclude molecule/intra* option turns off the interaction if both atoms
|
||||
are in the specified group and in the same molecule, as determined by
|
||||
their molecule ID. The *exclude molecule/inter* turns off the
|
||||
interaction between pairs of atoms that have different molecule IDs and
|
||||
are both in the specified group.
|
||||
The *exclude type* option turns off the pairwise interaction if one
|
||||
atom is of type M and the other of type N. M can equal N. The
|
||||
*exclude group* option turns off the interaction if one atom is in the
|
||||
first group and the other is the second. Group1-ID can equal
|
||||
group2-ID. The *exclude molecule/intra* option turns off the
|
||||
interaction if both atoms are in the specified group and in the same
|
||||
molecule, as determined by their molecule ID. The *exclude
|
||||
molecule/inter* turns off the interaction between pairs of atoms that
|
||||
have different molecule IDs and are both in the specified group.
|
||||
|
||||
Each of the exclude options can be specified multiple times. The
|
||||
*exclude type* option is the most efficient option to use; it requires
|
||||
|
@ -223,34 +219,34 @@ atom can have.
|
|||
The *binsize* option allows you to specify what size of bins will be
|
||||
used in neighbor list construction to sort and find neighboring atoms.
|
||||
By default, for :doc:`neighbor style bin <neighbor>`, LAMMPS uses bins
|
||||
that are 1/2 the size of the maximum pair cutoff. For :doc:`neighbor
|
||||
style multi <neighbor>`, the bins are 1/2 the size of the collection
|
||||
interaction cutoff. Typically these are good values for minimizing the
|
||||
time for neighbor list construction. This setting overrides the
|
||||
default. If you make it too big, there is little overhead due to
|
||||
that are 1/2 the size of the maximum pair cutoff. For :doc:`neighbor style multi <neighbor>`,
|
||||
the bins are 1/2 the size of the collection interaction cutoff.
|
||||
Typically these are good values for minimizing the time for
|
||||
neighbor list construction. This setting overrides the default.
|
||||
If you make it too big, there is little overhead due to
|
||||
looping over bins, but more atoms are checked. If you make it too
|
||||
small, the optimal number of atoms is checked, but bin overhead goes up.
|
||||
If you set the binsize to 0.0, LAMMPS will use the default binsize of
|
||||
1/2 the cutoff.
|
||||
small, the optimal number of atoms is checked, but bin overhead goes
|
||||
up. If you set the binsize to 0.0, LAMMPS will use the default
|
||||
binsize of 1/2 the cutoff.
|
||||
|
||||
The *collection/type* option allows you to define collections of atom
|
||||
types, used by the *multi* neighbor mode. By grouping atom types with
|
||||
similar physical size or interaction cutoff lengths, one may be able to
|
||||
improve performance by reducing overhead. You must first specify the
|
||||
number of collections N to be defined followed by N lists of types.
|
||||
Each list consists of a series of type ranges separated by commas. The
|
||||
range can be specified as a single numeric value, or a wildcard asterisk
|
||||
can be used to specify a range of values. This takes the form "\*" or
|
||||
"\*n" or "n\*" or "m\*n". For example, if M = the number of atom types,
|
||||
then an asterisk with no numeric values means all types from 1 to M. A
|
||||
leading asterisk means all types from 1 to n (inclusive). A trailing
|
||||
asterisk means all types from n to M (inclusive). A middle asterisk
|
||||
means all types from m to n (inclusive). Note that all atom types must
|
||||
be included in exactly one of the N collections.
|
||||
types, used by the *multi* neighbor mode. By grouping atom types with
|
||||
similar physical size or interaction cutoff lengths, one may be able
|
||||
to improve performance by reducing
|
||||
overhead. You must first specify the number of collections N to be
|
||||
defined followed by N lists of types. Each list consists of a series of type
|
||||
ranges separated by commas. The range can be specified as a
|
||||
single numeric value, or a wildcard asterisk can be used to specify a range
|
||||
of values. This takes the form "\*" or "\*n" or "n\*" or "m\*n". For
|
||||
example, if M = the number of atom types, then an asterisk with no numeric
|
||||
values means all types from 1 to M. A leading asterisk means all types
|
||||
from 1 to n (inclusive). A trailing asterisk means all types from n to M
|
||||
(inclusive). A middle asterisk means all types from m to n (inclusive).
|
||||
Note that all atom types must be included in exactly one of the N collections.
|
||||
|
||||
The *collection/interval* option provides a similar capability. This
|
||||
command allows a user to define collections by specifying a series of
|
||||
cutoff intervals. LAMMPS will automatically sort atoms into these
|
||||
cutoff intervals. LAMMPS will automatically sort atoms into these
|
||||
intervals based on their type-dependent cutoffs or their finite size.
|
||||
You must first specify the number of collections N to be defined
|
||||
followed by N values representing the upper cutoff of each interval.
|
||||
|
|
|
@ -19,7 +19,7 @@ Examples
|
|||
.. code-block:: LAMMPS
|
||||
|
||||
pair_style born/gauss 10.0
|
||||
pair_coeff 1 1 8.2464e13 12.48 0.042644277 0.44 3.56
|
||||
pair_coeff 1 1 1 1 8.2464e13 12.48 0.042644277 0.44 3.56
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
|
|
@ -2,8 +2,6 @@
|
|||
.. index:: pair_style coul/cut/gpu
|
||||
.. index:: pair_style coul/cut/kk
|
||||
.. index:: pair_style coul/cut/omp
|
||||
.. index:: pair_style coul/cut/global
|
||||
.. index:: pair_style coul/cut/global/omp
|
||||
.. index:: pair_style coul/debye
|
||||
.. index:: pair_style coul/debye/gpu
|
||||
.. index:: pair_style coul/debye/kk
|
||||
|
@ -13,6 +11,8 @@
|
|||
.. index:: pair_style coul/dsf/kk
|
||||
.. index:: pair_style coul/dsf/omp
|
||||
.. index:: pair_style coul/exclude
|
||||
.. index:: pair_style coul/cut/global
|
||||
.. index:: pair_style coul/cut/global/omp
|
||||
.. index:: pair_style coul/long
|
||||
.. index:: pair_style coul/long/omp
|
||||
.. index:: pair_style coul/long/kk
|
||||
|
@ -33,11 +33,6 @@ pair_style coul/cut command
|
|||
|
||||
Accelerator Variants: *coul/cut/gpu*, *coul/cut/kk*, *coul/cut/omp*
|
||||
|
||||
pair_style coul/cut/global command
|
||||
==================================
|
||||
|
||||
Accelerator Variants: *coul/cut/omp*
|
||||
|
||||
pair_style coul/debye command
|
||||
=============================
|
||||
|
||||
|
@ -51,6 +46,11 @@ Accelerator Variants: *coul/dsf/gpu*, *coul/dsf/kk*, *coul/dsf/omp*
|
|||
pair_style coul/exclude command
|
||||
===============================
|
||||
|
||||
pair_style coul/cut/global command
|
||||
==================================
|
||||
|
||||
Accelerator Variants: *coul/cut/omp*
|
||||
|
||||
pair_style coul/long command
|
||||
============================
|
||||
|
||||
|
@ -79,17 +79,16 @@ pair_style tip4p/long command
|
|||
|
||||
Accelerator Variants: *tip4p/long/omp*
|
||||
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
pair_style coul/cut cutoff
|
||||
pair_style coul/cut/global cutoff
|
||||
pair_style coul/debye kappa cutoff
|
||||
pair_style coul/dsf alpha cutoff
|
||||
pair_style coul/exclude cutoff
|
||||
pair_style coul/cut/global cutoff
|
||||
pair_style coul/long cutoff
|
||||
pair_style coul/wolf alpha cutoff
|
||||
pair_style coul/streitz cutoff keyword alpha
|
||||
|
@ -153,11 +152,6 @@ the 2 atoms, and :math:`\epsilon` is the dielectric constant which can be set
|
|||
by the :doc:`dielectric <dielectric>` command. The cutoff :math:`r_c` truncates
|
||||
the interaction distance.
|
||||
|
||||
Pair style *coul/cut/global* computes the same Coulombic interactions
|
||||
as style *coul/cut* except that it allows only a single global cutoff
|
||||
and thus makes it compatible for use in combination with long-range
|
||||
coulomb styles in :doc:`hybrid pair styles <pair_hybrid>`.
|
||||
|
||||
----------
|
||||
|
||||
Style *coul/debye* adds an additional exp() damping factor to the
|
||||
|
@ -268,6 +262,11 @@ Streitz-Mintmire parameterization for the material being modeled.
|
|||
|
||||
----------
|
||||
|
||||
Pair style *coul/cut/global* computes the same Coulombic interactions
|
||||
as style *coul/cut* except that it allows only a single global cutoff
|
||||
and thus makes it compatible for use in combination with long-range
|
||||
coulomb styles in :doc:`hybrid pair styles <pair_hybrid>`.
|
||||
|
||||
Pair style *coul/exclude* computes Coulombic interactions like *coul/cut*
|
||||
but **only** applies them to excluded pairs using a scaling factor
|
||||
of :math:`\gamma - 1.0` with :math:`\gamma` being the factor assigned
|
||||
|
|
|
@ -479,12 +479,11 @@ For the hybrid pair styles, the list of sub-styles and their respective
|
|||
settings are written to :doc:`binary restart files <restart>`, so a
|
||||
:doc:`pair_style <pair_style>` command does not need to specified in an
|
||||
input script that reads a restart file. However, the coefficient
|
||||
information is not stored in the restart file. The same is true for
|
||||
:doc:`data files <write_data>`. Thus, pair_coeff commands need to be
|
||||
re-specified in the restart input script. For pair style
|
||||
*hybrid/scaled* also the names of any variables used as scale factors
|
||||
are restored, but not the variables themselves, so those may need to be
|
||||
redefined when continuing from a restart.
|
||||
information is not stored in the restart file. Thus, pair_coeff
|
||||
commands need to be re-specified in the restart input script. For pair
|
||||
style *hybrid/scaled* also the names of any variables used as scale
|
||||
factors are restored, but not the variables themselves, so those may
|
||||
need to be redefined when continuing from a restart.
|
||||
|
||||
These pair styles support the use of the *inner*, *middle*, and
|
||||
*outer* keywords of the :doc:`run_style respa <run_style>` command, if
|
||||
|
|
|
@ -1,102 +0,0 @@
|
|||
.. index:: pair_style rheo
|
||||
|
||||
pair_style rheo command
|
||||
=======================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
pair_style rheo cutoff keyword values
|
||||
|
||||
* cutoff = global cutoff for kernel (distance units)
|
||||
* zero or more keyword/value pairs may be appended to args
|
||||
* keyword = *rho/damp* or *artificial/visc* or *harmonic/means*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*rho/damp* args = density damping prefactor :math:`\xi`
|
||||
*artificial/visc* args = artificial viscosity prefactor :math:`\zeta`
|
||||
*harmonic/means* args = none
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
pair_style rheo 3.0 rho/damp 1.0 artificial/visc 2.0
|
||||
pair_coeff * *
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
.. versionadded:: TBD
|
||||
|
||||
Pair style *rheo* computes pressure and viscous forces between particles
|
||||
in the :doc:`rheo package <Howto_rheo>`. If thermal evolution is turned
|
||||
on in :doc:`fix rheo <fix_rheo>`, then the pair style also calculates
|
||||
heat exchanged between particles.
|
||||
|
||||
The *artificial/viscosity* keyword is used to specify the magnitude
|
||||
:math:`\zeta` of an optional artificial viscosity contribution to forces.
|
||||
This factor can help stabilize simulations by smoothing out small length
|
||||
scale variations in velocity fields. Artificial viscous forces typically
|
||||
are only exchanged by fluid particles. However, if interfaces are not
|
||||
reconstructed in fix rheo, fluid particles will also exchange artificial
|
||||
viscous forces with solid particles to improve stability.
|
||||
|
||||
The *rho/damp* keyword is used to specify the magnitude :math:`\xi` of
|
||||
an optional pairwise damping term between the density of particles. This
|
||||
factor can help stabilize simulations by smoothing out small length
|
||||
scale variations in density fields. However, in systems that develop
|
||||
a density gradient in equilibrium (e.g. in a hydrostatic column underlying
|
||||
gravity), this option may be inappropriate.
|
||||
|
||||
If particles have different viscosities or conductivities, the
|
||||
*harmonic/means* keyword changes how they are averaged before calculating
|
||||
pairwise forces or heat exchanges. By default, an arithmetic averaged is
|
||||
used, however, a harmonic mean may improve stability in systems with multiple
|
||||
fluid phases with large disparities in viscosities.
|
||||
|
||||
No coefficients are defined for each pair of atoms types via the
|
||||
:doc:`pair_coeff <pair_coeff>` command as in the examples
|
||||
above.
|
||||
|
||||
----------
|
||||
|
||||
Mixing, shift, table, tail correction, restart, rRESPA info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
This style does not support the :doc:`pair_modify <pair_modify>`
|
||||
shift, table, and tail options.
|
||||
|
||||
This style does not write information to :doc:`binary restart files <restart>`.
|
||||
Thus, you need to re-specify the pair_style and pair_coeff commands in an input
|
||||
script that reads a restart file.
|
||||
|
||||
This style can only be used via the *pair* keyword of the
|
||||
:doc:`run_style respa <run_style>` command. It does not support the *inner*,
|
||||
*middle*, *outer* keywords.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This fix is part of the RHEO package. It is only enabled if
|
||||
LAMMPS was built with that package. See the
|
||||
:doc:`Build package <Build_package>` page for more info.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`fix rheo <fix_rheo>`,
|
||||
:doc:`fix rheo/pressure <fix_rheo_pressure>`,
|
||||
:doc:`fix rheo/thermal <fix_rheo_thermal>`,
|
||||
:doc:`fix rheo/viscosity <fix_rheo_viscosity>`,
|
||||
:doc:`compute rheo/property/atom <compute_rheo_property_atom>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
Density damping and artificial viscous forces are not calculated.
|
||||
Arithmetic means are used for mixing particle properties.
|
|
@ -1,112 +0,0 @@
|
|||
.. index:: pair_style rheo/solid
|
||||
|
||||
pair_style rheo/solid command
|
||||
=============================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
pair_style rheo/solid
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
pair_style rheo/solid
|
||||
pair_coeff * * 1.0 1.5 1.0
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
.. versionadded:: TBD
|
||||
|
||||
Style *rheo/solid* is effectively a copy of pair style
|
||||
:doc:`bpm/spring <pair_bpm_spring>` except it only applies forces
|
||||
between solid RHEO particles, determined by checking the status of
|
||||
each pair of neighboring particles before calculating forces.
|
||||
|
||||
The style computes pairwise forces with the formula
|
||||
|
||||
.. math::
|
||||
|
||||
F = k (r - r_c)
|
||||
|
||||
where :math:`k` is a stiffness and :math:`r_c` is the cutoff length.
|
||||
An additional damping force is also applied to interacting
|
||||
particles. The force is proportional to the difference in the
|
||||
normal velocity of particles
|
||||
|
||||
.. math::
|
||||
|
||||
F_D = - \gamma w (\hat{r} \bullet \vec{v})
|
||||
|
||||
where :math:`\gamma` is the damping strength, :math:`\hat{r}` is the
|
||||
displacement normal vector, :math:`\vec{v}` is the velocity difference
|
||||
between the two particles, and :math:`w` is a smoothing factor.
|
||||
This smoothing factor is constructed such that damping forces go to zero
|
||||
as particles come out of contact to avoid discontinuities. It is
|
||||
given by
|
||||
|
||||
.. math::
|
||||
|
||||
w = 1.0 - \left( \frac{r}{r_c} \right)^8 .
|
||||
|
||||
The following coefficients must be defined for each pair of atom types
|
||||
via the :doc:`pair_coeff <pair_coeff>` command as in the examples
|
||||
above, or in the data file or restart files read by the
|
||||
:doc:`read_data <read_data>` or :doc:`read_restart <read_restart>`
|
||||
commands, or by mixing as described below:
|
||||
|
||||
* :math:`k` (force/distance units)
|
||||
* :math:`r_c` (distance units)
|
||||
* :math:`\gamma` (force/velocity units)
|
||||
|
||||
|
||||
----------
|
||||
|
||||
Mixing, shift, table, tail correction, restart, rRESPA info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
For atom type pairs I,J and I != J, the A coefficient and cutoff
|
||||
distance for this pair style can be mixed. A is always mixed via a
|
||||
*geometric* rule. The cutoff is mixed according to the pair_modify
|
||||
mix value. The default mix value is *geometric*\ . See the
|
||||
"pair_modify" command for details.
|
||||
|
||||
This pair style does not support the :doc:`pair_modify <pair_modify>`
|
||||
shift option, since the pair interaction goes to 0.0 at the cutoff.
|
||||
|
||||
The :doc:`pair_modify <pair_modify>` table and tail options are not
|
||||
relevant for this pair style.
|
||||
|
||||
This pair style writes its information to :doc:`binary restart files
|
||||
<restart>`, so pair_style and pair_coeff commands do not need to be
|
||||
specified in an input script that reads a restart file.
|
||||
|
||||
This pair style can only be used via the *pair* keyword of the
|
||||
:doc:`run_style respa <run_style>` command. It does not support the
|
||||
*inner*, *middle*, *outer* keywords.
|
||||
|
||||
----------
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This pair style is part of the RHEO package. It is only enabled if
|
||||
LAMMPS was built with that package. See the :doc:`Build package
|
||||
<Build_package>` page for more info.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`fix rheo <fix_rheo>`,
|
||||
:doc:`fix rheo/thermal <fix_rheo_thermal>`,
|
||||
:doc:`pair bpm/spring <pair_bpm_spring>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
none
|
|
@ -5,7 +5,6 @@
|
|||
.. index:: pair_style lj/spica/coul/long
|
||||
.. index:: pair_style lj/spica/coul/long/gpu
|
||||
.. index:: pair_style lj/spica/coul/long/omp
|
||||
.. index:: pair_style lj/spica/coul/long/kk
|
||||
.. index:: pair_style lj/spica/coul/msm
|
||||
.. index:: pair_style lj/spica/coul/msm/omp
|
||||
|
||||
|
@ -17,7 +16,7 @@ Accelerator Variants: *lj/spica/gpu*, *lj/spica/kk*, *lj/spica/omp*
|
|||
pair_style lj/spica/coul/long command
|
||||
=====================================
|
||||
|
||||
Accelerator Variants: *lj/spica/coul/long/gpu*, *lj/spica/coul/long/omp*, *lj/spica/coul/long/kk*
|
||||
Accelerator Variants: *lj/spica/coul/long/gpu*, *lj/spica/coul/long/omp*
|
||||
|
||||
pair_style lj/spica/coul/msm command
|
||||
====================================
|
||||
|
|
|
@ -292,7 +292,6 @@ accelerated styles exist.
|
|||
* :doc:`mesocnt/viscous <pair_mesocnt>` - Mesoscopic vdW potential for (carbon) nanotubes with friction
|
||||
* :doc:`mgpt <pair_mgpt>` - Simplified model generalized pseudopotential theory (MGPT) potential
|
||||
* :doc:`mie/cut <pair_mie>` - Mie potential
|
||||
* :doc:`mliap <pair_mliap>` - Multiple styles of machine-learning potential
|
||||
* :doc:`mm3/switch3/coulgauss/long <pair_lj_switch3_coulgauss_long>` - Smoothed MM3 vdW potential with Gaussian electrostatics
|
||||
* :doc:`momb <pair_momb>` - Many-Body Metal-Organic (MOMB) force field
|
||||
* :doc:`morse <pair_morse>` - Morse potential
|
||||
|
@ -338,8 +337,6 @@ accelerated styles exist.
|
|||
* :doc:`reaxff <pair_reaxff>` - ReaxFF potential
|
||||
* :doc:`rebo <pair_airebo>` - Second generation REBO potential of Brenner
|
||||
* :doc:`rebomos <pair_rebomos>` - REBOMoS potential for MoS2
|
||||
* :doc:`rheo <pair_rheo>` - fluid interactions in RHEO package
|
||||
* :doc:`rheo/solid <pair_rheo_solid>` - solid interactions in RHEO package
|
||||
* :doc:`resquared <pair_resquared>` - Everaers RE-Squared ellipsoidal potential
|
||||
* :doc:`saip/metal <pair_saip_metal>` - Interlayer potential for hetero-junctions formed with hexagonal 2D materials and metal surfaces
|
||||
* :doc:`sdpd/taitwater/isothermal <pair_sdpd_taitwater_isothermal>` - Smoothed dissipative particle dynamics for water at isothermal conditions
|
||||
|
@ -350,6 +347,7 @@ accelerated styles exist.
|
|||
* :doc:`smd/tri_surface <pair_smd_triangulated_surface>` -
|
||||
* :doc:`smd/ulsph <pair_smd_ulsph>` -
|
||||
* :doc:`smtbq <pair_smtbq>` -
|
||||
* :doc:`mliap <pair_mliap>` - Multiple styles of machine-learning potential
|
||||
* :doc:`snap <pair_snap>` - SNAP machine-learning potential
|
||||
* :doc:`soft <pair_soft>` - Soft (cosine) potential
|
||||
* :doc:`sph/heatconduction <pair_sph_heatconduction>` -
|
||||
|
|
|
@ -12,7 +12,7 @@ Syntax
|
|||
|
||||
* file = name of data file to read in
|
||||
* zero or more keyword/arg pairs may be appended
|
||||
* keyword = *add* or *offset* or *shift* or *extra/atom/types* or *extra/bond/types* or *extra/angle/types* or *extra/dihedral/types* or *extra/improper/types* or *extra/bond/per/atom* or *extra/angle/per/atom* or *extra/dihedral/per/atom* or *extra/improper/per/atom* or *extra/special/per/atom* or *group* or *nocoeff* or *fix*
|
||||
* keyword = *add* or *offset* or *shift* or *extra/atom/types* or *extra/bond/types* or *extra/angle/types* or *extra/dihedral/types* or *extra/improper/types* or *extra/bond/per/atom* or *extra/angle/per/atom* or *extra/dihedral/per/atom* or *extra/improper/per/atom* or *group* or *nocoeff* or *fix*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
|
@ -859,10 +859,6 @@ of analysis.
|
|||
- atom-ID molecule-ID atom-type x y z
|
||||
* - peri
|
||||
- atom-ID atom-type volume density x y z
|
||||
* - rheo
|
||||
- atom-ID atom-type status rho x y z
|
||||
* - rheo/thermal
|
||||
- atom-ID atom-type status rho energy x y z
|
||||
* - smd
|
||||
- atom-ID atom-type molecule volume mass kradius cradius x0 y0 z0 x y z
|
||||
* - sph
|
||||
|
|
|
@ -32,7 +32,7 @@ Syntax
|
|||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
reset_atoms mol group-ID keyword value ...
|
||||
reset atoms mol group-ID keyword value ...
|
||||
|
||||
* group-ID = ID of group of atoms whose molecule IDs will be reset
|
||||
* zero or more keyword/value pairs can be appended
|
||||
|
@ -66,16 +66,16 @@ Description
|
|||
.. versionadded:: 22Dec2022
|
||||
|
||||
The *reset_atoms* command resets the values of a specified atom
|
||||
property. In contrast to the *set* command, it does this in a
|
||||
property. In contrast to the set command, it does this in a
|
||||
collective manner which resets the values for many atoms in a
|
||||
self-consistent way. This command is often useful when the simulated
|
||||
system has undergone significant modifications like adding or removing
|
||||
atoms or molecules, joining data files, changing bonds, or large-scale
|
||||
self-consistent way. This is often useful when the simulated system
|
||||
has undergone significant modifications like adding or removing atoms
|
||||
or molecules, joining data files, changing bonds, or large-scale
|
||||
diffusion.
|
||||
|
||||
The new values can be thought of as a *reset*, similar to values atoms
|
||||
would have if a new data file were being read or a new simulation
|
||||
performed. Note that the *set* command also resets atom properties to
|
||||
performed. Note that the set command also resets atom properties to
|
||||
new values, but it treats each atom independently.
|
||||
|
||||
The *property* setting can be *id* or *image* or *mol*. For *id*, the
|
||||
|
@ -90,7 +90,7 @@ keyword/value settings are given below.
|
|||
|
||||
----------
|
||||
|
||||
Property: *id*
|
||||
*Property id*
|
||||
|
||||
Reset atom IDs for the entire system, including all the global IDs
|
||||
stored for bond, angle, dihedral, improper topology data. This will
|
||||
|
@ -146,7 +146,7 @@ processor have consecutive IDs, as the :doc:`create_atoms
|
|||
|
||||
----------
|
||||
|
||||
Property: *image*
|
||||
*Property image*
|
||||
|
||||
Reset the image flags of atoms so that at least one atom in each
|
||||
molecule has an image flag of 0. Molecular topology is respected so
|
||||
|
@ -191,7 +191,7 @@ flags.
|
|||
|
||||
----------
|
||||
|
||||
Property: *mol*
|
||||
*Property mol*
|
||||
|
||||
Reset molecule IDs for a specified group of atoms based on current
|
||||
bond connectivity. This will typically create a new set of molecule
|
||||
|
@ -203,7 +203,7 @@ For purposes of this operation, molecules are identified by the current
|
|||
bond connectivity in the system, which may or may not be consistent with
|
||||
the current molecule IDs. A molecule in this context is a set of atoms
|
||||
connected to each other with explicit bonds. The specific algorithm
|
||||
used is the one of :doc:`compute fragment/atom <compute_cluster_atom>`.
|
||||
used is the one of :doc:`compute fragment/atom <compute_cluster_atom>`
|
||||
Once the molecules are identified and a new molecule ID computed for
|
||||
each, this command will update the current molecule ID for all atoms in
|
||||
the group with the new molecule ID. Note that if the group excludes
|
||||
|
@ -266,7 +266,7 @@ The *image* property can only be used when the atom style supports bonds.
|
|||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`compute fragment/atom <compute_cluster_atom>`,
|
||||
:doc:`compute fragment/atom <compute_cluster_atom>`
|
||||
:doc:`fix bond/react <fix_bond_react>`,
|
||||
:doc:`fix bond/create <fix_bond_create>`,
|
||||
:doc:`fix bond/break <fix_bond_break>`,
|
||||
|
|
|
@ -120,8 +120,6 @@ Syntax
|
|||
*angle* value = numeric angle type or angle type label, for all angles between selected atoms
|
||||
*dihedral* value = numeric dihedral type or dihedral type label, for all dihedrals between selected atoms
|
||||
*improper* value = numeric improper type or improper type label, for all impropers between selected atoms
|
||||
*rheo/rho* value = density of RHEO particles (mass/distance\^3)
|
||||
*rheo/status* value = status or phase of RHEO particles (unitless)
|
||||
*sph/e* value = energy of SPH particles (need units)
|
||||
value can be an atom-style variable (see below)
|
||||
*sph/cv* value = heat capacity of SPH particles (need units)
|
||||
|
@ -508,10 +506,6 @@ by the *bond types* (\ *angle types*, etc) field in the header of the
|
|||
data file read by the :doc:`read_data <read_data>` command. These
|
||||
keywords do not allow use of an atom-style variable.
|
||||
|
||||
Keywords *rheo/rho* and *rheo/status* set the density and the status of
|
||||
rheo particles. In particular, one can only set the phase in the status
|
||||
as described by the :doc:`RHEO howto page <Howto_rheo>`.
|
||||
|
||||
Keywords *sph/e*, *sph/cv*, and *sph/rho* set the energy, heat capacity,
|
||||
and density of smoothed particle hydrodynamics (SPH) particles. See
|
||||
`this PDF guide <PDF/SPH_LAMMPS_userguide.pdf>`_ to using SPH in LAMMPS.
|
||||
|
|
|
@ -67,7 +67,7 @@ Syntax
|
|||
bound(group,dir,region), gyration(group,region), ke(group,reigon),
|
||||
angmom(group,dim,region), torque(group,dim,region),
|
||||
inertia(group,dimdim,region), omega(group,dim,region)
|
||||
special functions = sum(x), min(x), max(x), ave(x), trap(x), slope(x), sort(x), rsort(x), gmask(x), rmask(x), grmask(x,y), next(x), is_file(name), is_os(name), extract_setting(name), label2type(kind,label), is_typelabel(kind,label), is_timeout()
|
||||
special functions = sum(x), min(x), max(x), ave(x), trap(x), slope(x), sort(x), rsort(x), gmask(x), rmask(x), grmask(x,y), next(x), is_file(name), is_os(name), extract_setting(name), label2type(kind,label), is_typelabel(kind,label)
|
||||
feature functions = is_available(category,feature), is_active(category,feature), is_defined(category,id)
|
||||
atom value = id[i], mass[i], type[i], mol[i], x[i], y[i], z[i], vx[i], vy[i], vz[i], fx[i], fy[i], fz[i], q[i]
|
||||
atom vector = id, mass, type, mol, radius, q, x, y, z, vx, vy, vz, fx, fy, fz
|
||||
|
@ -547,7 +547,7 @@ variables.
|
|||
+------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Region functions | count(ID,IDR), mass(ID,IDR), charge(ID,IDR), xcm(ID,dim,IDR), vcm(ID,dim,IDR), fcm(ID,dim,IDR), bound(ID,dir,IDR), gyration(ID,IDR), ke(ID,IDR), angmom(ID,dim,IDR), torque(ID,dim,IDR), inertia(ID,dimdim,IDR), omega(ID,dim,IDR) |
|
||||
+------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Special functions | sum(x), min(x), max(x), ave(x), trap(x), slope(x), sort(x), rsort(x), gmask(x), rmask(x), grmask(x,y), next(x), is_file(name), is_os(name), extract_setting(name), label2type(kind,label), is_typelabel(kind,label), is_timeout() |
|
||||
| Special functions | sum(x), min(x), max(x), ave(x), trap(x), slope(x), sort(x), rsort(x), gmask(x), rmask(x), grmask(x,y), next(x), is_file(name), is_os(name), extract_setting(name), label2type(kind,label), is_typelabel(kind,label) |
|
||||
+------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Feature functions | is_available(category,feature), is_active(category,feature), is_defined(category,id) |
|
||||
+------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
|
@ -1042,20 +1042,6 @@ label2type(), but returns 1 if the type label has been assigned,
|
|||
otherwise it returns 0. This function can be used to check if a
|
||||
particular type label already exists in the simulation.
|
||||
|
||||
.. versionadded:: TBD
|
||||
|
||||
The is_timeout() function returns 1 when the :doc:`timer timeout
|
||||
<timer>` has expired otherwise it returns 0. This function can be used
|
||||
to check inputs in combination with the :doc:`if command <if>` to
|
||||
execute commands after the timer has expired. Example:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
variable timeout equal is_timeout()
|
||||
timer timeout 0:10:00 every 10
|
||||
run 10000
|
||||
if ${timeout} then "print 'Timer has expired'"
|
||||
|
||||
----------
|
||||
|
||||
Feature Functions
|
||||
|
|
|
@ -51,12 +51,10 @@ value.
|
|||
|
||||
The write_data command may not always write all coefficient settings
|
||||
to the corresponding Coeff sections of the data file. This can have
|
||||
one of multiple reasons. 1) The style may be a hybrid style. In that
|
||||
case *no* coeff information is written. 2) A few styles may be
|
||||
missing the code that would write those sections (This is rare these
|
||||
days, but if you come across one, please notify the LAMMPS
|
||||
developers). 3) Some pair styles require a single pair_coeff
|
||||
statement and those are not compatible with data files. 4) The
|
||||
one of multiple reasons. 1) A few styles may be missing the code that
|
||||
would write those sections (if you come across one, please notify
|
||||
the LAMMPS developers). 2) Some pair styles require a single pair_coeff
|
||||
statement and those are not compatible with data files. 3) The
|
||||
default for write_data is to write a PairCoeff section, which has
|
||||
only entries for atom types i == j. The remaining coefficients would
|
||||
be inferred through the currently selected mixing rule. If there has
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
Sphinx >= 5.3.0, <7.5
|
||||
Sphinx >= 5.3.0, <8.0
|
||||
sphinxcontrib-spelling
|
||||
sphinxcontrib-jquery
|
||||
sphinx-design
|
||||
|
|
|
@ -41,7 +41,7 @@ sys.path.append(os.path.join(LAMMPS_DOC_DIR, 'utils', 'sphinx-config', '_themes'
|
|||
# -- General configuration ------------------------------------------------
|
||||
|
||||
# If your documentation needs a minimal Sphinx version, state it here.
|
||||
needs_sphinx = '5.3.0'
|
||||
needs_sphinx = '5.2.0'
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be
|
||||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||
|
@ -69,7 +69,7 @@ images_config = {
|
|||
templates_path = ['_templates']
|
||||
|
||||
# The suffix of source filenames.
|
||||
source_suffix = {'.rst': 'restructuredtext'}
|
||||
source_suffix = '.rst'
|
||||
|
||||
# The encoding of source files.
|
||||
#source_encoding = 'utf-8-sig'
|
||||
|
|
|
@ -393,7 +393,6 @@ buf
|
|||
builtin
|
||||
Bulacu
|
||||
Bulatov
|
||||
Bulkley
|
||||
Bureekaew
|
||||
burlywood
|
||||
Bussi
|
||||
|
@ -565,7 +564,6 @@ cond
|
|||
conda
|
||||
Conda
|
||||
Condens
|
||||
conductivities
|
||||
conf
|
||||
config
|
||||
configfile
|
||||
|
@ -1101,7 +1099,6 @@ excv
|
|||
exe
|
||||
executables
|
||||
extep
|
||||
extractable
|
||||
extrema
|
||||
extxyz
|
||||
exy
|
||||
|
@ -1355,7 +1352,6 @@ Grama
|
|||
grana
|
||||
granregion
|
||||
graphene
|
||||
Gravelle
|
||||
Greathouse
|
||||
greenyellow
|
||||
Greffet
|
||||
|
@ -1444,7 +1440,6 @@ henrich
|
|||
Henrich
|
||||
Hermitian
|
||||
Herrmann
|
||||
Hershchel
|
||||
Hertizian
|
||||
hertzian
|
||||
Hertzsch
|
||||
|
@ -1836,7 +1831,6 @@ Kspace
|
|||
KSpace
|
||||
KSpaceStyle
|
||||
Kspring
|
||||
kstyle
|
||||
kT
|
||||
kTequil
|
||||
kth
|
||||
|
@ -2277,7 +2271,6 @@ modelled
|
|||
modelling
|
||||
Modelling
|
||||
Modine
|
||||
modularity
|
||||
moduli
|
||||
mofff
|
||||
MOFFF
|
||||
|
@ -2495,7 +2488,6 @@ Neumann
|
|||
Nevent
|
||||
nevery
|
||||
Nevery
|
||||
Nevins
|
||||
newfile
|
||||
Newns
|
||||
newtype
|
||||
|
@ -3075,20 +3067,17 @@ quatw
|
|||
queryargs
|
||||
Queteschiner
|
||||
quickmin
|
||||
quintic
|
||||
qw
|
||||
qx
|
||||
qy
|
||||
qz
|
||||
Rackers
|
||||
Radeon
|
||||
radi
|
||||
radialscreened
|
||||
radialscreenedspin
|
||||
radialspin
|
||||
radian
|
||||
radians
|
||||
radiative
|
||||
radj
|
||||
Rafferty
|
||||
rahman
|
||||
|
@ -3192,7 +3181,6 @@ rg
|
|||
Rg
|
||||
Rhaphson
|
||||
Rhe
|
||||
rheo
|
||||
rheological
|
||||
rheology
|
||||
rhodo
|
||||
|
@ -3280,7 +3268,6 @@ rsort
|
|||
rsq
|
||||
rst
|
||||
rstyle
|
||||
rsurf
|
||||
Rubensson
|
||||
Rubia
|
||||
Rud
|
||||
|
@ -3664,7 +3651,6 @@ Telsa
|
|||
tempCorrCoeff
|
||||
templated
|
||||
Templeton
|
||||
Tencer
|
||||
Tequil
|
||||
ters
|
||||
tersoff
|
||||
|
@ -4011,7 +3997,6 @@ Vries
|
|||
Vsevolod
|
||||
Vsmall
|
||||
Vstream
|
||||
vstyle
|
||||
vtarget
|
||||
vtk
|
||||
VTK
|
||||
|
|
|
@ -101,8 +101,6 @@ liblammpsplugin_t *liblammpsplugin_load(const char *lib)
|
|||
ADDSYM(extract_setting);
|
||||
ADDSYM(extract_global_datatype);
|
||||
ADDSYM(extract_global);
|
||||
ADDSYM(extract_pair_dimension);
|
||||
ADDSYM(extract_pair);
|
||||
ADDSYM(map_atom);
|
||||
|
||||
ADDSYM(extract_atom_datatype);
|
||||
|
|
|
@ -144,13 +144,11 @@ struct _liblammpsplugin {
|
|||
int (*get_mpi_comm)(void *);
|
||||
|
||||
int (*extract_setting)(void *, const char *);
|
||||
int (*extract_global_datatype)(void *, const char *);
|
||||
int *(*extract_global_datatype)(void *, const char *);
|
||||
void *(*extract_global)(void *, const char *);
|
||||
int (*extract_pair_dimension)(void *, const char *);
|
||||
void *(*extract_pair)(void *, const char *);
|
||||
int (*map_atom)(void *, const void *);
|
||||
void *(*map_atom)(void *, const void *);
|
||||
|
||||
int (*extract_atom_datatype)(void *, const char *);
|
||||
int *(*extract_atom_datatype)(void *, const char *);
|
||||
void *(*extract_atom)(void *, const char *);
|
||||
|
||||
void *(*extract_compute)(void *, const char *, int, int);
|
||||
|
|
|
@ -5,9 +5,9 @@ dimension 3
|
|||
atom_style full
|
||||
processors * * 1
|
||||
|
||||
pair_style lj/spica/coul/long 15.0
|
||||
pair_style lj/sdk/coul/long 15.0 # compatible with "lj/spica/coul/long"
|
||||
bond_style harmonic
|
||||
angle_style spica
|
||||
angle_style sdk # compatible with "spica"
|
||||
special_bonds lj/coul 0.0 0.0 1.0
|
||||
|
||||
read_data data.sds.gz
|
||||
|
|
|
@ -1,3 +1,2 @@
|
|||
*.csv
|
||||
*.txt
|
||||
*.lammpstrj
|
||||
|
|
|
@ -17,22 +17,14 @@ q_ref = float(ref_line[3])
|
|||
inv11_ref = float(ref_line[4])
|
||||
inv12_ref = float(ref_line[5])
|
||||
b1_ref = float(ref_line[6])
|
||||
felec1_ref = float(ref_line[8])
|
||||
felyt1_ref = float(ref_line[10])
|
||||
press_ref = float(ref_line[12])
|
||||
|
||||
# out.csv
|
||||
with open(sys.argv[2]) as f:
|
||||
out_line = f.readlines()[-1].split(", ")
|
||||
e_out = float(out_line[0])
|
||||
q_out = float(out_line[1])
|
||||
press_out = float(out_line[2])
|
||||
|
||||
out_lines = [
|
||||
("energy", e_ref, e_out),
|
||||
("charge", q_ref, q_out),
|
||||
("pressure", press_ref, press_out),
|
||||
]
|
||||
out_lines = [("energy", e_ref, e_out), ("charge", q_ref, q_out)]
|
||||
|
||||
# vec.csv
|
||||
vec_file = "vec.csv"
|
||||
|
@ -52,14 +44,6 @@ if op.isfile(inv_file):
|
|||
inv12_out = float(inv_line[1])
|
||||
out_lines.append(("inv11", inv11_ref, inv11_out))
|
||||
|
||||
# forces.lammpstrj
|
||||
force_file = "forces.lammpstrj"
|
||||
with open(force_file) as f:
|
||||
lines = f.readlines()[9:]
|
||||
for name, i, f_ref in [("felec1", "1", felec1_ref), ("felyt1", "3", felyt1_ref)]:
|
||||
f_out = next(float(y[3]) for x in lines if (y := x.split()) and y[0] == i)
|
||||
out_lines.append((name, f_ref, f_out))
|
||||
|
||||
lines = []
|
||||
for label, ref, out in out_lines:
|
||||
error = rel_error(out, ref)
|
||||
|
|
|
@ -8,7 +8,7 @@ thermo_style custom step pe c_qbot c_qtop
|
|||
fix feta all property/atom d_eta ghost on
|
||||
set group bot d_eta 0.5
|
||||
set group top d_eta 3.0
|
||||
fix conp bot electrode/conp 0 NULL couple top 1 symm on eta d_eta algo cg 1e-6
|
||||
fix conp bot electrode/conp 0 2 couple top 1 symm on eta d_eta algo cg 1e-6
|
||||
|
||||
run 0
|
||||
|
||||
|
|