Merge branch 'master' into adaptglok
@ -53,14 +53,14 @@ include(CheckCCompilerFlag)
|
|||||||
include(CheckIncludeFileCXX)
|
include(CheckIncludeFileCXX)
|
||||||
|
|
||||||
if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel")
|
if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel")
|
||||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -restrict")
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -restrict -std=c++11")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
option(DISABLE_CXX11_REQUIREMENT "Disable check that requires C++11 for compiling LAMMPS" OFF)
|
option(DISABLE_CXX11_REQUIREMENT "Disable check that requires C++11 for compiling LAMMPS" OFF)
|
||||||
if(DISABLE_CXX11_REQUIREMENT)
|
if(DISABLE_CXX11_REQUIREMENT)
|
||||||
add_definitions(-DLAMMPS_CXX98)
|
add_definitions(-DLAMMPS_CXX98)
|
||||||
else()
|
# else()
|
||||||
set(CMAKE_CXX_STANDARD 11)
|
# set(CMAKE_CXX_STANDARD 11)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# GNU compiler features
|
# GNU compiler features
|
||||||
@ -248,6 +248,7 @@ if(BUILD_OMP)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(PKG_MSCG OR PKG_USER-ATC OR PKG_USER-AWPMD OR PKG_USER-QUIP OR PKG_LATTE)
|
if(PKG_MSCG OR PKG_USER-ATC OR PKG_USER-AWPMD OR PKG_USER-QUIP OR PKG_LATTE)
|
||||||
|
enable_language(C)
|
||||||
find_package(LAPACK)
|
find_package(LAPACK)
|
||||||
find_package(BLAS)
|
find_package(BLAS)
|
||||||
if(NOT LAPACK_FOUND OR NOT BLAS_FOUND)
|
if(NOT LAPACK_FOUND OR NOT BLAS_FOUND)
|
||||||
|
|||||||
@ -9,9 +9,7 @@ if(BUILD_DOC)
|
|||||||
|
|
||||||
set(VIRTUALENV ${PYTHON_EXECUTABLE} -m virtualenv)
|
set(VIRTUALENV ${PYTHON_EXECUTABLE} -m virtualenv)
|
||||||
|
|
||||||
file(GLOB DOC_SOURCES ${LAMMPS_DOC_DIR}/src/[^.]*.txt)
|
file(GLOB DOC_SOURCES ${LAMMPS_DOC_DIR}/src/[^.]*.rst)
|
||||||
file(GLOB PDF_EXTRA_SOURCES ${LAMMPS_DOC_DIR}/src/lammps_commands*.txt ${LAMMPS_DOC_DIR}/src/lammps_support.txt ${LAMMPS_DOC_DIR}/src/lammps_tutorials.txt)
|
|
||||||
list(REMOVE_ITEM DOC_SOURCES ${PDF_EXTRA_SOURCES})
|
|
||||||
|
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT docenv
|
OUTPUT docenv
|
||||||
@ -28,25 +26,10 @@ if(BUILD_DOC)
|
|||||||
COMMAND ${DOCENV_BINARY_DIR}/pip install --upgrade ${LAMMPS_DOC_DIR}/utils/converters
|
COMMAND ${DOCENV_BINARY_DIR}/pip install --upgrade ${LAMMPS_DOC_DIR}/utils/converters
|
||||||
)
|
)
|
||||||
|
|
||||||
set(RST_FILES "")
|
|
||||||
set(RST_DIR ${CMAKE_BINARY_DIR}/rst)
|
|
||||||
file(MAKE_DIRECTORY ${RST_DIR})
|
|
||||||
foreach(TXT_FILE ${DOC_SOURCES})
|
|
||||||
get_filename_component(FILENAME ${TXT_FILE} NAME_WE)
|
|
||||||
set(RST_FILE ${RST_DIR}/${FILENAME}.rst)
|
|
||||||
list(APPEND RST_FILES ${RST_FILE})
|
|
||||||
add_custom_command(
|
|
||||||
OUTPUT ${RST_FILE}
|
|
||||||
DEPENDS requirements.txt docenv ${TXT_FILE}
|
|
||||||
COMMAND ${DOCENV_BINARY_DIR}/txt2rst -o ${RST_DIR} ${TXT_FILE}
|
|
||||||
)
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT html
|
OUTPUT html
|
||||||
DEPENDS ${RST_FILES}
|
DEPENDS ${DOC_SOURCES} docenv requirements.txt
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LAMMPS_DOC_DIR}/src ${RST_DIR}
|
COMMAND ${DOCENV_BINARY_DIR}/sphinx-build -j ${NPROCS} -b html -c ${LAMMPS_DOC_DIR}/utils/sphinx-config -d ${CMAKE_BINARY_DIR}/doctrees ${LAMMPS_DOC_DIR}/src html
|
||||||
COMMAND ${DOCENV_BINARY_DIR}/sphinx-build -j ${NPROCS} -b html -c ${LAMMPS_DOC_DIR}/utils/sphinx-config -d ${CMAKE_BINARY_DIR}/doctrees ${RST_DIR} html
|
|
||||||
)
|
)
|
||||||
|
|
||||||
add_custom_target(
|
add_custom_target(
|
||||||
|
|||||||
@ -1,4 +1,7 @@
|
|||||||
if(PKG_MESSAGE)
|
if(PKG_MESSAGE)
|
||||||
|
if(LAMMPS_SIZES STREQUAL BIGBIG)
|
||||||
|
message(FATAL_ERROR "The MESSAGE Package is not compatible with -DLAMMPS_BIGBIG")
|
||||||
|
endif()
|
||||||
option(MESSAGE_ZMQ "Use ZeroMQ in MESSAGE package" OFF)
|
option(MESSAGE_ZMQ "Use ZeroMQ in MESSAGE package" OFF)
|
||||||
file(GLOB_RECURSE cslib_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/[^.]*.F
|
file(GLOB_RECURSE cslib_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/[^.]*.F
|
||||||
${LAMMPS_LIB_SOURCE_DIR}/message/cslib/[^.]*.c
|
${LAMMPS_LIB_SOURCE_DIR}/message/cslib/[^.]*.c
|
||||||
|
|||||||
@ -1,4 +1,8 @@
|
|||||||
if(PKG_USER-MOLFILE)
|
if(PKG_USER-MOLFILE)
|
||||||
|
if (CMAKE_VERSION VERSION_LESS "3.10") # due to INTERFACE without a library
|
||||||
|
message(FATAL_ERROR "For configuring USER-MOLFILE you need CMake 3.10 or later")
|
||||||
|
endif()
|
||||||
|
|
||||||
set(MOLFILE_INCLUDE_DIRS "${LAMMPS_LIB_SOURCE_DIR}/molfile" CACHE STRING "Path to VMD molfile plugin headers")
|
set(MOLFILE_INCLUDE_DIRS "${LAMMPS_LIB_SOURCE_DIR}/molfile" CACHE STRING "Path to VMD molfile plugin headers")
|
||||||
add_library(molfile INTERFACE)
|
add_library(molfile INTERFACE)
|
||||||
target_include_directories(molfile INTERFACE ${MOLFILE_INCLUDE_DIRS})
|
target_include_directories(molfile INTERFACE ${MOLFILE_INCLUDE_DIRS})
|
||||||
|
|||||||
@ -49,8 +49,8 @@ if(PKG_USER-PLUMED)
|
|||||||
message(STATUS "PLUMED download requested - we will build our own")
|
message(STATUS "PLUMED download requested - we will build our own")
|
||||||
include(ExternalProject)
|
include(ExternalProject)
|
||||||
ExternalProject_Add(plumed_build
|
ExternalProject_Add(plumed_build
|
||||||
URL https://github.com/plumed/plumed2/releases/download/v2.5.2/plumed-src-2.5.2.tgz
|
URL https://github.com/plumed/plumed2/releases/download/v2.5.3/plumed-src-2.5.3.tgz
|
||||||
URL_MD5 bd2f18346c788eb54e1e52f4f6acf41a
|
URL_MD5 de30d6e7c2dcc0973298e24a6da24286
|
||||||
BUILD_IN_SOURCE 1
|
BUILD_IN_SOURCE 1
|
||||||
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=<INSTALL_DIR>
|
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=<INSTALL_DIR>
|
||||||
${CONFIGURE_REQUEST_PIC}
|
${CONFIGURE_REQUEST_PIC}
|
||||||
|
|||||||
@ -1798,6 +1798,32 @@ Requires installation of the Voro++ library
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
### USER-COLVARS Package
|
||||||
|
|
||||||
|
Requires a C++11 compiler to compile with the Lepton library included.
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Option</th>
|
||||||
|
<th>Description</th>
|
||||||
|
<th>Values</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td><code>COLVARS_LEPTON</code></td>
|
||||||
|
<td>Enable the use of the Lepton library inside the Colvars library.
|
||||||
|
<td>
|
||||||
|
<dl>
|
||||||
|
<dt><code>on</code> (default)</dt>
|
||||||
|
<dt><code>off</code></dt>
|
||||||
|
</dl>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
### USER-LATTE Package
|
### USER-LATTE Package
|
||||||
|
|
||||||
Requires installation of the LATTE library
|
Requires installation of the LATTE library
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
set(ALL_PACKAGES ASPHERE CLASS2 COLLOID CORESHELL DIPOLE
|
set(ALL_PACKAGES ASPHERE CLASS2 COLLOID CORESHELL DIPOLE
|
||||||
GRANULAR KSPACE MANYBODY MC MISC MOLECULE OPT PERI
|
GRANULAR KSPACE MANYBODY MC MISC MOLECULE OPT PERI
|
||||||
PYTHON QEQ REPLICA RIGID SHOCK SRD VORONOI
|
PYTHON QEQ REPLICA RIGID SHOCK SNAP SRD VORONOI
|
||||||
USER-CGDNA USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD
|
USER-CGDNA USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD
|
||||||
USER-DRUDE USER-FEP USER-MEAMC USER-MESO
|
USER-DRUDE USER-FEP USER-MEAMC USER-MESO
|
||||||
USER-MISC USER-MOFFF USER-OMP USER-PHONON USER-REAXC
|
USER-MISC USER-MOFFF USER-OMP USER-PHONON USER-REAXC
|
||||||
|
|||||||
2
doc/.gitignore
vendored
@ -6,3 +6,5 @@
|
|||||||
/LAMMPS.mobi
|
/LAMMPS.mobi
|
||||||
/Manual.pdf
|
/Manual.pdf
|
||||||
/Developer.pdf
|
/Developer.pdf
|
||||||
|
/doctrees
|
||||||
|
/docenv
|
||||||
|
|||||||
64
doc/Makefile
@ -1,12 +1,12 @@
|
|||||||
# Makefile for LAMMPS documentation
|
# Makefile for LAMMPS documentation
|
||||||
|
|
||||||
SHELL = /bin/bash
|
SHELL = /bin/bash
|
||||||
SHA1 = $(shell echo ${USER}-${PWD} | python utils/sha1sum.py)
|
BUILDDIR = ${CURDIR}
|
||||||
BUILDDIR = /tmp/lammps-docs-$(SHA1)
|
RSTDIR = $(BUILDDIR)/src
|
||||||
RSTDIR = $(BUILDDIR)/rst
|
TXTDIR = $(BUILDDIR)/txt
|
||||||
VENV = $(BUILDDIR)/docenv
|
VENV = $(BUILDDIR)/docenv
|
||||||
TXT2RST = $(VENV)/bin/txt2rst
|
TXT2RST = $(VENV)/bin/txt2rst
|
||||||
ANCHORCHECK = $(VENV)/bin/doc_anchor_check
|
ANCHORCHECK = $(VENV)/bin/rst_anchor_check
|
||||||
|
|
||||||
PYTHON = $(shell which python3)
|
PYTHON = $(shell which python3)
|
||||||
VIRTUALENV = virtualenv
|
VIRTUALENV = virtualenv
|
||||||
@ -28,10 +28,10 @@ HAS_VIRTUALENV = YES
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
SPHINXEXTRA = -j $(shell $(PYTHON) -c 'import multiprocessing;print(multiprocessing.cpu_count())')
|
SPHINXEXTRA = -j $(shell $(PYTHON) -c 'import multiprocessing;print(multiprocessing.cpu_count())')
|
||||||
SOURCES=$(filter-out $(wildcard src/lammps_commands*.txt) src/lammps_support.txt src/lammps_tutorials.txt,$(wildcard src/*.txt))
|
SOURCES=$(filter-out $(wildcard $(TXTDIR)/lammps_commands*.txt) $(TXTDIR)/lammps_support.txt $(TXTDIR)/lammps_tutorials.txt,$(wildcard $(TXTDIR)/*.txt))
|
||||||
OBJECTS=$(SOURCES:src/%.txt=$(RSTDIR)/%.rst)
|
OBJECTS=$(SOURCES:$(TXTDIR)/%.txt=$(RSTDIR)/%.rst)
|
||||||
|
|
||||||
.PHONY: help clean-all clean epub mobi html pdf old venv spelling anchor_check
|
.PHONY: help clean-all clean epub mobi rst html pdf venv spelling anchor_check
|
||||||
|
|
||||||
# ------------------------------------------
|
# ------------------------------------------
|
||||||
|
|
||||||
@ -39,37 +39,36 @@ help:
|
|||||||
@echo "Please use \`make <target>' where <target> is one of"
|
@echo "Please use \`make <target>' where <target> is one of"
|
||||||
@echo " html create HTML doc pages in html dir"
|
@echo " html create HTML doc pages in html dir"
|
||||||
@echo " pdf create Developer.pdf and Manual.pdf in this dir"
|
@echo " pdf create Developer.pdf and Manual.pdf in this dir"
|
||||||
@echo " old create old-style HTML doc pages and Manual.pdf in old dir"
|
|
||||||
@echo " fetch fetch HTML and PDF files from LAMMPS web site"
|
@echo " fetch fetch HTML and PDF files from LAMMPS web site"
|
||||||
@echo " epub create ePUB format manual for e-book readers"
|
@echo " epub create ePUB format manual for e-book readers"
|
||||||
@echo " mobi convert ePUB to MOBI format manual for e-book readers (e.g. Kindle)"
|
@echo " mobi convert ePUB to MOBI format manual for e-book readers (e.g. Kindle)"
|
||||||
@echo " (requires ebook-convert tool from calibre)"
|
@echo " (requires ebook-convert tool from calibre)"
|
||||||
@echo " clean remove all intermediate RST files"
|
@echo " clean remove all intermediate RST files"
|
||||||
@echo " clean-all reset the entire build environment"
|
@echo " clean-all reset the entire build environment"
|
||||||
@echo " txt2html build txt2html tool"
|
|
||||||
@echo " anchor_check scan for duplicate anchor labels"
|
@echo " anchor_check scan for duplicate anchor labels"
|
||||||
@echo " spelling spell-check the manual"
|
@echo " spelling spell-check the manual"
|
||||||
|
|
||||||
# ------------------------------------------
|
# ------------------------------------------
|
||||||
|
|
||||||
clean-all: clean
|
clean-all: clean
|
||||||
rm -rf $(BUILDDIR)/* utils/txt2html/txt2html.exe
|
rm -rf $(BUILDDIR)/docenv $(BUILDDIR)/doctrees
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf $(RSTDIR) html old epub latex
|
rm -rf html epub latex
|
||||||
rm -rf spelling
|
rm -rf spelling
|
||||||
|
|
||||||
clean-spelling:
|
clean-spelling:
|
||||||
rm -rf spelling
|
rm -rf spelling
|
||||||
|
|
||||||
|
rst: clean $(OBJECTS) $(ANCHORCHECK)
|
||||||
|
|
||||||
html: $(OBJECTS) $(ANCHORCHECK)
|
html: $(OBJECTS) $(ANCHORCHECK)
|
||||||
@(\
|
@(\
|
||||||
. $(VENV)/bin/activate ;\
|
. $(VENV)/bin/activate ;\
|
||||||
cp -r src/* $(RSTDIR)/ ;\
|
|
||||||
sphinx-build $(SPHINXEXTRA) -b html -c utils/sphinx-config -d $(BUILDDIR)/doctrees $(RSTDIR) html ;\
|
sphinx-build $(SPHINXEXTRA) -b html -c utils/sphinx-config -d $(BUILDDIR)/doctrees $(RSTDIR) html ;\
|
||||||
echo "############################################" ;\
|
echo "############################################" ;\
|
||||||
doc_anchor_check src/*.txt ;\
|
rst_anchor_check src/*.rst ;\
|
||||||
env LC_ALL=C grep -n '[^ -~]' src/*.txt ;\
|
env LC_ALL=C grep -n '[^ -~]' $(RSTDIR)/*.rst ;\
|
||||||
echo "############################################" ;\
|
echo "############################################" ;\
|
||||||
deactivate ;\
|
deactivate ;\
|
||||||
)
|
)
|
||||||
@ -89,8 +88,7 @@ spelling: $(OBJECTS) utils/sphinx-config/false_positives.txt
|
|||||||
@(\
|
@(\
|
||||||
. $(VENV)/bin/activate ;\
|
. $(VENV)/bin/activate ;\
|
||||||
pip install sphinxcontrib-spelling ;\
|
pip install sphinxcontrib-spelling ;\
|
||||||
cp -r src/* $(RSTDIR)/ ;\
|
cp utils/sphinx-config/false_positives.txt $(RSTDIR)/ ;\
|
||||||
cp utils/sphinx-config/false_positives.txt $(RSTDIR)/ ;\
|
|
||||||
sphinx-build -b spelling -c utils/sphinx-config -d $(BUILDDIR)/doctrees $(RSTDIR) spelling ;\
|
sphinx-build -b spelling -c utils/sphinx-config -d $(BUILDDIR)/doctrees $(RSTDIR) spelling ;\
|
||||||
deactivate ;\
|
deactivate ;\
|
||||||
)
|
)
|
||||||
@ -103,7 +101,6 @@ epub: $(OBJECTS)
|
|||||||
@cp src/JPG/*.* epub/JPG
|
@cp src/JPG/*.* epub/JPG
|
||||||
@(\
|
@(\
|
||||||
. $(VENV)/bin/activate ;\
|
. $(VENV)/bin/activate ;\
|
||||||
cp -r src/* $(RSTDIR)/ ;\
|
|
||||||
sphinx-build $(SPHINXEXTRA) -b epub -c utils/sphinx-config -d $(BUILDDIR)/doctrees $(RSTDIR) epub ;\
|
sphinx-build $(SPHINXEXTRA) -b epub -c utils/sphinx-config -d $(BUILDDIR)/doctrees $(RSTDIR) epub ;\
|
||||||
deactivate ;\
|
deactivate ;\
|
||||||
)
|
)
|
||||||
@ -126,10 +123,9 @@ pdf: $(OBJECTS) $(ANCHORCHECK)
|
|||||||
)
|
)
|
||||||
@(\
|
@(\
|
||||||
. $(VENV)/bin/activate ;\
|
. $(VENV)/bin/activate ;\
|
||||||
cp -r src/* $(RSTDIR)/ ;\
|
|
||||||
sphinx-build $(SPHINXEXTRA) -b latex -c utils/sphinx-config -d $(BUILDDIR)/doctrees $(RSTDIR) latex ;\
|
sphinx-build $(SPHINXEXTRA) -b latex -c utils/sphinx-config -d $(BUILDDIR)/doctrees $(RSTDIR) latex ;\
|
||||||
echo "############################################" ;\
|
echo "############################################" ;\
|
||||||
doc_anchor_check src/*.txt ;\
|
rst_anchor_check src/*.rst ;\
|
||||||
echo "############################################" ;\
|
echo "############################################" ;\
|
||||||
deactivate ;\
|
deactivate ;\
|
||||||
)
|
)
|
||||||
@ -155,27 +151,6 @@ pdf: $(OBJECTS) $(ANCHORCHECK)
|
|||||||
@rm -rf latex/USER/*/*.[sg]*
|
@rm -rf latex/USER/*/*.[sg]*
|
||||||
@echo "Build finished. Manual.pdf and Developer.pdf are in this directory."
|
@echo "Build finished. Manual.pdf and Developer.pdf are in this directory."
|
||||||
|
|
||||||
old: utils/txt2html/txt2html.exe
|
|
||||||
@rm -rf old
|
|
||||||
@mkdir old; mkdir old/Eqs; mkdir old/JPG; mkdir old/PDF
|
|
||||||
@cd src; ../utils/txt2html/txt2html.exe -b *.txt; \
|
|
||||||
mv *.html ../old; \
|
|
||||||
cp Eqs/*.jpg ../old/Eqs; \
|
|
||||||
cp JPG/* ../old/JPG; \
|
|
||||||
cp PDF/* ../old/PDF;
|
|
||||||
@( set -e;\
|
|
||||||
cd src/Developer; \
|
|
||||||
pdflatex developer; \
|
|
||||||
pdflatex developer; \
|
|
||||||
mv developer.pdf ../../old/Developer.pdf; \
|
|
||||||
cd ../../old; \
|
|
||||||
for s in `echo ../src/*.txt | sed -e 's,\.\./src/,,g' -e 's/ \(pairs\|bonds\|angles\|dihedrals\|impropers\|commands_list\|fixes\|computes\).txt/ /g' | sed -e 's,\.txt,\.html,g'` ; \
|
|
||||||
do grep -q ^$$s ../src/lammps.book || \
|
|
||||||
echo WARNING: doc file $$s missing in src/lammps.book; done; \
|
|
||||||
htmldoc --batch ../src/lammps.book; \
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
fetch:
|
fetch:
|
||||||
@rm -rf html_www Manual_www.pdf Developer_www.pdf
|
@rm -rf html_www Manual_www.pdf Developer_www.pdf
|
||||||
@curl -s -o Manual_www.pdf http://lammps.sandia.gov/doc/Manual.pdf
|
@curl -s -o Manual_www.pdf http://lammps.sandia.gov/doc/Manual.pdf
|
||||||
@ -184,21 +159,16 @@ fetch:
|
|||||||
@tar xzf lammps-doc.tar.gz
|
@tar xzf lammps-doc.tar.gz
|
||||||
@rm -f lammps-doc.tar.gz
|
@rm -f lammps-doc.tar.gz
|
||||||
|
|
||||||
txt2html: utils/txt2html/txt2html.exe
|
|
||||||
|
|
||||||
anchor_check : $(ANCHORCHECK)
|
anchor_check : $(ANCHORCHECK)
|
||||||
@(\
|
@(\
|
||||||
. $(VENV)/bin/activate ;\
|
. $(VENV)/bin/activate ;\
|
||||||
doc_anchor_check src/*.txt ;\
|
rst_anchor_check src/*.txt ;\
|
||||||
deactivate ;\
|
deactivate ;\
|
||||||
)
|
)
|
||||||
|
|
||||||
# ------------------------------------------
|
# ------------------------------------------
|
||||||
|
|
||||||
utils/txt2html/txt2html.exe: utils/txt2html/txt2html.cpp
|
$(RSTDIR)/%.rst : $(TXTDIR)/%.txt $(TXT2RST)
|
||||||
g++ -O -Wall -o $@ $<
|
|
||||||
|
|
||||||
$(RSTDIR)/%.rst : src/%.txt $(TXT2RST)
|
|
||||||
@(\
|
@(\
|
||||||
mkdir -p $(RSTDIR) ; \
|
mkdir -p $(RSTDIR) ; \
|
||||||
. $(VENV)/bin/activate ;\
|
. $(VENV)/bin/activate ;\
|
||||||
|
|||||||
43
doc/README
@ -5,7 +5,7 @@ sub-directories and optionally 2 PDF files and an ePUB file:
|
|||||||
|
|
||||||
src content files for LAMMPS documentation
|
src content files for LAMMPS documentation
|
||||||
html HTML version of the LAMMPS manual (see html/Manual.html)
|
html HTML version of the LAMMPS manual (see html/Manual.html)
|
||||||
tools tools and settings for building the documentation
|
utils utilities and settings for building the documentation
|
||||||
Manual.pdf large PDF version of entire manual
|
Manual.pdf large PDF version of entire manual
|
||||||
Developer.pdf small PDF with info about how LAMMPS is structured
|
Developer.pdf small PDF with info about how LAMMPS is structured
|
||||||
LAMMPS.epub Manual in ePUB format
|
LAMMPS.epub Manual in ePUB format
|
||||||
@ -25,17 +25,12 @@ the fetched documentation will include those changes (but your source
|
|||||||
code will not, unless you update your local repository).
|
code will not, unless you update your local repository).
|
||||||
|
|
||||||
(b) You can build the HTML and PDF files yourself, by typing "make
|
(b) You can build the HTML and PDF files yourself, by typing "make
|
||||||
html" followed by "make pdf". Note that the PDF make requires the
|
html" or by "make pdf", respectively. This requires various tools
|
||||||
HTML files already exist. This requires various tools including
|
including the Python documentation processing tool Sphinx, which the
|
||||||
Sphinx, which the build process will attempt to download and install
|
build process will attempt to download and install on your system into
|
||||||
on your system, if not already available. See more details below.
|
a python virtual environment, if not already available. The PDF file
|
||||||
|
will require a working LaTeX installation with several add-on packages
|
||||||
(c) You can genererate an older, simpler, less-fancy style of HTML
|
in addition to the Python/Sphinx setup. See more details below.
|
||||||
documentation by typing "make old". This will create an "old"
|
|
||||||
directory. This can be useful if (b) does not work on your box for
|
|
||||||
some reason, or you want to quickly view the HTML version of a doc
|
|
||||||
page you have created or edited yourself within the src directory.
|
|
||||||
E.g. if you are planning to submit a new feature to LAMMPS.
|
|
||||||
|
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
@ -46,11 +41,10 @@ Options:
|
|||||||
|
|
||||||
make html # generate HTML in html dir using Sphinx
|
make html # generate HTML in html dir using Sphinx
|
||||||
make pdf # generate 2 PDF files (Manual.pdf,Developer.pdf)
|
make pdf # generate 2 PDF files (Manual.pdf,Developer.pdf)
|
||||||
# in this dir via htmldoc and pdflatex
|
# in this dir via Sphinx and PDFLaTeX
|
||||||
make old # generate old-style HTML pages in old dir via txt2html
|
|
||||||
make fetch # fetch HTML doc pages and 2 PDF files from web site
|
make fetch # fetch HTML doc pages and 2 PDF files from web site
|
||||||
# as a tarball and unpack into html dir and 2 PDFs
|
# as a tarball and unpack into html dir and 2 PDFs
|
||||||
make epub # generate LAMMPS.epub in ePUB format using Sphinx
|
make epub # generate LAMMPS.epub in ePUB format using Sphinx
|
||||||
make clean # remove intermediate RST files created by HTML build
|
make clean # remove intermediate RST files created by HTML build
|
||||||
make clean-all # remove entire build folder and any cached data
|
make clean-all # remove entire build folder and any cached data
|
||||||
|
|
||||||
@ -94,8 +88,17 @@ This will install virtualenv from the Python Package Index.
|
|||||||
|
|
||||||
Installing prerequisites for PDF build
|
Installing prerequisites for PDF build
|
||||||
|
|
||||||
[TBA]
|
Same as for HTML plus a compatible LaTeX installation with
|
||||||
|
support for PDFLaTeX. Also the following LaTeX packages need
|
||||||
|
to be installed (e.g. from texlive):
|
||||||
|
- amsmath
|
||||||
|
- babel
|
||||||
|
- cmap
|
||||||
|
- fncychap
|
||||||
|
- geometry
|
||||||
|
- hyperref
|
||||||
|
- hypcap
|
||||||
|
- times
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
Installing prerequisites for epub build
|
Installing prerequisites for epub build
|
||||||
@ -103,7 +106,11 @@ Installing prerequisites for epub build
|
|||||||
## ePUB
|
## ePUB
|
||||||
|
|
||||||
Same as for HTML. This uses the same tools and configuration
|
Same as for HTML. This uses the same tools and configuration
|
||||||
files as the HTML tree.
|
files as the HTML tree. The ePUB format conversion currently
|
||||||
|
does not support processing mathematical expressions via MathJAX,
|
||||||
|
so there will be limitations on some pages. For the time being
|
||||||
|
until this is resolved, building and using the PDF format file
|
||||||
|
is recommended instead.
|
||||||
|
|
||||||
For converting the generated ePUB file to a mobi format file
|
For converting the generated ePUB file to a mobi format file
|
||||||
(for e-book readers like Kindle, that cannot read ePUB), you
|
(for e-book readers like Kindle, that cannot read ePUB), you
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
.TH LAMMPS "19 September 2019" "2019-09-19"
|
.TH LAMMPS "20 November 2019" "2019-11-20"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
.B LAMMPS
|
.B LAMMPS
|
||||||
\- Molecular Dynamics Simulator.
|
\- Molecular Dynamics Simulator.
|
||||||
|
|||||||
2
doc/src/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Eqs
|
||||||
|
JPG
|
||||||
28
doc/src/Build.rst
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
Build LAMMPS
|
||||||
|
************
|
||||||
|
|
||||||
|
LAMMPS can be built as an executable or library from source code via
|
||||||
|
either traditional makefiles (which may require manual editing)
|
||||||
|
for use with GNU make or gmake, or a build environment generated by CMake
|
||||||
|
(Unix Makefiles, Xcode, Visual Studio, KDevelop or more). As an
|
||||||
|
alternative you can download a package with pre-built executables
|
||||||
|
as described on the :doc:`Install <Install>` doc page.
|
||||||
|
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
Build_cmake
|
||||||
|
Build_make
|
||||||
|
Build_link
|
||||||
|
Build_basics
|
||||||
|
Build_settings
|
||||||
|
Build_package
|
||||||
|
Build_extras
|
||||||
|
Build_windows
|
||||||
|
Build_development
|
||||||
|
|
||||||
|
|
||||||
|
.. _lws: http://lammps.sandia.gov
|
||||||
|
.. _ld: Manual.html
|
||||||
|
.. _lc: Commands_all.html
|
||||||
437
doc/src/Build_basics.rst
Normal file
@ -0,0 +1,437 @@
|
|||||||
|
Basic build options
|
||||||
|
===================
|
||||||
|
|
||||||
|
The following topics are covered on this page, for building both with
|
||||||
|
CMake and make:
|
||||||
|
|
||||||
|
* :ref:`Serial vs parallel build <serial>`
|
||||||
|
* :ref:`Choice of compiler and compile/link options <compile>`
|
||||||
|
* :ref:`Build LAMMPS as an executable or a library <exe>`
|
||||||
|
* :ref:`Build the LAMMPS documentation <doc>`
|
||||||
|
* :ref:`Install LAMMPS after a build <install>`
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
.. _serial:
|
||||||
|
|
||||||
|
Serial vs parallel build
|
||||||
|
-------------------------------------
|
||||||
|
|
||||||
|
LAMMPS can be built to run in parallel using the ubiquitous `MPI (message-passing interface) <https://en.wikipedia.org/wiki/Message_Passing_Interface>`_
|
||||||
|
library. Or it can built to run on a single processor (serial)
|
||||||
|
without MPI. It can also be built with support for OpenMP threading
|
||||||
|
(see more discussion below).
|
||||||
|
|
||||||
|
**CMake variables**\ :
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
-D BUILD_MPI=value # yes or no, default is yes if CMake finds MPI, else no
|
||||||
|
-D BUILD_OMP=value # yes or no (default)
|
||||||
|
-D LAMMPS_MACHINE=name # name = mpi, serial, mybox, titan, laptop, etc
|
||||||
|
# no default value
|
||||||
|
|
||||||
|
The executable created by CMake (after running make) is lmp\_name. If
|
||||||
|
the LAMMPS\_MACHINE variable is not specified, the executable is just
|
||||||
|
lmp. Using BUILD\_MPI=no will produce a serial executable.
|
||||||
|
|
||||||
|
**Traditional make**\ :
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
cd lammps/src
|
||||||
|
make mpi # parallel build, produces lmp_mpi using Makefile.mpi
|
||||||
|
make serial # serial build, produces lmp_serial using Makefile/serial
|
||||||
|
make mybox # uses Makefile.mybox to produce lmp_mybox
|
||||||
|
|
||||||
|
Serial build (see src/MAKE/Makefile.serial):
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
MPI_INC = -I../STUBS
|
||||||
|
MPI_PATH = -L../STUBS
|
||||||
|
MPI_LIB = -lmpi_stubs
|
||||||
|
|
||||||
|
For a parallel build, if MPI is installed on your system in the usual
|
||||||
|
place (e.g. under /usr/local), you do not need to specify the 3
|
||||||
|
variables MPI\_INC, MPI\_PATH, MPI\_LIB. The MPI wrapper on the compiler
|
||||||
|
(e.g. mpicxx, mpiCC) knows where to find the needed include and
|
||||||
|
library files. Failing this, these 3 variables can be used to specify
|
||||||
|
where the mpi.h file (MPI\_INC), and the MPI library files (MPI\_PATH)
|
||||||
|
are found, and the name of the library files (MPI\_LIB).
|
||||||
|
|
||||||
|
For a serial build, you need to specify the 3 variables, as shown
|
||||||
|
above.
|
||||||
|
|
||||||
|
For a serial LAMMPS build, use the dummy MPI library provided in
|
||||||
|
src/STUBS. You also need to build the STUBS library for your platform
|
||||||
|
before making LAMMPS itself. A "make serial" build does this for.
|
||||||
|
Otherwise, type "make mpi-stubs" from the src directory, or "make"
|
||||||
|
from the src/STUBS dir. If the build fails, you will need to edit the
|
||||||
|
STUBS/Makefile for your platform.
|
||||||
|
|
||||||
|
The file STUBS/mpi.c provides a CPU timer function called MPI\_Wtime()
|
||||||
|
that calls gettimeofday() . If your system doesn't support
|
||||||
|
gettimeofday() , you'll need to insert code to call another timer.
|
||||||
|
Note that the ANSI-standard function clock() rolls over after an hour
|
||||||
|
or so, and is therefore insufficient for timing long LAMMPS
|
||||||
|
simulations.
|
||||||
|
|
||||||
|
**CMake and make info**\ :
|
||||||
|
|
||||||
|
If you are installing MPI yourself, we recommend MPICH2 from Argonne
|
||||||
|
National Laboratory or OpenMPI. MPICH can be downloaded from the
|
||||||
|
`Argonne MPI site <http://www.mcs.anl.gov/research/projects/mpich2/>`_.
|
||||||
|
OpenMPI can be downloaded from the `OpenMPI site <http://www.open-mpi.org>`_. Other MPI packages should also work.
|
||||||
|
If you are running on a large parallel machine, your system admins or
|
||||||
|
the vendor should have already installed a version of MPI, which is
|
||||||
|
likely to be faster than a self-installed MPICH or OpenMPI, so find
|
||||||
|
out how to build and link with it.
|
||||||
|
|
||||||
|
The majority of OpenMP (threading) support in LAMMPS is provided by
|
||||||
|
the USER-OMP package; see the :doc:`Speed omp <Speed_omp>` doc page for
|
||||||
|
details. The USER-INTEL package also provides OpenMP support (it is
|
||||||
|
compatible with USER-OMP) and adds vectorization support when compiled
|
||||||
|
with the Intel compilers on top of that. Also, the KOKKOS package can
|
||||||
|
be compiled for using OpenMP threading.
|
||||||
|
|
||||||
|
However, there are a few commands in LAMMPS that have native OpenMP
|
||||||
|
support. These are commands in the MPIIO, SNAP, USER-DIFFRACTION, and
|
||||||
|
USER-DPD packages. In addition some packages support OpenMP threading
|
||||||
|
indirectly through the libraries they interface to: e.g. LATTE and
|
||||||
|
USER-COLVARS. See the :doc:`Packages details <Packages_details>` doc
|
||||||
|
page for more info on these packages and the doc pages for their
|
||||||
|
respective commands for OpenMP threading info.
|
||||||
|
|
||||||
|
For CMake, if you use BUILD\_OMP=yes, you can use these packages and
|
||||||
|
turn on their native OpenMP support and turn on their native OpenMP
|
||||||
|
support at run time, by setting the OMP\_NUM\_THREADS environment
|
||||||
|
variable before you launch LAMMPS.
|
||||||
|
|
||||||
|
For building via conventional make, the CCFLAGS and LINKFLAGS
|
||||||
|
variables in Makefile.machine need to include the compiler flag that
|
||||||
|
enables OpenMP. For GNU compilers it is -fopenmp. For (recent) Intel
|
||||||
|
compilers it is -qopenmp. If you are using a different compiler,
|
||||||
|
please refer to its documentation.
|
||||||
|
|
||||||
|
.. _default-none-issues:
|
||||||
|
|
||||||
|
**OpenMP Compiler compatibility info**\ :
|
||||||
|
|
||||||
|
Some compilers do not fully support the 'default(none)' directive
|
||||||
|
and others (e.g. GCC version 9 and beyond) may implement OpenMP 4.0
|
||||||
|
semantics, which are incompatible with the OpenMP 3.1 directives used
|
||||||
|
in LAMMPS (for maximal compatibility with compiler versions in use).
|
||||||
|
In those case, all 'default(none)' directives (which aid in detecting
|
||||||
|
incorrect and unwanted sharing) can be replaced with 'default(shared)'
|
||||||
|
while dropping all 'shared()' directives. The script
|
||||||
|
'src/USER-OMP/hack\_openmp\_for\_pgi\_gcc9.sh' can be used to automate
|
||||||
|
this conversion.
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
.. _compile:
|
||||||
|
|
||||||
|
Choice of compiler and compile/link options
|
||||||
|
---------------------------------------------------------
|
||||||
|
|
||||||
|
The choice of compiler and compiler flags can be important for
|
||||||
|
performance. Vendor compilers can produce faster code than
|
||||||
|
open-source compilers like GNU. On boxes with Intel CPUs, we suggest
|
||||||
|
trying the `Intel C++ compiler <intel_>`_.
|
||||||
|
|
||||||
|
.. _intel: https://software.intel.com/en-us/intel-compilers
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
On parallel clusters or supercomputers which use "modules" for their
|
||||||
|
compile/link environments, you can often access different compilers by
|
||||||
|
simply loading the appropriate module before building LAMMPS.
|
||||||
|
|
||||||
|
**CMake variables**\ :
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
-D CMAKE_CXX_COMPILER=name # name of C++ compiler
|
||||||
|
-D CMAKE_C_COMPILER=name # name of C compiler
|
||||||
|
-D CMAKE_Fortran_COMPILER=name # name of Fortran compiler
|
||||||
|
|
||||||
|
-D CMAKE_CXX_FLAGS=string # flags to use with C++ compiler
|
||||||
|
-D CMAKE_C_FLAGS=string # flags to use with C compiler
|
||||||
|
-D CMAKE_Fortran_FLAGS=string # flags to use with Fortran compiler
|
||||||
|
|
||||||
|
By default CMake will use a compiler it finds and it will add
|
||||||
|
optimization flags appropriate to that compiler and any :doc:`accelerator packages <Speed_packages>` you have included in the build.
|
||||||
|
|
||||||
|
You can tell CMake to look for a specific compiler with these variable
|
||||||
|
settings. Likewise you can specify the FLAGS variables if you want to
|
||||||
|
experiment with alternate optimization flags. You should specify all
|
||||||
|
3 compilers, so that the small number of LAMMPS source files written
|
||||||
|
in C or Fortran are built with a compiler consistent with the one used
|
||||||
|
for all the C++ files:
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
Building with GNU Compilers:
|
||||||
|
cmake ../cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_Fortran_COMPILER=gfortran
|
||||||
|
Building with Intel Compilers:
|
||||||
|
cmake ../cmake -DCMAKE_C_COMPILER=icc -DCMAKE_CXX_COMPILER=icpc -DCMAKE_Fortran_COMPILER=ifort
|
||||||
|
Building with LLVM/Clang Compilers:
|
||||||
|
cmake ../cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_Fortran_COMPILER=flang
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
When the cmake command completes, it prints info to the screen
|
||||||
|
as to which compilers it is using, and what flags will be used in the
|
||||||
|
compilation. Note that if the top-level compiler is mpicxx, it is
|
||||||
|
simply a wrapper on a real compiler. The underlying compiler info is
|
||||||
|
what will be listed in the CMake output. You should check to insure
|
||||||
|
you are using the compiler and optimization flags are the ones you
|
||||||
|
want.
|
||||||
|
|
||||||
|
**Makefile.machine settings**\ :
|
||||||
|
|
||||||
|
Parallel build (see src/MAKE/Makefile.mpi):
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
CC = mpicxx
|
||||||
|
CCFLAGS = -g -O3
|
||||||
|
LINK = mpicxx
|
||||||
|
LINKFLAGS = -g -O
|
||||||
|
|
||||||
|
Serial build (see src/MAKE/Makefile.serial):
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
CC = g++
|
||||||
|
CCFLAGS = -g -O3
|
||||||
|
LINK = g++
|
||||||
|
LINKFLAGS = -g -O
|
||||||
|
|
||||||
|
The "compiler/linker settings" section of a Makefile.machine lists
|
||||||
|
compiler and linker settings for your C++ compiler, including
|
||||||
|
optimization flags. You should always use mpicxx or mpiCC for
|
||||||
|
a parallel build, since these compiler wrappers will include
|
||||||
|
a variety of settings appropriate for your MPI installation.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
If you build LAMMPS with any :doc:`accelerator packages <Speed_packages>` included, they have specific
|
||||||
|
optimization flags that are either required or recommended for optimal
|
||||||
|
performance. You need to include these in the CCFLAGS and LINKFLAGS
|
||||||
|
settings above. For details, see the individual package doc pages
|
||||||
|
listed on the :doc:`Speed packages <Speed_packages>` doc page. Or
|
||||||
|
examine these files in the src/MAKE/OPTIONS directory. They
|
||||||
|
correspond to each of the 5 accelerator packages and their hardware
|
||||||
|
variants:
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
Makefile.opt # OPT package
|
||||||
|
Makefile.omp # USER-OMP package
|
||||||
|
Makefile.intel_cpu # USER-INTEL package for CPUs
|
||||||
|
Makefile.intel_coprocessor # USER-INTEL package for KNLs
|
||||||
|
Makefile.gpu # GPU package
|
||||||
|
Makefile.kokkos_cuda_mpi # KOKKOS package for GPUs
|
||||||
|
Makefile.kokkos_omp # KOKKOS package for CPUs (OpenMP)
|
||||||
|
Makefile.kokkos_phi # KOKKOS package for KNLs (OpenMP)
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
.. _exe:
|
||||||
|
|
||||||
|
Build LAMMPS as an executable or a library
|
||||||
|
----------------------------------------------------
|
||||||
|
|
||||||
|
LAMMPS can be built as either an executable or as a static or shared
|
||||||
|
library. The LAMMPS library can be called from another application or
|
||||||
|
a scripting language. See the :doc:`Howto couple <Howto_couple>` doc
|
||||||
|
page for more info on coupling LAMMPS to other codes. See the
|
||||||
|
:doc:`Python <Python_head>` doc page for more info on wrapping and
|
||||||
|
running LAMMPS from Python via its library interface.
|
||||||
|
|
||||||
|
**CMake variables**\ :
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
-D BUILD_EXE=value # yes (default) or no
|
||||||
|
-D BUILD_LIB=value # yes or no (default)
|
||||||
|
-D BUILD_SHARED_LIBS=value # yes or no (default)
|
||||||
|
-D LAMMPS_LIB_SUFFIX=name # name = mpi, serial, mybox, titan, laptop, etc
|
||||||
|
# no default value
|
||||||
|
|
||||||
|
Setting BUILD\_EXE=no will not produce an executable. Setting
|
||||||
|
BUILD\_LIB=yes will produce a static library named liblammps.a.
|
||||||
|
Setting both BUILD\_LIB=yes and BUILD\_SHARED\_LIBS=yes will produce a
|
||||||
|
shared library named liblammps.so. If LAMMPS\_LIB\_SUFFIX is set the generated
|
||||||
|
libraries will be named liblammps\_name.a or liblammps\_name.so instead.
|
||||||
|
|
||||||
|
**Traditional make**\ :
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
cd lammps/src
|
||||||
|
make machine # build LAMMPS executable lmp_machine
|
||||||
|
make mode=lib machine # build LAMMPS static lib liblammps_machine.a
|
||||||
|
make mode=shlib machine # build LAMMPS shared lib liblammps_machine.so
|
||||||
|
|
||||||
|
The two library builds also create generic soft links, named
|
||||||
|
liblammps.a and liblammps.so, which point to the liblammps\_machine
|
||||||
|
files.
|
||||||
|
|
||||||
|
**CMake and make info**\ :
|
||||||
|
|
||||||
|
Note that for a shared library to be usable by a calling program, all
|
||||||
|
the auxiliary libraries it depends on must also exist as shared
|
||||||
|
libraries. This will be the case for libraries included with LAMMPS,
|
||||||
|
such as the dummy MPI library in src/STUBS or any package libraries in
|
||||||
|
the lib/packages directory, since they are always built as shared
|
||||||
|
libraries using the -fPIC switch. However, if a library like MPI or
|
||||||
|
FFTW does not exist as a shared library, the shared library build will
|
||||||
|
generate an error. This means you will need to install a shared
|
||||||
|
library version of the auxiliary library. The build instructions for
|
||||||
|
the library should tell you how to do this.
|
||||||
|
|
||||||
|
As an example, here is how to build and install the `MPICH library <mpich_>`_, a popular open-source version of MPI, distributed by
|
||||||
|
Argonne National Lab, as a shared library in the default
|
||||||
|
/usr/local/lib location:
|
||||||
|
|
||||||
|
.. _mpich: http://www-unix.mcs.anl.gov/mpi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
./configure --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
You may need to use "sudo make install" in place of the last line if
|
||||||
|
you do not have write privileges for /usr/local/lib. The end result
|
||||||
|
should be the file /usr/local/lib/libmpich.so.
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
.. _doc:
|
||||||
|
|
||||||
|
Build the LAMMPS documentation
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
**CMake variable**\ :
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
-D BUILD_DOC=value # yes or no (default)
|
||||||
|
|
||||||
|
This will create the HTML doc pages within the CMake build directory.
|
||||||
|
The reason to do this is if you want to "install" LAMMPS on a system
|
||||||
|
after the CMake build via "make install", and include the doc pages in
|
||||||
|
the install.
|
||||||
|
|
||||||
|
**Traditional make**\ :
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
cd lammps/doc
|
||||||
|
make html # html doc pages
|
||||||
|
make pdf # single Manual.pdf file
|
||||||
|
|
||||||
|
This will create a lammps/doc/html dir with the HTML doc pages so that
|
||||||
|
you can browse them locally on your system. Type "make" from the
|
||||||
|
lammps/doc dir to see other options.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
You can also download a tarball of the documentation for the
|
||||||
|
current LAMMPS version (HTML and PDF files), from the website
|
||||||
|
`download page <http://lammps.sandia.gov/download.html>`_.
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
.. _tools:
|
||||||
|
|
||||||
|
Build LAMMPS tools
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
Some tools described in :doc:`Auxiliary tools <Tools>` can be built directly
|
||||||
|
using CMake or Make.
|
||||||
|
|
||||||
|
**CMake variable**\ :
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
-D BUILD_TOOLS=value # yes or no (default)
|
||||||
|
|
||||||
|
The generated binaries will also become part of the LAMMPS installation (see below)
|
||||||
|
|
||||||
|
**Traditional make**\ :
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
cd lammps/tools
|
||||||
|
make all # build all binaries of tools
|
||||||
|
make binary2txt # build only binary2txt tool
|
||||||
|
make chain # build only chain tool
|
||||||
|
make micelle2d # build only micelle2d tool
|
||||||
|
make thermo_extract # build only thermo_extract tool
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
.. _install:
|
||||||
|
|
||||||
|
Install LAMMPS after a build
|
||||||
|
------------------------------------------
|
||||||
|
|
||||||
|
After building LAMMPS, you may wish to copy the LAMMPS executable of
|
||||||
|
library, along with other LAMMPS files (library header, doc files) to
|
||||||
|
a globally visible place on your system, for others to access. Note
|
||||||
|
that you may need super-user privileges (e.g. sudo) if the directory
|
||||||
|
you want to copy files to is protected.
|
||||||
|
|
||||||
|
**CMake variable**\ :
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
cmake -D CMAKE_INSTALL_PREFIX=path [options ...] ../cmake
|
||||||
|
make # perform make after CMake command
|
||||||
|
make install # perform the installation into prefix
|
||||||
|
|
||||||
|
**Traditional make**\ :
|
||||||
|
|
||||||
|
There is no "install" option in the src/Makefile for LAMMPS. If you
|
||||||
|
wish to do this you will need to first build LAMMPS, then manually
|
||||||
|
copy the desired LAMMPS files to the appropriate system directories.
|
||||||
|
|
||||||
|
|
||||||
|
.. _lws: http://lammps.sandia.gov
|
||||||
|
.. _ld: Manual.html
|
||||||
|
.. _lc: Commands_all.html
|
||||||
245
doc/src/Build_cmake.rst
Normal file
@ -0,0 +1,245 @@
|
|||||||
|
Build LAMMPS with CMake
|
||||||
|
=======================
|
||||||
|
|
||||||
|
This page is a short summary of how to use CMake to build LAMMPS.
|
||||||
|
Details on CMake variables that enable specific LAMMPS build options
|
||||||
|
are given on the pages linked to from the :doc:`Build <Build>` doc page.
|
||||||
|
|
||||||
|
Richard Berger (Temple U) has also written a `more comprehensive guide <https://github.com/lammps/lammps/blob/master/cmake/README.md>`_
|
||||||
|
for how to use CMake to build LAMMPS. If you are new to CMake it is a
|
||||||
|
good place to start.
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
Building LAMMPS with CMake is a two-step process. First you use CMake
|
||||||
|
to create a build environment in a new directory. On Linux systems,
|
||||||
|
this will be based on makefiles for use with make. Then you use the
|
||||||
|
make command to build LAMMPS, which uses the created
|
||||||
|
Makefile(s). Example:
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
cd lammps # change to the LAMMPS distribution directory
|
||||||
|
mkdir build; cd build # create a new directory (folder) for build
|
||||||
|
cmake [options ...] ../cmake # configuration with (command-line) cmake
|
||||||
|
make # compilation
|
||||||
|
|
||||||
|
The cmake command will detect available features, enable selected
|
||||||
|
packages and options, and will generate the build environment. By default
|
||||||
|
this build environment will be created for "Unix Makefiles" on most
|
||||||
|
platforms and particularly on Linux. However, alternate build tools
|
||||||
|
(e.g. Ninja) and support files for Integrated Development Environments
|
||||||
|
(IDE) like Eclipse, CodeBlocks, or Kate can be generated, too. This is
|
||||||
|
selected via the "-G" command line flag. For the rest of the documentation
|
||||||
|
we will assume that the build environment is generated for makefiles
|
||||||
|
and thus the make command will be used to compile and link LAMMPS as
|
||||||
|
indicated above, producing (by default) an executable called "lmp" and
|
||||||
|
a library called "liblammps.a" in the "build" folder. When generating
|
||||||
|
a build environment for the "Ninja" build tool, the build command would
|
||||||
|
be "ninja" instead of "make".
|
||||||
|
|
||||||
|
If your machine has multiple CPU cores (most do these days), using a
|
||||||
|
command like "make -jN" (with N being the number of available local
|
||||||
|
CPU cores) can be much faster. If you plan to do development on
|
||||||
|
LAMMPS or need to re-compile LAMMPS repeatedly, installation of the
|
||||||
|
ccache (= Compiler Cache) software may speed up repeated compilation
|
||||||
|
even more.
|
||||||
|
|
||||||
|
After compilation, you may optionally install the LAMMPS executable into
|
||||||
|
your system with:
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
make install # optional, copy LAMMPS executable & library elsewhere
|
||||||
|
|
||||||
|
This will install the lammps executable and library (if requested), some
|
||||||
|
tools (if configured) and additional files like library API headers,
|
||||||
|
manpages, potential and force field files. The location of the installation
|
||||||
|
tree is set by the CMake variable "CMAKE\_INSTALL\_PREFIX" which defaults
|
||||||
|
to ${HOME}/.local
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
There are 3 variants of CMake: a command-line version (cmake), a text mode
|
||||||
|
UI version (ccmake), and a graphical GUI version (cmake-GUI). You can use
|
||||||
|
any of them interchangeably to configure and create the LAMMPS build
|
||||||
|
environment. On Linux all the versions produce a Makefile as their
|
||||||
|
output. See more details on each below.
|
||||||
|
|
||||||
|
You can specify a variety of options with any of the 3 versions, which
|
||||||
|
affect how the build is performed and what is included in the LAMMPS
|
||||||
|
executable. Links to pages explaining all the options are listed on
|
||||||
|
the :doc:`Build <Build>` doc page.
|
||||||
|
|
||||||
|
You must perform the CMake build system generation and compilation in
|
||||||
|
a new directory you create. It can be anywhere on your local machine.
|
||||||
|
In these Build pages we assume that you are building in a directory
|
||||||
|
called "lammps/build". You can perform separate builds independently
|
||||||
|
with different options, so long as you perform each of them in a
|
||||||
|
separate directory you create. All the auxiliary files created by one
|
||||||
|
build process (executable, object files, log files, etc) are stored in
|
||||||
|
this directory or sub-directories within it that CMake creates.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
To perform a CMake build, no packages can be installed or a
|
||||||
|
build been previously attempted in the LAMMPS src directory by using
|
||||||
|
"make" commands to :doc:`perform a conventional LAMMPS build <Build_make>`. CMake detects if this is the case and
|
||||||
|
generates an error, telling you to type "make no-all purge" in the src
|
||||||
|
directory to un-install all packages. The purge removes all the \*.h
|
||||||
|
files auto-generated by make.
|
||||||
|
|
||||||
|
You must have CMake version 2.8 or later on your system to build
|
||||||
|
LAMMPS. A handful of LAMMPS packages (KOKKOS, LATTE, MSCG) require a
|
||||||
|
later version. CMake will print a message telling you if a later
|
||||||
|
version is required. Installation instructions for CMake are below.
|
||||||
|
|
||||||
|
After the initial build, if you edit LAMMPS source files, or add your
|
||||||
|
own new files to the source directory, you can just re-type make from
|
||||||
|
your build directory and it will re-compile only the files that have
|
||||||
|
changed. If you want to change CMake options you can run cmake (or
|
||||||
|
ccmake or cmake-gui) again from the same build directory and alter
|
||||||
|
various options; see details below. Or you can remove the entire build
|
||||||
|
folder, recreate the directory and start over.
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
**Command-line version of CMake**\ :
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
cmake [options ...] /path/to/lammps/cmake # build from any dir
|
||||||
|
cmake [options ...] ../cmake # build from lammps/build
|
||||||
|
|
||||||
|
The cmake command takes one required argument, which is the LAMMPS
|
||||||
|
cmake directory which contains the CMakeLists.txt file.
|
||||||
|
|
||||||
|
The argument can be preceeded or followed by various CMake
|
||||||
|
command-line options. Several useful ones are:
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
-D CMAKE_INSTALL_PREFIX=path # where to install LAMMPS executable/lib if desired
|
||||||
|
-D CMAKE_BUILD_TYPE=type # type = RelWithDebInfo (default), Release, MinSizeRel, or Debug
|
||||||
|
-G output # style of output CMake generates
|
||||||
|
-DVARIABLE=value # setting for a LAMMPS feature to enable
|
||||||
|
-D VARIABLE=value # ditto, but cannot come after CMakeLists.txt dir
|
||||||
|
-C path/to/preset/file # load some CMake settings before configuring
|
||||||
|
|
||||||
|
All the LAMMPS-specific -D variables that a LAMMPS build supports are
|
||||||
|
described on the pages linked to from the :doc:`Build <Build>` doc page.
|
||||||
|
All of these variable names are upper-case and their values are
|
||||||
|
lower-case, e.g. -D LAMMPS\_SIZES=smallbig. For boolean values, any of
|
||||||
|
these forms can be used: yes/no, on/off, 1/0.
|
||||||
|
|
||||||
|
On Unix/Linux machines, CMake generates a Makefile by default to
|
||||||
|
perform the LAMMPS build. Alternate forms of build info can be
|
||||||
|
generated via the -G switch, e.g. Visual Studio on a Windows machine,
|
||||||
|
Xcode on MacOS, or KDevelop on Linux. Type "cmake --help" to see the
|
||||||
|
"Generator" styles of output your system supports.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
When CMake runs, it prints configuration info to the screen.
|
||||||
|
You should review this to verify all the features you requested were
|
||||||
|
enabled, including packages. You can also see what compilers and
|
||||||
|
compile options will be used for the build. Any errors in CMake
|
||||||
|
variable syntax will also be flagged, e.g. mis-typed variable names or
|
||||||
|
variable values.
|
||||||
|
|
||||||
|
CMake creates a CMakeCache.txt file when it runs. This stores all the
|
||||||
|
settings, so that when running CMake again you can use the current
|
||||||
|
folder '.' instead of the path to the LAMMPS cmake folder as the
|
||||||
|
required argument to the CMake command. Either way the existing
|
||||||
|
settings will be inherited unless the CMakeCache.txt file is removed.
|
||||||
|
|
||||||
|
If you later want to change a setting you can rerun cmake in the build
|
||||||
|
directory with different setting. Please note that some automatically
|
||||||
|
detected variables will not change their value when you rerun cmake.
|
||||||
|
In these cases it is usually better to first remove all the
|
||||||
|
files/directories in the build directory, or start with a fresh build
|
||||||
|
directory.
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
**Curses version (terminal-style menu) of CMake**\ :
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
ccmake ../cmake
|
||||||
|
|
||||||
|
You initiate the configuration and build environment generation steps
|
||||||
|
separately. For the first you have to type **c**\ , for the second you
|
||||||
|
have to type **g**\ . You may need to type **c** multiple times, and may be
|
||||||
|
required to edit some of the entries of CMake configuration variables
|
||||||
|
in between. Please see the `ccmake manual <https://cmake.org/cmake/help/latest/manual/ccmake.1.html>`_ for
|
||||||
|
more information.
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
**GUI version of CMake**\ :
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
cmake-gui ../cmake
|
||||||
|
|
||||||
|
You initiate the configuration and build environment generation steps
|
||||||
|
separately. For the first you have to click on the **Configure** button,
|
||||||
|
for the second you have to click on the **Generate** button. You may
|
||||||
|
need to click on **Configure** multiple times, and may be required to
|
||||||
|
edit some of the entries of CMake configuration variables in between.
|
||||||
|
Please see the `cmake-gui manual <https://cmake.org/cmake/help/latest/manual/cmake-gui.1.html>`_
|
||||||
|
for more information.
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
**Installing CMake**
|
||||||
|
|
||||||
|
Check if your machine already has CMake installed:
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
which cmake # do you have it?
|
||||||
|
which cmake3 # version 3 may have this name
|
||||||
|
cmake --version # what specific version you have
|
||||||
|
|
||||||
|
On clusters or supercomputers which use environment modules to manage
|
||||||
|
software packages, do this:
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
module list # is a cmake module already loaded?
|
||||||
|
module avail # is a cmake module available?
|
||||||
|
module load cmake3 # load cmake module with appropriate name
|
||||||
|
|
||||||
|
Most Linux distributions offer pre-compiled cmake packages through
|
||||||
|
their package management system. If you do not have CMake or a new
|
||||||
|
enough version, you can download the latest version at
|
||||||
|
`https://cmake.org/download/ <https://cmake.org/download/>`_.
|
||||||
|
Instructions on how to install it on various platforms can be found
|
||||||
|
`on this page <https://cmake.org/install/>`_.
|
||||||
|
|
||||||
|
|
||||||
|
.. _lws: http://lammps.sandia.gov
|
||||||
|
.. _ld: Manual.html
|
||||||
|
.. _lc: Commands_all.html
|
||||||
120
doc/src/Build_development.rst
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
Development build options (CMake only)
|
||||||
|
======================================
|
||||||
|
|
||||||
|
The CMake build of LAMMPS has a few extra options which are useful during
|
||||||
|
development, testing or debugging.
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
.. _compilation:
|
||||||
|
|
||||||
|
Verify compilation flags
|
||||||
|
------------------------------------------
|
||||||
|
|
||||||
|
Sometimes it is necessary to verify the complete sequence of compilation flags
|
||||||
|
generated by the CMake build. To enable a more verbose output during
|
||||||
|
compilation you can use the following option.
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
-D CMAKE_VERBOSE_MAKEFILE=value # value = no (default) or yes
|
||||||
|
|
||||||
|
Another way of doing this without reconfiguration is calling make with variable VERBOSE set to 1:
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
make VERBOSE=1
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
.. _sanitizer:
|
||||||
|
|
||||||
|
Address, Undefined Behavior, and Thread Sanitizer Support
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Compilers such as GCC and Clang support generating binaries which use different
|
||||||
|
sanitizers to detect problems in code during run-time. They can detect `memory leaks <https://clang.llvm.org/docs/AddressSanitizer.html>`_,
|
||||||
|
code that runs into `undefined behavior <https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html>`_ of the
|
||||||
|
language and `data races <https://clang.llvm.org/docs/ThreadSanitizer.html>`_ in threaded code.
|
||||||
|
|
||||||
|
The following settings allow you enable these features if your compiler supports
|
||||||
|
it. Please note that they come with a performance hit. However, they are
|
||||||
|
usually faster than using tools like Valgrind.
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
-D ENABLE_SANITIZE_ADDRESS=value # enable Address Sanitizer, value = no (default) or yes
|
||||||
|
-D ENABLE_SANITIZE_UNDEFINED=value # enable Undefined Behaviour Sanitizer, value = no (default) or yes
|
||||||
|
-D ENABLE_SANITIZE_THREAD=value # enable Thread Sanitizer, value = no (default) or yes
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
.. _testing:
|
||||||
|
|
||||||
|
Code Coverage and Testing
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
We do extensive regression testing of the LAMMPS code base on a continuous
|
||||||
|
basis. Some of the logic to do this has been added to the CMake build so
|
||||||
|
developers can run the tests directly on their workstation.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
this is incomplete and only represents a small subset of tests that we run
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
-D ENABLE_TESTING=value # enable simple run tests of LAMMPS, value = no (default) or yes
|
||||||
|
-D LAMMPS_TESTING_SOURCE_DIR=path # path to lammps-testing repository (option if in custom location)
|
||||||
|
-D LAMMPS_TESTING_GIT_TAG=value # version of lammps-testing repository that should be used, value = master (default) or custom git commit or tag
|
||||||
|
|
||||||
|
If you enable testing in the CMake build it will create an additional target called "test". You can run them with:
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
make test
|
||||||
|
|
||||||
|
The test cases used come from the lammps-testing repository. They are
|
||||||
|
derivatives of the examples folder with some modifications to make the run
|
||||||
|
faster.
|
||||||
|
|
||||||
|
You can also collect code coverage metrics while running the tests by enabling
|
||||||
|
coverage support during building.
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
-D ENABLE_COVERAGE=value # enable coverage measurements, value = no (default) or yes
|
||||||
|
|
||||||
|
This will also add the following targets to generate coverage reports after running the LAMMPS executable:
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
make test # run tests first!
|
||||||
|
make gen_coverage_html # generate coverage report in HTML format
|
||||||
|
make gen_coverage_xml # generate coverage report in XML format
|
||||||
|
|
||||||
|
These reports require GCOVR to be installed. The easiest way to do this to install it via pip:
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
pip install git+https://github.com/gcovr/gcovr.git
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. _lws: http://lammps.sandia.gov
|
||||||
|
.. _ld: Manual.html
|
||||||
|
.. _lc: Commands_all.html
|
||||||
1399
doc/src/Build_extras.rst
Normal file
91
doc/src/Build_link.rst
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
Link LAMMPS as a library to another code
|
||||||
|
========================================
|
||||||
|
|
||||||
|
LAMMPS can be used as a library by another application, including
|
||||||
|
Python scripts. The files src/library.cpp and library.h define the
|
||||||
|
C-style API for using LAMMPS as a library. See the :doc:`Howto library <Howto_library>` doc page for a description of the
|
||||||
|
interface and how to extend it for your needs.
|
||||||
|
|
||||||
|
The :doc:`Build basics <Build_basics>` doc page explains how to build
|
||||||
|
LAMMPS as either a shared or static library. This results in one of
|
||||||
|
these 2 files:
|
||||||
|
|
||||||
|
liblammps.so # shared library
|
||||||
|
liblammps.a # static library
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
**Link with LAMMPS as a static library**\ :
|
||||||
|
|
||||||
|
The calling application can link to LAMMPS as a static library with a
|
||||||
|
link command like this:
|
||||||
|
|
||||||
|
g++ caller.o -L/home/sjplimp/lammps/src -llammps -o caller
|
||||||
|
|
||||||
|
The -L argument is the path to where the liblammps.a file is. The
|
||||||
|
-llammps argument is shorthand for the file liblammps.a.
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
**Link with LAMMPS as a shared library**\ :
|
||||||
|
|
||||||
|
If you wish to link to liblammps.so, the operating system finds shared
|
||||||
|
libraries to load at run-time using the environment variable
|
||||||
|
LD\_LIBRARY\_PATH. To enable this you can do one of two things:
|
||||||
|
|
||||||
|
(1) Copy the liblammps.so file to a location the system can find it,
|
||||||
|
such as /usr/local/lib. I.e. a directory already listed in your
|
||||||
|
LD\_LIBRARY\_PATH variable. You can type
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
printenv LD_LIBRARY_PATH
|
||||||
|
|
||||||
|
to see what directories are in that list.
|
||||||
|
|
||||||
|
(2) Add the LAMMPS src directory (or the directory you perform CMake
|
||||||
|
build in) to your LD\_LIBRARY\_PATH, so that the current version of the
|
||||||
|
shared library is always available to programs that use it.
|
||||||
|
|
||||||
|
For the csh or tcsh shells, you would add something like this to your
|
||||||
|
~/.cshrc file:
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/home/sjplimp/lammps/src
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
**Calling the LAMMPS library**\ :
|
||||||
|
|
||||||
|
Either flavor of library (static or shared) allows one or more LAMMPS
|
||||||
|
objects to be instantiated from the calling program.
|
||||||
|
|
||||||
|
When used from a C++ program, all of LAMMPS is wrapped in a LAMMPS\_NS
|
||||||
|
namespace; you can safely use any of its classes and methods from
|
||||||
|
within the calling code, as needed.
|
||||||
|
|
||||||
|
When used from a C or Fortran program, the library has a simple
|
||||||
|
C-style interface, provided in src/library.cpp and src/library.h.
|
||||||
|
|
||||||
|
See the :doc:`Python library <Python_library>` doc page for a
|
||||||
|
description of the Python interface to LAMMPS, which wraps the C-style
|
||||||
|
interface.
|
||||||
|
|
||||||
|
See the sample codes in examples/COUPLE/simple for examples of C++ and
|
||||||
|
C and Fortran codes that invoke LAMMPS through its library interface.
|
||||||
|
Other examples in the COUPLE directory use coupling ideas discussed on
|
||||||
|
the :doc:`Howto couple <Howto_couple>` doc page.
|
||||||
|
|
||||||
|
|
||||||
|
.. _lws: http://lammps.sandia.gov
|
||||||
|
.. _ld: Manual.html
|
||||||
|
.. _lc: Commands_all.html
|
||||||
94
doc/src/Build_make.rst
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
Build LAMMPS with make
|
||||||
|
======================
|
||||||
|
|
||||||
|
Building LAMMPS with traditional makefiles requires that you have a
|
||||||
|
Makefile."machine" file appropriate for your system in the src/MAKE,
|
||||||
|
src/MAKE/MACHINES, src/MAKE/OPTIONS, or src/MAKE/MINE directory (see
|
||||||
|
below). It can include various options for customizing your LAMMPS
|
||||||
|
build with a number of global compilation options and features.
|
||||||
|
|
||||||
|
To include LAMMPS packages (i.e. optional commands and styles) you
|
||||||
|
must install them first, as discussed on the :doc:`Build package <Build_package>` doc page. If the packages require
|
||||||
|
provided or external libraries, you must build those libraries before
|
||||||
|
building LAMMPS. Building :doc:`LAMMPS with CMake <Build_cmake>` can
|
||||||
|
automate all of this for many types of machines, especially
|
||||||
|
workstations, desktops and laptops, so we suggest you try it first.
|
||||||
|
|
||||||
|
These commands perform a default LAMMPS build, producing the LAMMPS
|
||||||
|
executable lmp\_serial or lmp\_mpi in lammps/src:
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
cd lammps/src
|
||||||
|
make serial # build a serial LAMMPS executable
|
||||||
|
make mpi # build a parallel LAMMPS executable with MPI
|
||||||
|
make # see a variety of make options
|
||||||
|
|
||||||
|
This initial compilation can take a long time, since LAMMPS is a large
|
||||||
|
project with many features. If your machine has multiple CPU cores
|
||||||
|
(most do these days), using a command like "make -jN mpi" (with N =
|
||||||
|
the number of available CPU cores) can be much faster. If you plan to
|
||||||
|
do development on LAMMPS or need to re-compile LAMMPS repeatedly, the
|
||||||
|
installation of the ccache (= Compiler Cache) software may speed up
|
||||||
|
compilation even more.
|
||||||
|
|
||||||
|
After the initial build, whenever you edit LAMMPS source files, or add
|
||||||
|
or remove new files to the source directory (e.g. by installing or
|
||||||
|
uninstalling packages), you must re-compile and relink the LAMMPS
|
||||||
|
executable with the same "make" command. This makefiles dependencies
|
||||||
|
should insure that only the subset of files that need to be are
|
||||||
|
re-compiled.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
When you build LAMMPS for the first time, a long list of \*.d
|
||||||
|
files will be printed out rapidly. This is not an error; it is the
|
||||||
|
Makefile doing its normal creation of dependencies.
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
The lammps/src/MAKE tree contains all the Makefile.machine files
|
||||||
|
included in the LAMMPS distribution. Typing "make machine" uses
|
||||||
|
Makefile.machine. Thus the "make serial" or "make mpi" lines above
|
||||||
|
use Makefile.serial and Makefile.mpi. Others are in these dirs:
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
OPTIONS # Makefiles which enable specific options
|
||||||
|
MACHINES # Makefiles for specific machines
|
||||||
|
MINE # customized Makefiles you create (you may need to create this folder)
|
||||||
|
|
||||||
|
Typing "make" lists all the available Makefile.machine files. A file
|
||||||
|
with the same name can appear in multiple folders (not a good idea).
|
||||||
|
The order the dirs are searched is as follows: src/MAKE/MINE,
|
||||||
|
src/MAKE, src/MAKE/OPTIONS, src/MAKE/MACHINES. This gives preference
|
||||||
|
to a customized file you put in src/MAKE/MINE.
|
||||||
|
|
||||||
|
Makefiles you may wish to try include these (some require a package
|
||||||
|
first be installed). Many of these include specific compiler flags
|
||||||
|
for optimized performance. Please note, however, that some of these
|
||||||
|
customized machine Makefile are contributed by users. Since both
|
||||||
|
compilers, OS configurations, and LAMMPS itself keep changing, their
|
||||||
|
settings may become outdated:
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
make mac # build serial LAMMPS on a Mac
|
||||||
|
make mac_mpi # build parallel LAMMPS on a Mac
|
||||||
|
make intel_cpu # build with the USER-INTEL package optimized for CPUs
|
||||||
|
make knl # build with the USER-INTEL package optimized for KNLs
|
||||||
|
make opt # build with the OPT package optimized for CPUs
|
||||||
|
make omp # build with the USER-OMP package optimized for OpenMP
|
||||||
|
make kokkos_omp # build with the KOKKOS package for OpenMP
|
||||||
|
make kokkos_cuda_mpi # build with the KOKKOS package for GPUs
|
||||||
|
make kokkos_phi # build with the KOKKOS package for KNLs
|
||||||
|
|
||||||
|
|
||||||
|
.. _lws: http://lammps.sandia.gov
|
||||||
|
.. _ld: Manual.html
|
||||||
|
.. _lc: Commands_all.html
|
||||||
265
doc/src/Build_package.rst
Normal file
@ -0,0 +1,265 @@
|
|||||||
|
Include packages in build
|
||||||
|
=========================
|
||||||
|
|
||||||
|
In LAMMPS, a package is a group of files that enable a specific set of
|
||||||
|
features. For example, force fields for molecular systems or
|
||||||
|
rigid-body constraints are in packages. In the src directory, each
|
||||||
|
package is a sub-directory with the package name in capital letters.
|
||||||
|
|
||||||
|
An overview of packages is given on the :doc:`Packages <Packages>` doc
|
||||||
|
page. Brief overviews of each package are on the :doc:`Packages details <Packages_details>` doc page.
|
||||||
|
|
||||||
|
When building LAMMPS, you can choose to include or exclude each
|
||||||
|
package. In general there is no need to include a package if you
|
||||||
|
never plan to use its features.
|
||||||
|
|
||||||
|
If you get a run-time error that a LAMMPS command or style is
|
||||||
|
"Unknown", it is often because the command is contained in a package,
|
||||||
|
and your build did not include that package. Running LAMMPS with the
|
||||||
|
:doc:`-h command-line switch <Run_options>` will print all the included
|
||||||
|
packages and commands for that executable.
|
||||||
|
|
||||||
|
For the majority of packages, if you follow the single step below to
|
||||||
|
include it, you can then build LAMMPS exactly the same as you would
|
||||||
|
without any packages installed. A few packages may require additional
|
||||||
|
steps, as explained on the :doc:`Build extras <Build_extras>` doc page.
|
||||||
|
|
||||||
|
These links take you to the extra instructions for those select
|
||||||
|
packages:
|
||||||
|
|
||||||
|
+----------------------------------+----------------------------------+------------------------------------+------------------------------+--------------------------------+--------------------------------------+
|
||||||
|
| :ref:`COMPRESS <compress>` | :ref:`GPU <gpu>` | :ref:`KIM <kim>` | :ref:`KOKKOS <kokkos>` | :ref:`LATTE <latte>` | :ref:`MESSAGE <message>` |
|
||||||
|
+----------------------------------+----------------------------------+------------------------------------+------------------------------+--------------------------------+--------------------------------------+
|
||||||
|
| :ref:`MSCG <mscg>` | :ref:`OPT <opt>` | :ref:`POEMS <poems>` | :ref:`PYTHON <python>` | :ref:`VORONOI <voronoi>` | :ref:`USER-ADIOS <user-adios>` |
|
||||||
|
+----------------------------------+----------------------------------+------------------------------------+------------------------------+--------------------------------+--------------------------------------+
|
||||||
|
| :ref:`USER-ATC <user-atc>` | :ref:`USER-AWPMD <user-awpmd>` | :ref:`USER-COLVARS <user-colvars>` | :ref:`USER-H5MD <user-h5md>` | :ref:`USER-INTEL <user-intel>` | :ref:`USER-MOLFILE <user-molfile>` |
|
||||||
|
+----------------------------------+----------------------------------+------------------------------------+------------------------------+--------------------------------+--------------------------------------+
|
||||||
|
| :ref:`USER-NETCDF <user-netcdf>` | :ref:`USER-PLUMED <user-plumed>` | :ref:`USER-OMP <user-omp>` | :ref:`USER-QMMM <user-qmmm>` | :ref:`USER-QUIP <user-quip>` | :ref:`USER-SCAFACOS <user-scafacos>` |
|
||||||
|
+----------------------------------+----------------------------------+------------------------------------+------------------------------+--------------------------------+--------------------------------------+
|
||||||
|
| :ref:`USER-SMD <user-smd>` | :ref:`USER-VTK <user-vtk>` | | | | |
|
||||||
|
+----------------------------------+----------------------------------+------------------------------------+------------------------------+--------------------------------+--------------------------------------+
|
||||||
|
|
||||||
|
The mechanism for including packages is simple but different for CMake
|
||||||
|
versus make.
|
||||||
|
|
||||||
|
**CMake variables**\ :
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
-D PKG_NAME=value # yes or no (default)
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
-D PKG_MANYBODY=yes
|
||||||
|
-D PKG_USER-INTEL=yes
|
||||||
|
|
||||||
|
All standard and user packages are included the same way. Note that
|
||||||
|
USER packages have a hyphen between USER and the rest of the package
|
||||||
|
name, not an underscore.
|
||||||
|
|
||||||
|
See the shortcut section below for how to install many packages at
|
||||||
|
once with CMake.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
If you toggle back and forth between building with CMake vs
|
||||||
|
make, no packages in the src directory can be installed when you
|
||||||
|
invoke cmake. CMake will give an error if that is not the case,
|
||||||
|
indicating how you can un-install all packages in the src dir.
|
||||||
|
|
||||||
|
**Traditional make**\ :
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
cd lammps/src
|
||||||
|
make ps # check which packages are currently installed
|
||||||
|
make yes-name # install a package with name
|
||||||
|
make no-name # un-install a package with name
|
||||||
|
make mpi # build LAMMPS with whatever packages are now installed
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
make no-rigid
|
||||||
|
make yes-user-intel
|
||||||
|
|
||||||
|
All standard and user packages are included the same way.
|
||||||
|
|
||||||
|
See the shortcut section below for how to install many packages at
|
||||||
|
once with make.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
You must always re-build LAMMPS (via make) after installing or
|
||||||
|
un-installing a package, for the action to take effect.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
You cannot install or un-install packages and build LAMMPS in a
|
||||||
|
single make command with multiple targets, e.g. make yes-colloid mpi.
|
||||||
|
This is because the make procedure creates a list of source files that
|
||||||
|
will be out-of-date for the build if the package configuration changes
|
||||||
|
within the same command. You can include or exclude multiple packages
|
||||||
|
in a single make command, e.g. make yes-colloid no-manybody.
|
||||||
|
|
||||||
|
**CMake and make info**\ :
|
||||||
|
|
||||||
|
Any package can be included or excluded in a LAMMPS build, independent
|
||||||
|
of all other packages. However, some packages include files derived
|
||||||
|
from files in other packages. LAMMPS checks for this and does the
|
||||||
|
right thing. Individual files are only included if their dependencies
|
||||||
|
are already included. Likewise, if a package is excluded, other files
|
||||||
|
dependent on that package are also excluded.
|
||||||
|
|
||||||
|
When you download a LAMMPS tarball or download LAMMPS source files
|
||||||
|
from the Git or SVN repositories, no packages are pre-installed in the
|
||||||
|
src directory.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
Prior to Aug 2018, if you downloaded a tarball, 3 packages
|
||||||
|
(KSPACE, MANYBODY, MOLECULE) were pre-installed in the src directory.
|
||||||
|
That is no longer the case, so that CMake will build as-is without the
|
||||||
|
need to un-install those packages.
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
**CMake shortcuts for installing many packages**\ :
|
||||||
|
|
||||||
|
Instead of specifying all the CMake options via the command-line,
|
||||||
|
CMake allows initializing the variable cache using script files. These
|
||||||
|
are regular CMake files which can manipulate and set variables, and
|
||||||
|
can also contain control flow constructs.
|
||||||
|
|
||||||
|
LAMMPS includes several of these files to define configuration
|
||||||
|
"presets", similar to the options that exist for the Make based
|
||||||
|
system. Using these files you can enable/disable portions of the
|
||||||
|
available packages in LAMMPS. If you need a custom preset you can take
|
||||||
|
one of them as a starting point and customize it to your needs.
|
||||||
|
|
||||||
|
+-------------------------------------------------------------+-----------------------------------------------------------+
|
||||||
|
| cmake -C ../cmake/presets/all\_on.cmake [OPTIONS] ../cmake | enable all packages |
|
||||||
|
+-------------------------------------------------------------+-----------------------------------------------------------+
|
||||||
|
| cmake -C ../cmake/presets/all\_off.cmake [OPTIONS] ../cmake | disable all packages |
|
||||||
|
+-------------------------------------------------------------+-----------------------------------------------------------+
|
||||||
|
| cmake -C ../cmake/presets/minimal.cmake [OPTIONS] ../cmake | enable just a few core packages |
|
||||||
|
+-------------------------------------------------------------+-----------------------------------------------------------+
|
||||||
|
| cmake -C ../cmake/presets/most.cmake [OPTIONS] ../cmake | enable most common packages |
|
||||||
|
+-------------------------------------------------------------+-----------------------------------------------------------+
|
||||||
|
| cmake -C ../cmake/presets/nolib.cmake [OPTIONS] ../cmake | disable packages that do require extra libraries or tools |
|
||||||
|
+-------------------------------------------------------------+-----------------------------------------------------------+
|
||||||
|
| cmake -C ../cmake/presets/clang.cmake [OPTIONS] ../cmake | change settings to use the Clang compilers by default |
|
||||||
|
+-------------------------------------------------------------+-----------------------------------------------------------+
|
||||||
|
| cmake -C ../cmake/presets/mingw.cmake [OPTIONS] ../cmake | enable all packages compatible with MinGW compilers |
|
||||||
|
+-------------------------------------------------------------+-----------------------------------------------------------+
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
Running cmake this way manipulates the variable cache in your
|
||||||
|
current build directory. You can combine multiple presets and options
|
||||||
|
in a single cmake run, or change settings incrementally by running
|
||||||
|
cmake with new flags.
|
||||||
|
|
||||||
|
**Example:**
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
# build LAMMPS with most commonly used packages, but then remove
|
||||||
|
# those requiring additional library or tools, but still enable
|
||||||
|
# GPU package and configure it for using CUDA. You can run.
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake -C ../cmake/presets/most.cmake -C ../cmake/presets/nolib.cmake -D PKG_GPU=on -D GPU_API=cuda ../cmake
|
||||||
|
|
||||||
|
# to add another package, say BODY to the previous configuration you can run:
|
||||||
|
cmake -D PKG_BODY=on .
|
||||||
|
|
||||||
|
# to reset the package selection from above to the default of no packages
|
||||||
|
# but leaving all other settings untouched. You can run:
|
||||||
|
cmake -C ../cmake/presets/no_all.cmake .
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
**Make shortcuts for installing many packages**\ :
|
||||||
|
|
||||||
|
The following commands are useful for managing package source files
|
||||||
|
and their installation when building LAMMPS via traditional make.
|
||||||
|
Just type "make" in lammps/src to see a one-line summary.
|
||||||
|
|
||||||
|
These commands install/un-install sets of packages:
|
||||||
|
|
||||||
|
+-----------------------------------+-----------------------------------------------------+
|
||||||
|
| make yes-all | install all packages |
|
||||||
|
+-----------------------------------+-----------------------------------------------------+
|
||||||
|
| make no-all | un-install all packages |
|
||||||
|
+-----------------------------------+-----------------------------------------------------+
|
||||||
|
| make yes-standard or make yes-std | install standard packages |
|
||||||
|
+-----------------------------------+-----------------------------------------------------+
|
||||||
|
| make no-standard or make no-std | un-install standard packages |
|
||||||
|
+-----------------------------------+-----------------------------------------------------+
|
||||||
|
| make yes-user | install user packages |
|
||||||
|
+-----------------------------------+-----------------------------------------------------+
|
||||||
|
| make no-user | un-install user packages |
|
||||||
|
+-----------------------------------+-----------------------------------------------------+
|
||||||
|
| make yes-lib | install packages that require extra libraries |
|
||||||
|
+-----------------------------------+-----------------------------------------------------+
|
||||||
|
| make no-lib | un-install packages that require extra libraries |
|
||||||
|
+-----------------------------------+-----------------------------------------------------+
|
||||||
|
| make yes-ext | install packages that require external libraries |
|
||||||
|
+-----------------------------------+-----------------------------------------------------+
|
||||||
|
| make no-ext | un-install packages that require external libraries |
|
||||||
|
+-----------------------------------+-----------------------------------------------------+
|
||||||
|
|
||||||
|
which install/un-install various sets of packages. Typing "make
|
||||||
|
package" will list all the these commands.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
Installing or un-installing a package works by simply copying
|
||||||
|
files back and forth between the main src directory and
|
||||||
|
sub-directories with the package name (e.g. src/KSPACE, src/USER-ATC),
|
||||||
|
so that the files are included or excluded when LAMMPS is built.
|
||||||
|
|
||||||
|
The following make commands help manage files that exist in both the
|
||||||
|
src directory and in package sub-directories. You do not normally
|
||||||
|
need to use these commands unless you are editing LAMMPS files or are
|
||||||
|
:doc:`installing a patch <Install_patch>` downloaded from the LAMMPS web
|
||||||
|
site.
|
||||||
|
|
||||||
|
Type "make package-status" or "make ps" to show which packages are
|
||||||
|
currently installed. For those that are installed, it will list any
|
||||||
|
files that are different in the src directory and package
|
||||||
|
sub-directory.
|
||||||
|
|
||||||
|
Type "make package-installed" or "make pi" to show which packages are
|
||||||
|
currently installed, without listing the status of packages that are
|
||||||
|
not installed.
|
||||||
|
|
||||||
|
Type "make package-update" or "make pu" to overwrite src files with
|
||||||
|
files from the package sub-directories if the package is installed.
|
||||||
|
It should be used after a :doc:`patch has been applied <Install_patch>`,
|
||||||
|
since patches only update the files in the package sub-directory, but
|
||||||
|
not the src files.
|
||||||
|
|
||||||
|
Type "make package-overwrite" to overwrite files in the package
|
||||||
|
sub-directories with src files.
|
||||||
|
|
||||||
|
Type "make package-diff" to list all differences between pairs of
|
||||||
|
files in both the src dir and a package dir.
|
||||||
|
|
||||||
|
|
||||||
|
.. _lws: http://lammps.sandia.gov
|
||||||
|
.. _ld: Manual.html
|
||||||
|
.. _lc: Commands_all.html
|
||||||
479
doc/src/Build_settings.rst
Normal file
@ -0,0 +1,479 @@
|
|||||||
|
Optional build settings
|
||||||
|
=======================
|
||||||
|
|
||||||
|
LAMMPS can be built with several optional settings. Each sub-section
|
||||||
|
explain how to do this for building both with CMake and make.
|
||||||
|
|
||||||
|
| :ref:`C++11 standard compliance test <cxx11>` when building all of LAMMPS
|
||||||
|
| :ref:`FFT library <fft>` for use with the :doc:`kspace\_style pppm <kspace_style>` command
|
||||||
|
| :ref:`Size of LAMMPS data types <size>`
|
||||||
|
| :ref:`Read or write compressed files <gzip>`
|
||||||
|
| :ref:`Output of JPG and PNG files <graphics>` via the :doc:`dump image <dump_image>` command
|
||||||
|
| :ref:`Output of movie files <graphics>` via the :doc:`dump\_movie <dump_image>` command
|
||||||
|
| :ref:`Memory allocation alignment <align>`
|
||||||
|
| :ref:`Workaround for long long integers <longlong>`
|
||||||
|
| :ref:`Error handling exceptions <exceptions>` when using LAMMPS as a library
|
||||||
|
|
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
.. _cxx11:
|
||||||
|
|
||||||
|
C++11 standard compliance test
|
||||||
|
------------------------------------------
|
||||||
|
|
||||||
|
The LAMMPS developers plan to transition to make the C++11 standard the
|
||||||
|
minimum requirement for compiling LAMMPS. Currently this only applies to
|
||||||
|
some packages like KOKKOS while the rest aims to be compatible with the C++98
|
||||||
|
standard. Most currently used compilers are compatible with C++11; some need
|
||||||
|
to set extra flags to switch. To determine the impact of requiring C++11,
|
||||||
|
we have added a simple compliance test to the source code, that will cause
|
||||||
|
the compilation to abort, if C++11 compliance is not available or enabled.
|
||||||
|
To bypass this check, you need to change a setting in the makefile or
|
||||||
|
when calling CMake.
|
||||||
|
|
||||||
|
**CMake variable**\ :
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
-D DISABLE_CXX11_REQUIREMENT=yes
|
||||||
|
|
||||||
|
You can set additional C++ compiler flags (beyond those selected by CMake)
|
||||||
|
through the CMAKE\_CXX\_FLAGS variable. Example for CentOS 7:
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
-D CMAKE_CXX_FLAGS="-O3 -g -fopenmp -DNDEBUG -std=c++11"
|
||||||
|
|
||||||
|
**Makefile.machine setting**\ :
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
LMP_INC = -DLAMMPS_CXX98
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
.. _fft:
|
||||||
|
|
||||||
|
FFT library
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
When the KSPACE package is included in a LAMMPS build, the
|
||||||
|
:doc:`kspace\_style pppm <kspace_style>` command performs 3d FFTs which
|
||||||
|
require use of an FFT library to compute 1d FFTs. The KISS FFT
|
||||||
|
library is included with LAMMPS but other libraries can be faster.
|
||||||
|
LAMMPS can use them if they are available on your system.
|
||||||
|
|
||||||
|
**CMake variables**\ :
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
-D FFT=value # FFTW3 or MKL or KISS, default is FFTW3 if found, else KISS
|
||||||
|
-D FFT_SINGLE=value # yes or no (default), no = double precision
|
||||||
|
-D FFT_PACK=value # array (default) or pointer or memcpy
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
The values for the FFT variable must be in upper-case. This is
|
||||||
|
an exception to the rule that all CMake variables can be specified
|
||||||
|
with lower-case values.
|
||||||
|
|
||||||
|
Usually these settings are all that is needed. If CMake cannot find
|
||||||
|
the FFT library, you can set these variables:
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
-D FFTW3_INCLUDE_DIRS=path # path to FFTW3 include files
|
||||||
|
-D FFTW3_LIBRARIES=path # path to FFTW3 libraries
|
||||||
|
-D MKL_INCLUDE_DIRS=path # ditto for Intel MKL library
|
||||||
|
-D MKL_LIBRARIES=path
|
||||||
|
|
||||||
|
**Makefile.machine settings**\ :
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
FFT_INC = -DFFT_FFTW3 # -DFFT_FFTW3, -DFFT_FFTW (same as -DFFT_FFTW3), -DFFT_MKL, or -DFFT_KISS
|
||||||
|
# default is KISS if not specified
|
||||||
|
FFT_INC = -DFFT_SINGLE # do not specify for double precision
|
||||||
|
FFT_INC = -DFFT_PACK_ARRAY # or -DFFT_PACK_POINTER or -DFFT_PACK_MEMCPY
|
||||||
|
|
||||||
|
# default is FFT\_PACK\_ARRAY if not specified
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
FFT_INC = -I/usr/local/include
|
||||||
|
FFT_PATH = -L/usr/local/lib
|
||||||
|
FFT_LIB = -lfftw3 # FFTW3 double precision
|
||||||
|
FFT_LIB = -lfftw3 -lfftw3f # FFTW3 single precision
|
||||||
|
FFT_LIB = -lmkl_intel_lp64 -lmkl_sequential -lmkl_core # MKL with Intel compiler
|
||||||
|
FFT_LIB = -lmkl_gf_lp64 -lmkl_sequential -lmkl_core # MKL with GNU compier
|
||||||
|
|
||||||
|
As with CMake, you do not need to set paths in FFT\_INC or FFT\_PATH, if
|
||||||
|
make can find the FFT header and library files. You must specify
|
||||||
|
FFT\_LIB with the appropriate FFT libraries to include in the link.
|
||||||
|
|
||||||
|
**CMake and make info**\ :
|
||||||
|
|
||||||
|
The `KISS FFT library <http://kissfft.sf.net>`_ is included in the LAMMPS
|
||||||
|
distribution. It is portable across all platforms. Depending on the
|
||||||
|
size of the FFTs and the number of processors used, the other
|
||||||
|
libraries listed here can be faster.
|
||||||
|
|
||||||
|
However, note that long-range Coulombics are only a portion of the
|
||||||
|
per-timestep CPU cost, FFTs are only a portion of long-range
|
||||||
|
Coulombics, and 1d FFTs are only a portion of the FFT cost (parallel
|
||||||
|
communication can be costly). A breakdown of these timings is printed
|
||||||
|
to the screen at the end of a run using the :doc:`kspace\_style pppm <kspace_style>` command. The :doc:`Run output <Run_output>`
|
||||||
|
doc page gives more details.
|
||||||
|
|
||||||
|
FFTW is a fast, portable FFT library that should also work on any
|
||||||
|
platform and can be faster than the KISS FFT library. You can
|
||||||
|
download it from `www.fftw.org <http://www.fftw.org>`_. LAMMPS requires
|
||||||
|
version 3.X; the legacy version 2.1.X is no longer supported.
|
||||||
|
|
||||||
|
Building FFTW for your box should be as simple as ./configure; make;
|
||||||
|
make install. The install command typically requires root privileges
|
||||||
|
(e.g. invoke it via sudo), unless you specify a local directory with
|
||||||
|
the "--prefix" option of configure. Type "./configure --help" to see
|
||||||
|
various options.
|
||||||
|
|
||||||
|
The Intel MKL math library is part of the Intel compiler suite. It
|
||||||
|
can be used with the Intel or GNU compiler (see FFT\_LIB setting above).
|
||||||
|
|
||||||
|
Performing 3d FFTs in parallel can be time consuming due to data
|
||||||
|
access and required communication. This cost can be reduced by
|
||||||
|
performing single-precision FFTs instead of double precision. Single
|
||||||
|
precision means the real and imaginary parts of a complex datum are
|
||||||
|
4-byte floats. Double precision means they are 8-byte doubles. Note
|
||||||
|
that Fourier transform and related PPPM operations are somewhat less
|
||||||
|
sensitive to floating point truncation errors and thus the resulting
|
||||||
|
error is less than the difference in precision. Using the -DFFT\_SINGLE
|
||||||
|
setting trades off a little accuracy for reduced memory use and
|
||||||
|
parallel communication costs for transposing 3d FFT data.
|
||||||
|
|
||||||
|
When using -DFFT\_SINGLE with FFTW3 you may need to build the FFTW
|
||||||
|
library a second time with support for single-precision.
|
||||||
|
|
||||||
|
For FFTW3, do the following, which should produce the additional
|
||||||
|
library libfftw3f.a
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
make clean
|
||||||
|
./configure --enable-single; make; make install
|
||||||
|
|
||||||
|
Performing 3d FFTs requires communication to transpose the 3d FFT
|
||||||
|
grid. The data packing/unpacking for this can be done in one of 3
|
||||||
|
modes (ARRAY, POINTER, MEMCPY) as set by the FFT\_PACK syntax above.
|
||||||
|
Depending on the machine, the size of the FFT grid, the number of
|
||||||
|
processors used, one option may be slightly faster. The default is
|
||||||
|
ARRAY mode.
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
.. _size:
|
||||||
|
|
||||||
|
Size of LAMMPS data types
|
||||||
|
------------------------------------
|
||||||
|
|
||||||
|
LAMMPS has a few integer data types which can be defined as 4-byte or
|
||||||
|
8-byte integers. The default setting of "smallbig" is almost always
|
||||||
|
adequate.
|
||||||
|
|
||||||
|
**CMake variable**\ :
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
-D LAMMPS_SIZES=value # smallbig (default) or bigbig or smallsmall
|
||||||
|
|
||||||
|
**Makefile.machine setting**\ :
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
LMP_INC = -DLAMMPS_SMALLBIG # or -DLAMMPS_BIGBIG or -DLAMMPS_SMALLSMALL
|
||||||
|
|
||||||
|
# default is LAMMPS\_SMALLBIG if not specified
|
||||||
|
**CMake and make info**\ :
|
||||||
|
|
||||||
|
The default "smallbig" setting allows for simulations with:
|
||||||
|
|
||||||
|
* total atom count = 2\^63 atoms (about 9e18)
|
||||||
|
* total timesteps = 2\^63 (about 9e18)
|
||||||
|
* atom IDs = 2\^31 (about 2 billion)
|
||||||
|
* image flags = roll over at 512
|
||||||
|
|
||||||
|
The "bigbig" setting increases the latter two limits. It allows for:
|
||||||
|
|
||||||
|
* total atom count = 2\^63 atoms (about 9e18)
|
||||||
|
* total timesteps = 2\^63 (about 9e18)
|
||||||
|
* atom IDs = 2\^63 (about 9e18)
|
||||||
|
* image flags = roll over at about 1 million (2\^20)
|
||||||
|
|
||||||
|
The "smallsmall" setting is only needed if your machine does not
|
||||||
|
support 8-byte integers. It allows for:
|
||||||
|
|
||||||
|
* total atom count = 2\^31 atoms (about 2 billion)
|
||||||
|
* total timesteps = 2\^31 (about 2 billion)
|
||||||
|
* atom IDs = 2\^31 (about 2 billion)
|
||||||
|
* image flags = roll over at 512 (2\^9)
|
||||||
|
|
||||||
|
Atom IDs are not required for atomic systems which do not store bond
|
||||||
|
topology information, though IDs are enabled by default. The
|
||||||
|
:doc:`atom\_modify id no <atom_modify>` command will turn them off. Atom
|
||||||
|
IDs are required for molecular systems with bond topology (bonds,
|
||||||
|
angles, dihedrals, etc). Thus if you model a molecular system with
|
||||||
|
more than 2 billion atoms, you need the "bigbig" setting.
|
||||||
|
|
||||||
|
Image flags store 3 values per atom which count the number of times an
|
||||||
|
atom has moved through the periodic box in each dimension. See the
|
||||||
|
:doc:`dump <dump>` doc page for a discussion. If an atom moves through
|
||||||
|
the periodic box more than this limit, the value will "roll over",
|
||||||
|
e.g. from 511 to -512, which can cause diagnostics like the
|
||||||
|
mean-squared displacement, as calculated by the :doc:`compute msd <compute_msd>` command, to be faulty.
|
||||||
|
|
||||||
|
Note that the USER-ATC package and the USER-INTEL package are currently
|
||||||
|
not compatible with the "bigbig" setting. Also, there are limitations
|
||||||
|
when using the library interface. Some functions with known issues
|
||||||
|
have been replaced by dummy calls printing a corresponding error rather
|
||||||
|
than crashing randomly or corrupting data.
|
||||||
|
|
||||||
|
Also note that the GPU package requires its lib/gpu library to be
|
||||||
|
compiled with the same size setting, or the link will fail. A CMake
|
||||||
|
build does this automatically. When building with make, the setting
|
||||||
|
in whichever lib/gpu/Makefile is used must be the same as above.
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
.. _graphics:
|
||||||
|
|
||||||
|
Output of JPG, PNG, and movie files
|
||||||
|
--------------------------------------------------
|
||||||
|
|
||||||
|
The :doc:`dump image <dump_image>` command has options to output JPEG or
|
||||||
|
PNG image files. Likewise the :doc:`dump movie <dump_image>` command
|
||||||
|
outputs movie files in MPEG format. Using these options requires the
|
||||||
|
following settings:
|
||||||
|
|
||||||
|
**CMake variables**\ :
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
-D WITH_JPEG=value # yes or no
|
||||||
|
# default = yes if CMake finds JPEG files, else no
|
||||||
|
-D WITH_PNG=value # yes or no
|
||||||
|
# default = yes if CMake finds PNG and ZLIB files, else no
|
||||||
|
-D WITH_FFMPEG=value # yes or no
|
||||||
|
# default = yes if CMake can find ffmpeg, else no
|
||||||
|
|
||||||
|
Usually these settings are all that is needed. If CMake cannot find
|
||||||
|
the graphics header, library, executable files, you can set these
|
||||||
|
variables:
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
-D JPEG_INCLUDE_DIR=path # path to jpeglib.h header file
|
||||||
|
-D JPEG_LIBRARIES=path # path to libjpeg.a (.so) file
|
||||||
|
-D PNG_INCLUDE_DIR=path # path to png.h header file
|
||||||
|
-D PNG_LIBRARIES=path # path to libpng.a (.so) file
|
||||||
|
-D ZLIB_INCLUDE_DIR=path # path to zlib.h header file
|
||||||
|
-D ZLIB_LIBRARIES=path # path to libz.a (.so) file
|
||||||
|
-D FFMPEG_EXECUTABLE=path # path to ffmpeg executable
|
||||||
|
|
||||||
|
**Makefile.machine settings**\ :
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
LMP_INC = -DLAMMPS_JPEG
|
||||||
|
LMP_INC = -DLAMMPS_PNG
|
||||||
|
LMP_INC = -DLAMMPS_FFMPEG
|
||||||
|
|
||||||
|
JPG_INC = -I/usr/local/include # path to jpeglib.h, png.h, zlib.h header files if make cannot find them
|
||||||
|
JPG_PATH = -L/usr/lib # paths to libjpeg.a, libpng.a, libz.a (.so) files if make cannot find them
|
||||||
|
JPG_LIB = -ljpeg -lpng -lz # library names
|
||||||
|
|
||||||
|
As with CMake, you do not need to set JPG\_INC or JPG\_PATH, if make can
|
||||||
|
find the graphics header and library files. You must specify JPG\_LIB
|
||||||
|
with a list of graphics libraries to include in the link. You must
|
||||||
|
insure ffmpeg is in a directory where LAMMPS can find it at runtime,
|
||||||
|
i.e. a dir in your PATH environment variable.
|
||||||
|
|
||||||
|
**CMake and make info**\ :
|
||||||
|
|
||||||
|
Using ffmpeg to output movie files requires that your machine
|
||||||
|
supports the "popen" function in the standard runtime library.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
On some clusters with high-speed networks, using the fork()
|
||||||
|
library calls (required by popen()) can interfere with the fast
|
||||||
|
communication library and lead to simulations using ffmpeg to hang or
|
||||||
|
crash.
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
.. _gzip:
|
||||||
|
|
||||||
|
Read or write compressed files
|
||||||
|
-----------------------------------------
|
||||||
|
|
||||||
|
If this option is enabled, large files can be read or written with
|
||||||
|
gzip compression by several LAMMPS commands, including
|
||||||
|
:doc:`read\_data <read_data>`, :doc:`rerun <rerun>`, and :doc:`dump <dump>`.
|
||||||
|
|
||||||
|
**CMake variables**\ :
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
-D WITH_GZIP=value # yes or no
|
||||||
|
# default is yes if CMake can find gzip, else no
|
||||||
|
-D GZIP_EXECUTABLE=path # path to gzip executable if CMake cannot find it
|
||||||
|
|
||||||
|
**Makefile.machine setting**\ :
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
LMP_INC = -DLAMMPS_GZIP
|
||||||
|
|
||||||
|
**CMake and make info**\ :
|
||||||
|
|
||||||
|
This option requires that your machine supports the "popen()" function
|
||||||
|
in the standard runtime library and that a gzip executable can be
|
||||||
|
found by LAMMPS during a run.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
On some clusters with high-speed networks, using the fork()
|
||||||
|
library calls (required by popen()) can interfere with the fast
|
||||||
|
communication library and lead to simulations using compressed output
|
||||||
|
or input to hang or crash. For selected operations, compressed file
|
||||||
|
I/O is also available using a compression library instead, which is
|
||||||
|
what the :ref:`COMPRESS package <PKG-COMPRESS>` enables.
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
.. _align:
|
||||||
|
|
||||||
|
Memory allocation alignment
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
This setting enables the use of the posix\_memalign() call instead of
|
||||||
|
malloc() when LAMMPS allocates large chunks or memory. This can make
|
||||||
|
vector instructions on CPUs more efficient, if dynamically allocated
|
||||||
|
memory is aligned on larger-than-default byte boundaries.
|
||||||
|
On most current systems, the malloc() implementation returns
|
||||||
|
pointers that are aligned to 16-byte boundaries. Using SSE vector
|
||||||
|
instructions efficiently, however, requires memory blocks being
|
||||||
|
aligned on 64-byte boundaries.
|
||||||
|
|
||||||
|
**CMake variable**\ :
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
-D LAMMPS_MEMALIGN=value # 0, 8, 16, 32, 64 (default)
|
||||||
|
|
||||||
|
Use a LAMMPS\_MEMALIGN value of 0 to disable using posix\_memalign()
|
||||||
|
and revert to using the malloc() C-library function instead. When
|
||||||
|
compiling LAMMPS for Windows systems, malloc() will always be used
|
||||||
|
and this setting ignored.
|
||||||
|
|
||||||
|
**Makefile.machine setting**\ :
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
LMP_INC = -DLAMMPS_MEMALIGN=value # 8, 16, 32, 64
|
||||||
|
|
||||||
|
Do not set -DLAMMPS\_MEMALIGN, if you want to have memory allocated
|
||||||
|
with the malloc() function call instead. -DLAMMPS\_MEMALIGN **cannot**
|
||||||
|
be used on Windows, as it does use different function calls for
|
||||||
|
allocating aligned memory, that are not compatible with how LAMMPS
|
||||||
|
manages its dynamical memory.
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
.. _longlong:
|
||||||
|
|
||||||
|
Workaround for long long integers
|
||||||
|
------------------------------------------------
|
||||||
|
|
||||||
|
If your system or MPI version does not recognize "long long" data
|
||||||
|
types, the following setting will be needed. It converts "long long"
|
||||||
|
to a "long" data type, which should be the desired 8-byte integer on
|
||||||
|
those systems:
|
||||||
|
|
||||||
|
**CMake variable**\ :
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
-D LAMMPS_LONGLONG_TO_LONG=value # yes or no (default)
|
||||||
|
|
||||||
|
**Makefile.machine setting**\ :
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
LMP_INC = -DLAMMPS_LONGLONG_TO_LONG
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
.. _exceptions:
|
||||||
|
|
||||||
|
Exception handling when using LAMMPS as a library
|
||||||
|
------------------------------------------------------------------
|
||||||
|
|
||||||
|
This setting is useful when external codes drive LAMMPS as a library.
|
||||||
|
With this option enabled LAMMPS errors do not kill the caller.
|
||||||
|
Instead, the call stack is unwound and control returns to the caller,
|
||||||
|
e.g. to Python.
|
||||||
|
|
||||||
|
**CMake variable**\ :
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
-D LAMMPS_EXCEPTIONS=value # yes or no (default)
|
||||||
|
|
||||||
|
**Makefile.machine setting**\ :
|
||||||
|
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
LMP_INC = -DLAMMPS_EXCEPTIONS
|
||||||
|
|
||||||
|
|
||||||
|
.. _lws: http://lammps.sandia.gov
|
||||||
|
.. _ld: Manual.html
|
||||||
|
.. _lc: Commands_all.html
|
||||||
111
doc/src/Build_windows.rst
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
Notes for building LAMMPS on Windows
|
||||||
|
====================================
|
||||||
|
|
||||||
|
* :ref:`General remarks <generic>`
|
||||||
|
* :ref:`Running Linux on Windows <linux>`
|
||||||
|
* :ref:`Using GNU GCC ported to Windows <gnu>`
|
||||||
|
* :ref:`Using a cross-compiler <cross>`
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
.. _generic:
|
||||||
|
|
||||||
|
General remarks
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
LAMMPS is developed and tested primarily on Linux machines. The vast
|
||||||
|
majority of HPC clusters and supercomputers today runs on Linux as well.
|
||||||
|
Thus portability to other platforms is desired, but not always achieved.
|
||||||
|
The LAMMPS developers strongly rely on LAMMPS users giving feedback and
|
||||||
|
providing assistance in resolving portability issues. This particularly
|
||||||
|
true for compiling LAMMPS on Windows, since this platform has significant
|
||||||
|
differences with some low-level functionality.
|
||||||
|
|
||||||
|
.. _linux:
|
||||||
|
|
||||||
|
Running Linux on Windows
|
||||||
|
------------------------------------
|
||||||
|
|
||||||
|
So before trying to build LAMMPS on Windows, please consider if using
|
||||||
|
the pre-compiled Windows binary packages are sufficient for your needs
|
||||||
|
(as an aside, those packages themselves are build on a Linux machine
|
||||||
|
using cross-compilers). If it is necessary for your to compile LAMMPS
|
||||||
|
on a Windows machine (e.g. because it is your main desktop), please also
|
||||||
|
consider using a virtual machine software and run a Linux virtual machine,
|
||||||
|
or - if have a recently updated Windows 10 installation - consider using
|
||||||
|
the Windows subsystem for Linux, which allows to run a bash shell from
|
||||||
|
Ubuntu and from there on, you can pretty much use that shell like you
|
||||||
|
are running on an Ubuntu Linux machine (e.g. installing software via
|
||||||
|
apt-get). For more details on that, please see :doc:`this tutorial <Howto_bash>`
|
||||||
|
|
||||||
|
.. _gnu:
|
||||||
|
|
||||||
|
Using GNU GCC ported to Windows
|
||||||
|
-----------------------------------------
|
||||||
|
|
||||||
|
One option for compiling LAMMPS on Windows natively, that has been known
|
||||||
|
to work in the past is to install a bash shell, unix shell utilities,
|
||||||
|
perl, GNU make, and a GNU compiler ported to Windows. The Cygwin package
|
||||||
|
provides a unix/linux interface to low-level Windows functions, so LAMMPS
|
||||||
|
can be compiled on Windows. The necessary (minor) modifications to LAMMPS
|
||||||
|
are included, but may not always up-to-date for recently added functionality
|
||||||
|
and the corresponding new code. A machine makefile for using cygwin for
|
||||||
|
the old build system is provided. Using CMake for this mode of compilation
|
||||||
|
is untested and not likely to work.
|
||||||
|
|
||||||
|
When compiling for Windows do **not** set the -DLAMMPS\_MEMALIGN define
|
||||||
|
in the LMP\_INC makefile variable and add -lwsock32 -lpsapi to the linker
|
||||||
|
flags in LIB makefile variable. Try adding -static-libgcc or -static or
|
||||||
|
both to the linker flags when your resulting LAMMPS Windows executable
|
||||||
|
complains about missing .dll files. The CMake configuration should set
|
||||||
|
this up automatically, but is untested.
|
||||||
|
|
||||||
|
In case of problems, you are recommended to contact somebody with
|
||||||
|
experience in using cygwin. If you do come across portability problems
|
||||||
|
requiring changes to the LAMMPS source code, or figure out corrections
|
||||||
|
yourself, please report them on the lammps-users mailing list, or file
|
||||||
|
them as an issue or pull request on the LAMMPS GitHub project.
|
||||||
|
|
||||||
|
.. _cross:
|
||||||
|
|
||||||
|
Using a cross-compiler
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
If you need to provide custom LAMMPS binaries for Windows, but do not
|
||||||
|
need to do the compilation on Windows, please consider using a Linux
|
||||||
|
to Windows cross-compiler. This is how currently the Windows binary
|
||||||
|
packages are created by the LAMMPS developers. Because of that, this is
|
||||||
|
probably the currently best tested and supported way to build LAMMPS
|
||||||
|
executables for Windows. There are makefiles provided for the
|
||||||
|
traditional build system, but CMake has also been successfully tested
|
||||||
|
using the mingw32-cmake and mingw64-cmake wrappers that are bundled
|
||||||
|
with the cross-compiler environment on Fedora machines. A CMake preset
|
||||||
|
selecting all packages compatible with this cross-compilation build
|
||||||
|
is provided. You likely need to disable the GPU package unless you
|
||||||
|
download and install the contents of the pre-compiled `OpenCL ICD loader library <https://download.lammps.org/thirdparty/opencl-win-devel.tar.gz>`_
|
||||||
|
into your MinGW64 cross-compiler environment. The cross-compilation
|
||||||
|
currently will only produce non-MPI serial binaries.
|
||||||
|
|
||||||
|
Please keep in mind, though, that this only applies to compiling LAMMPS.
|
||||||
|
Whether the resulting binaries do work correctly is no tested by the
|
||||||
|
LAMMPS developers. We instead rely on the feedback of the users
|
||||||
|
of these pre-compiled LAMMPS packages for Windows. We will try to resolve
|
||||||
|
issues to the best of our abilities if we become aware of them. However
|
||||||
|
this is subject to time constraints and focus on HPC platforms.
|
||||||
|
|
||||||
|
.. _native:
|
||||||
|
|
||||||
|
Native Visual C++ support
|
||||||
|
--------------------------------------
|
||||||
|
|
||||||
|
Support for the Visual C++ compilers is currently not available. The
|
||||||
|
CMake build system is capable of creating suitable a Visual Studio
|
||||||
|
style build environment, but the LAMMPS code itself is not fully ported
|
||||||
|
to support Visual C++. Volunteers to take on this task are welcome.
|
||||||
|
|
||||||
|
|
||||||
|
.. _lws: http://lammps.sandia.gov
|
||||||
|
.. _ld: Manual.html
|
||||||
|
.. _lc: Commands_all.html
|
||||||
34
doc/src/Commands.rst
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
Commands
|
||||||
|
********
|
||||||
|
|
||||||
|
These pages describe how a LAMMPS input script is formatted and the
|
||||||
|
commands in it are used to define a LAMMPS simulation.
|
||||||
|
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
Commands_input
|
||||||
|
Commands_parse
|
||||||
|
Commands_structure
|
||||||
|
Commands_category
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
Commands_all
|
||||||
|
Commands_fix
|
||||||
|
Commands_compute
|
||||||
|
Commands_pair
|
||||||
|
Commands_bond
|
||||||
|
Commands_kspace
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
Commands_removed
|
||||||
|
|
||||||
|
|
||||||
|
.. _lws: http://lammps.sandia.gov
|
||||||
|
.. _ld: Manual.html
|
||||||
|
.. _lc: Commands_all.html
|
||||||
59
doc/src/Commands_all.rst
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
+----------------------------------------+------------------------------------+------------------------------------------+
|
||||||
|
| :doc:`General commands <Commands_all>` | :doc:`Fix styles <Commands_fix>` | :doc:`Compute styles <Commands_compute>` |
|
||||||
|
+----------------------------------------+------------------------------------+------------------------------------------+
|
||||||
|
| :doc:`Pair styles <Commands_pair>` | :doc:`Bond styles <Commands_bond>` | :ref:`Angle styles <angle>` |
|
||||||
|
+----------------------------------------+------------------------------------+------------------------------------------+
|
||||||
|
| :ref:`Dihedral styles <dihedral>` | :ref:`Improper styles <improper>` | :doc:`KSpace styles <Commands_kspace>` |
|
||||||
|
+----------------------------------------+------------------------------------+------------------------------------------+
|
||||||
|
|
||||||
|
General commands
|
||||||
|
================
|
||||||
|
|
||||||
|
An alphabetic list of all general LAMMPS commands.
|
||||||
|
|
||||||
|
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
|
||||||
|
| :doc:`angle\_coeff <angle_coeff>` | :doc:`angle\_style <angle_style>` | :doc:`atom\_modify <atom_modify>` | :doc:`atom\_style <atom_style>` | :doc:`balance <balance>` | :doc:`bond\_coeff <bond_coeff>` |
|
||||||
|
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
|
||||||
|
| :doc:`bond\_style <bond_style>` | :doc:`bond\_write <bond_write>` | :doc:`boundary <boundary>` | :doc:`box <box>` | :doc:`change\_box <change_box>` | :doc:`clear <clear>` |
|
||||||
|
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
|
||||||
|
| :doc:`comm\_modify <comm_modify>` | :doc:`comm\_style <comm_style>` | :doc:`compute <compute>` | :doc:`compute\_modify <compute_modify>` | :doc:`create\_atoms <create_atoms>` | :doc:`create\_bonds <create_bonds>` |
|
||||||
|
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
|
||||||
|
| :doc:`create\_box <create_box>` | :doc:`delete\_atoms <delete_atoms>` | :doc:`delete\_bonds <delete_bonds>` | :doc:`dielectric <dielectric>` | :doc:`dihedral\_coeff <dihedral_coeff>` | :doc:`dihedral\_style <dihedral_style>` |
|
||||||
|
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
|
||||||
|
| :doc:`dimension <dimension>` | :doc:`displace\_atoms <displace_atoms>` | :doc:`dump <dump>` | :doc:`dump adios <dump_adios>` | :doc:`dump image <dump_image>` | :doc:`dump movie <dump_image>` |
|
||||||
|
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
|
||||||
|
| :doc:`dump netcdf <dump_netcdf>` | :doc:`dump netcdf/mpiio <dump_netcdf>` | :doc:`dump vtk <dump_vtk>` | :doc:`dump\_modify <dump_modify>` | :doc:`dynamical\_matrix <dynamical_matrix>` | :doc:`echo <echo>` |
|
||||||
|
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
|
||||||
|
| :doc:`fix <fix>` | :doc:`fix\_modify <fix_modify>` | :doc:`group <group>` | :doc:`group2ndx <group2ndx>` | :doc:`hyper <hyper>` | :doc:`if <if>` |
|
||||||
|
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
|
||||||
|
| :doc:`info <info>` | :doc:`improper\_coeff <improper_coeff>` | :doc:`improper\_style <improper_style>` | :doc:`include <include>` | :doc:`jump <jump>` | :doc:`kim\_init <kim_commands>` |
|
||||||
|
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
|
||||||
|
| :doc:`kim\_interactions <kim_commands>` | :doc:`kim\_query <kim_commands>` | :doc:`kspace\_modify <kspace_modify>` | :doc:`kspace\_style <kspace_style>` | :doc:`label <label>` | :doc:`lattice <lattice>` |
|
||||||
|
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
|
||||||
|
| :doc:`log <log>` | :doc:`mass <mass>` | :doc:`message <message>` | :doc:`minimize <minimize>` | :doc:`min\_modify <min_modify>` | :doc:`min\_style <min_style>` |
|
||||||
|
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
|
||||||
|
| :doc:`min\_style spin <min_spin>` | :doc:`molecule <molecule>` | :doc:`ndx2group <group2ndx>` | :doc:`neb <neb>` | :doc:`neb/spin <neb_spin>` | :doc:`neigh\_modify <neigh_modify>` |
|
||||||
|
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
|
||||||
|
| :doc:`neighbor <neighbor>` | :doc:`newton <newton>` | :doc:`next <next>` | :doc:`package <package>` | :doc:`pair\_coeff <pair_coeff>` | :doc:`pair\_modify <pair_modify>` |
|
||||||
|
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
|
||||||
|
| :doc:`pair\_style <pair_style>` | :doc:`pair\_write <pair_write>` | :doc:`partition <partition>` | :doc:`prd <prd>` | :doc:`print <print>` | :doc:`processors <processors>` |
|
||||||
|
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
|
||||||
|
| :doc:`python <python>` | :doc:`quit <quit>` | :doc:`read\_data <read_data>` | :doc:`read\_dump <read_dump>` | :doc:`read\_restart <read_restart>` | :doc:`region <region>` |
|
||||||
|
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
|
||||||
|
| :doc:`replicate <replicate>` | :doc:`rerun <rerun>` | :doc:`reset\_ids <reset_ids>` | :doc:`reset\_timestep <reset_timestep>` | :doc:`restart <restart>` | :doc:`run <run>` |
|
||||||
|
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
|
||||||
|
| :doc:`run\_style <run_style>` | :doc:`server <server>` | :doc:`set <set>` | :doc:`shell <shell>` | :doc:`special\_bonds <special_bonds>` | :doc:`suffix <suffix>` |
|
||||||
|
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
|
||||||
|
| :doc:`tad <tad>` | :doc:`temper <temper>` | :doc:`temper/grem <temper_grem>` | :doc:`temper/npt <temper_npt>` | :doc:`thermo <thermo>` | :doc:`thermo\_modify <thermo_modify>` |
|
||||||
|
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
|
||||||
|
| :doc:`thermo\_style <thermo_style>` | :doc:`third\_order <third_order>` | :doc:`timer <timer>` | :doc:`timestep <timestep>` | :doc:`uncompute <uncompute>` | :doc:`undump <undump>` |
|
||||||
|
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
|
||||||
|
| :doc:`unfix <unfix>` | :doc:`units <units>` | :doc:`variable <variable>` | :doc:`velocity <velocity>` | :doc:`write\_coeff <write_coeff>` | :doc:`write\_data <write_data>` |
|
||||||
|
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
|
||||||
|
| :doc:`write\_dump <write_dump>` | :doc:`write\_restart <write_restart>` | | | | |
|
||||||
|
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
|
||||||
|
|
||||||
|
|
||||||
|
.. _lws: http://lammps.sandia.gov
|
||||||
|
.. _ld: Manual.html
|
||||||
|
.. _lc: Commands_all.html
|
||||||
112
doc/src/Commands_bond.rst
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
.. _bond:
|
||||||
|
|
||||||
|
Bond\_style potentials
|
||||||
|
=================================
|
||||||
|
|
||||||
|
All LAMMPS :doc:`bond\_style <bond_style>` commands. Some styles have
|
||||||
|
accelerated versions. This is indicated by additional letters in
|
||||||
|
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t =
|
||||||
|
OPT.
|
||||||
|
|
||||||
|
+---------------------------------------+-------------------------------------------------+---------------------------------------------------------+---------------------------------+
|
||||||
|
| :doc:`none <bond_none>` | :doc:`zero <bond_zero>` | :doc:`hybrid <bond_hybrid>` | |
|
||||||
|
+---------------------------------------+-------------------------------------------------+---------------------------------------------------------+---------------------------------+
|
||||||
|
| | | | |
|
||||||
|
+---------------------------------------+-------------------------------------------------+---------------------------------------------------------+---------------------------------+
|
||||||
|
| :doc:`class2 (ko) <bond_class2>` | :doc:`fene (iko) <bond_fene>` | :doc:`fene/expand (o) <bond_fene_expand>` | :doc:`gromos (o) <bond_gromos>` |
|
||||||
|
+---------------------------------------+-------------------------------------------------+---------------------------------------------------------+---------------------------------+
|
||||||
|
| :doc:`harmonic (iko) <bond_harmonic>` | :doc:`harmonic/shift (o) <bond_harmonic_shift>` | :doc:`harmonic/shift/cut (o) <bond_harmonic_shift_cut>` | :doc:`mm3 <bond_mm3>` |
|
||||||
|
+---------------------------------------+-------------------------------------------------+---------------------------------------------------------+---------------------------------+
|
||||||
|
| :doc:`morse (o) <bond_morse>` | :doc:`nonlinear (o) <bond_nonlinear>` | :doc:`oxdna/fene <bond_oxdna>` | :doc:`oxdna2/fene <bond_oxdna>` |
|
||||||
|
+---------------------------------------+-------------------------------------------------+---------------------------------------------------------+---------------------------------+
|
||||||
|
| :doc:`quartic (o) <bond_quartic>` | :doc:`table (o) <bond_table>` | | |
|
||||||
|
+---------------------------------------+-------------------------------------------------+---------------------------------------------------------+---------------------------------+
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
.. _angle:
|
||||||
|
|
||||||
|
Angle\_style potentials
|
||||||
|
===================================
|
||||||
|
|
||||||
|
All LAMMPS :doc:`angle\_style <angle_style>` commands. Some styles have
|
||||||
|
accelerated versions. This is indicated by additional letters in
|
||||||
|
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t =
|
||||||
|
OPT.
|
||||||
|
|
||||||
|
+------------------------------------------------------+--------------------------------------------------+----------------------------------------------------+----------------------------------------------+
|
||||||
|
| :doc:`none <angle_none>` | :doc:`zero <angle_zero>` | :doc:`hybrid <angle_hybrid>` | |
|
||||||
|
+------------------------------------------------------+--------------------------------------------------+----------------------------------------------------+----------------------------------------------+
|
||||||
|
| | | | |
|
||||||
|
+------------------------------------------------------+--------------------------------------------------+----------------------------------------------------+----------------------------------------------+
|
||||||
|
| :doc:`charmm (iko) <angle_charmm>` | :doc:`class2 (ko) <angle_class2>` | :doc:`class2/p6 <angle_class2>` | :doc:`cosine (ko) <angle_cosine>` |
|
||||||
|
+------------------------------------------------------+--------------------------------------------------+----------------------------------------------------+----------------------------------------------+
|
||||||
|
| :doc:`cosine/buck6d <angle_cosine_buck6d>` | :doc:`cosine/delta (o) <angle_cosine_delta>` | :doc:`cosine/periodic (o) <angle_cosine_periodic>` | :doc:`cosine/shift (o) <angle_cosine_shift>` |
|
||||||
|
+------------------------------------------------------+--------------------------------------------------+----------------------------------------------------+----------------------------------------------+
|
||||||
|
| :doc:`cosine/shift/exp (o) <angle_cosine_shift_exp>` | :doc:`cosine/squared (o) <angle_cosine_squared>` | :doc:`cross <angle_cross>` | :doc:`dipole (o) <angle_dipole>` |
|
||||||
|
+------------------------------------------------------+--------------------------------------------------+----------------------------------------------------+----------------------------------------------+
|
||||||
|
| :doc:`fourier (o) <angle_fourier>` | :doc:`fourier/simple (o) <angle_fourier_simple>` | :doc:`harmonic (iko) <angle_harmonic>` | :doc:`mm3 <angle_mm3>` |
|
||||||
|
+------------------------------------------------------+--------------------------------------------------+----------------------------------------------------+----------------------------------------------+
|
||||||
|
| :doc:`quartic (o) <angle_quartic>` | :doc:`sdk (o) <angle_sdk>` | :doc:`table (o) <angle_table>` | |
|
||||||
|
+------------------------------------------------------+--------------------------------------------------+----------------------------------------------------+----------------------------------------------+
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
.. _dihedral:
|
||||||
|
|
||||||
|
Dihedral\_style potentials
|
||||||
|
=========================================
|
||||||
|
|
||||||
|
All LAMMPS :doc:`dihedral\_style <dihedral_style>` commands. Some styles
|
||||||
|
have accelerated versions. This is indicated by additional letters in
|
||||||
|
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t =
|
||||||
|
OPT.
|
||||||
|
|
||||||
|
+-------------------------------------------+-------------------------------------------+-------------------------------------------+---------------------------------------------------------+
|
||||||
|
| :doc:`none <dihedral_none>` | :doc:`zero <dihedral_zero>` | :doc:`hybrid <dihedral_hybrid>` | |
|
||||||
|
+-------------------------------------------+-------------------------------------------+-------------------------------------------+---------------------------------------------------------+
|
||||||
|
| | | | |
|
||||||
|
+-------------------------------------------+-------------------------------------------+-------------------------------------------+---------------------------------------------------------+
|
||||||
|
| :doc:`charmm (iko) <dihedral_charmm>` | :doc:`charmmfsw <dihedral_charmm>` | :doc:`class2 (ko) <dihedral_class2>` | :doc:`cosine/shift/exp (o) <dihedral_cosine_shift_exp>` |
|
||||||
|
+-------------------------------------------+-------------------------------------------+-------------------------------------------+---------------------------------------------------------+
|
||||||
|
| :doc:`fourier (io) <dihedral_fourier>` | :doc:`harmonic (iko) <dihedral_harmonic>` | :doc:`helix (o) <dihedral_helix>` | :doc:`multi/harmonic (o) <dihedral_multi_harmonic>` |
|
||||||
|
+-------------------------------------------+-------------------------------------------+-------------------------------------------+---------------------------------------------------------+
|
||||||
|
| :doc:`nharmonic (o) <dihedral_nharmonic>` | :doc:`opls (iko) <dihedral_opls>` | :doc:`quadratic (o) <dihedral_quadratic>` | :doc:`spherical <dihedral_spherical>` |
|
||||||
|
+-------------------------------------------+-------------------------------------------+-------------------------------------------+---------------------------------------------------------+
|
||||||
|
| :doc:`table (o) <dihedral_table>` | :doc:`table/cut <dihedral_table_cut>` | | |
|
||||||
|
+-------------------------------------------+-------------------------------------------+-------------------------------------------+---------------------------------------------------------+
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
.. _improper:
|
||||||
|
|
||||||
|
Improper\_style potentials
|
||||||
|
=========================================
|
||||||
|
|
||||||
|
All LAMMPS :doc:`improper\_style <improper_style>` commands. Some styles
|
||||||
|
have accelerated versions. This is indicated by additional letters in
|
||||||
|
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t =
|
||||||
|
OPT.
|
||||||
|
|
||||||
|
+--------------------------------------+-----------------------------------------+-------------------------------------------+---------------------------------------------------------+
|
||||||
|
| :doc:`none <improper_none>` | :doc:`zero <improper_zero>` | :doc:`hybrid <improper_hybrid>` | |
|
||||||
|
+--------------------------------------+-----------------------------------------+-------------------------------------------+---------------------------------------------------------+
|
||||||
|
| | | | |
|
||||||
|
+--------------------------------------+-----------------------------------------+-------------------------------------------+---------------------------------------------------------+
|
||||||
|
| :doc:`class2 (ko) <improper_class2>` | :doc:`cossq (o) <improper_cossq>` | :doc:`cvff (io) <improper_cvff>` | :doc:`distance <improper_distance>` |
|
||||||
|
+--------------------------------------+-----------------------------------------+-------------------------------------------+---------------------------------------------------------+
|
||||||
|
| :doc:`distharm <improper_distharm>` | :doc:`fourier (o) <improper_fourier>` | :doc:`harmonic (iko) <improper_harmonic>` | :doc:`inversion/harmonic <improper_inversion_harmonic>` |
|
||||||
|
+--------------------------------------+-----------------------------------------+-------------------------------------------+---------------------------------------------------------+
|
||||||
|
| :doc:`ring (o) <improper_ring>` | :doc:`sqdistharm <improper_sqdistharm>` | :doc:`umbrella (o) <improper_umbrella>` | |
|
||||||
|
+--------------------------------------+-----------------------------------------+-------------------------------------------+---------------------------------------------------------+
|
||||||
|
|
||||||
|
|
||||||
|
.. _lws: http://lammps.sandia.gov
|
||||||
|
.. _ld: Manual.html
|
||||||
|
.. _lc: Commands_all.html
|
||||||
137
doc/src/Commands_category.rst
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
Commands by category
|
||||||
|
====================
|
||||||
|
|
||||||
|
This page lists most of the LAMMPS commands, grouped by category. The
|
||||||
|
:doc:`General commands <Commands_all>` doc page lists all general commands
|
||||||
|
alphabetically. Style options for entries like fix, compute, pair etc.
|
||||||
|
have their own pages where they are listed alphabetically.
|
||||||
|
|
||||||
|
Initialization:
|
||||||
|
|
||||||
|
* :doc:`newton <newton>`,
|
||||||
|
* :doc:`package <package>`,
|
||||||
|
* :doc:`processors <processors>`,
|
||||||
|
* :doc:`suffix <suffix>`,
|
||||||
|
* :doc:`units <units>`
|
||||||
|
|
||||||
|
Setup simulation box:
|
||||||
|
|
||||||
|
* :doc:`boundary <boundary>`,
|
||||||
|
* :doc:`box <box>`,
|
||||||
|
* :doc:`change\_box <change_box>`,
|
||||||
|
* :doc:`create\_box <create_box>`,
|
||||||
|
* :doc:`dimension <dimension>`,
|
||||||
|
* :doc:`lattice <lattice>`,
|
||||||
|
* :doc:`region <region>`
|
||||||
|
|
||||||
|
Setup atoms:
|
||||||
|
|
||||||
|
* :doc:`atom\_modify <atom_modify>`,
|
||||||
|
* :doc:`atom\_style <atom_style>`,
|
||||||
|
* :doc:`balance <balance>`,
|
||||||
|
* :doc:`create\_atoms <create_atoms>`,
|
||||||
|
* :doc:`create\_bonds <create_bonds>`,
|
||||||
|
* :doc:`delete\_atoms <delete_atoms>`,
|
||||||
|
* :doc:`delete\_bonds <delete_bonds>`,
|
||||||
|
* :doc:`displace\_atoms <displace_atoms>`,
|
||||||
|
* :doc:`group <group>`,
|
||||||
|
* :doc:`mass <mass>`,
|
||||||
|
* :doc:`molecule <molecule>`,
|
||||||
|
* :doc:`read\_data <read_data>`,
|
||||||
|
* :doc:`read\_dump <read_dump>`,
|
||||||
|
* :doc:`read\_restart <read_restart>`,
|
||||||
|
* :doc:`replicate <replicate>`,
|
||||||
|
* :doc:`set <set>`,
|
||||||
|
* :doc:`velocity <velocity>`
|
||||||
|
|
||||||
|
Force fields:
|
||||||
|
|
||||||
|
* :doc:`angle\_coeff <angle_coeff>`,
|
||||||
|
* :doc:`angle\_style <angle_style>`,
|
||||||
|
* :doc:`bond\_coeff <bond_coeff>`,
|
||||||
|
* :doc:`bond\_style <bond_style>`,
|
||||||
|
* :doc:`bond\_write <bond_write>`,
|
||||||
|
* :doc:`dielectric <dielectric>`,
|
||||||
|
* :doc:`dihedral\_coeff <dihedral_coeff>`,
|
||||||
|
* :doc:`dihedral\_style <dihedral_style>`,
|
||||||
|
* :doc:`improper\_coeff <improper_coeff>`,
|
||||||
|
* :doc:`improper\_style <improper_style>`,
|
||||||
|
* :doc:`kspace\_modify <kspace_modify>`,
|
||||||
|
* :doc:`kspace\_style <kspace_style>`,
|
||||||
|
* :doc:`pair\_coeff <pair_coeff>`,
|
||||||
|
* :doc:`pair\_modify <pair_modify>`,
|
||||||
|
* :doc:`pair\_style <pair_style>`,
|
||||||
|
* :doc:`pair\_write <pair_write>`,
|
||||||
|
* :doc:`special\_bonds <special_bonds>`
|
||||||
|
|
||||||
|
Settings:
|
||||||
|
|
||||||
|
* :doc:`comm\_modify <comm_modify>`,
|
||||||
|
* :doc:`comm\_style <comm_style>`,
|
||||||
|
* :doc:`info <info>`,
|
||||||
|
* :doc:`min\_modify <min_modify>`,
|
||||||
|
* :doc:`min\_style <min_style>`,
|
||||||
|
* :doc:`neigh\_modify <neigh_modify>`,
|
||||||
|
* :doc:`neighbor <neighbor>`,
|
||||||
|
* :doc:`partition <partition>`,
|
||||||
|
* :doc:`reset\_timestep <reset_timestep>`,
|
||||||
|
* :doc:`run\_style <run_style>`,
|
||||||
|
* :doc:`timer <timer>`,
|
||||||
|
* :doc:`timestep <timestep>`
|
||||||
|
|
||||||
|
Operations within timestepping (fixes) and diagnostics (computes):
|
||||||
|
|
||||||
|
* :doc:`compute <compute>`,
|
||||||
|
* :doc:`compute\_modify <compute_modify>`,
|
||||||
|
* :doc:`fix <fix>`,
|
||||||
|
* :doc:`fix\_modify <fix_modify>`,
|
||||||
|
* :doc:`uncompute <uncompute>`,
|
||||||
|
* :doc:`unfix <unfix>`
|
||||||
|
|
||||||
|
Output:
|
||||||
|
|
||||||
|
* :doc:`dump image <dump_image>`,
|
||||||
|
* :doc:`dump movie <dump_image>`,
|
||||||
|
* :doc:`dump <dump>`,
|
||||||
|
* :doc:`dump\_modify <dump_modify>`,
|
||||||
|
* :doc:`restart <restart>`,
|
||||||
|
* :doc:`thermo <thermo>`,
|
||||||
|
* :doc:`thermo\_modify <thermo_modify>`,
|
||||||
|
* :doc:`thermo\_style <thermo_style>`,
|
||||||
|
* :doc:`undump <undump>`,
|
||||||
|
* :doc:`write\_coeff <write_coeff>`,
|
||||||
|
* :doc:`write\_data <write_data>`,
|
||||||
|
* :doc:`write\_dump <write_dump>`,
|
||||||
|
* :doc:`write\_restart <write_restart>`
|
||||||
|
|
||||||
|
Actions:
|
||||||
|
|
||||||
|
* :doc:`minimize <minimize>`,
|
||||||
|
* :doc:`neb <neb>`,
|
||||||
|
* :doc:`neb\_spin <neb_spin>`,
|
||||||
|
* :doc:`prd <prd>`,
|
||||||
|
* :doc:`rerun <rerun>`,
|
||||||
|
* :doc:`run <run>`,
|
||||||
|
* :doc:`tad <tad>`,
|
||||||
|
* :doc:`temper <temper>`
|
||||||
|
|
||||||
|
Input script control:
|
||||||
|
|
||||||
|
* :doc:`clear <clear>`,
|
||||||
|
* :doc:`echo <echo>`,
|
||||||
|
* :doc:`if <if>`,
|
||||||
|
* :doc:`include <include>`,
|
||||||
|
* :doc:`jump <jump>`,
|
||||||
|
* :doc:`label <label>`,
|
||||||
|
* :doc:`log <log>`,
|
||||||
|
* :doc:`next <next>`,
|
||||||
|
* :doc:`print <print>`,
|
||||||
|
* :doc:`python <python>`,
|
||||||
|
* :doc:`quit <quit>`,
|
||||||
|
* :doc:`shell <shell>`,
|
||||||
|
* :doc:`variable <variable>`
|
||||||
|
|
||||||
|
|
||||||
|
.. _lws: http://lammps.sandia.gov
|
||||||
|
.. _ld: Manual.html
|
||||||
|
.. _lc: Commands_all.html
|
||||||
70
doc/src/Commands_compute.rst
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
+----------------------------------------+------------------------------------+------------------------------------------+
|
||||||
|
| :doc:`General commands <Commands_all>` | :doc:`Fix styles <Commands_fix>` | :doc:`Compute styles <Commands_compute>` |
|
||||||
|
+----------------------------------------+------------------------------------+------------------------------------------+
|
||||||
|
| :doc:`Pair styles <Commands_pair>` | :doc:`Bond styles <Commands_bond>` | :ref:`Angle styles <angle>` |
|
||||||
|
+----------------------------------------+------------------------------------+------------------------------------------+
|
||||||
|
| :ref:`Dihedral styles <dihedral>` | :ref:`Improper styles <improper>` | :doc:`KSpace styles <Commands_kspace>` |
|
||||||
|
+----------------------------------------+------------------------------------+------------------------------------------+
|
||||||
|
|
||||||
|
Compute commands
|
||||||
|
================
|
||||||
|
|
||||||
|
An alphabetic list of all LAMMPS :doc:`compute <compute>` commands.
|
||||||
|
Some styles have accelerated versions. This is indicated by
|
||||||
|
additional letters in parenthesis: g = GPU, i = USER-INTEL, k =
|
||||||
|
KOKKOS, o = USER-OMP, t = OPT.
|
||||||
|
|
||||||
|
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
|
||||||
|
| :doc:`ackland/atom <compute_ackland_atom>` | :doc:`adf <compute_adf>` | :doc:`aggregate/atom <compute_cluster_atom>` | :doc:`angle <compute_angle>` | :doc:`angle/local <compute_angle_local>` | :doc:`angmom/chunk <compute_angmom_chunk>` |
|
||||||
|
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
|
||||||
|
| :doc:`basal/atom <compute_basal_atom>` | :doc:`body/local <compute_body_local>` | :doc:`bond <compute_bond>` | :doc:`bond/local <compute_bond_local>` | :doc:`centro/atom <compute_centro_atom>` | :doc:`centroid/stress/atom <compute_stress_atom>` |
|
||||||
|
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
|
||||||
|
| :doc:`chunk/atom <compute_chunk_atom>` | :doc:`chunk/spread/atom <compute_chunk_spread_atom>` | :doc:`cluster/atom <compute_cluster_atom>` | :doc:`cna/atom <compute_cna_atom>` | :doc:`cnp/atom <compute_cnp_atom>` | :doc:`com <compute_com>` |
|
||||||
|
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
|
||||||
|
| :doc:`com/chunk <compute_com_chunk>` | :doc:`contact/atom <compute_contact_atom>` | :doc:`coord/atom <compute_coord_atom>` | :doc:`damage/atom <compute_damage_atom>` | :doc:`dihedral <compute_dihedral>` | :doc:`dihedral/local <compute_dihedral_local>` |
|
||||||
|
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
|
||||||
|
| :doc:`dilatation/atom <compute_dilatation_atom>` | :doc:`dipole/chunk <compute_dipole_chunk>` | :doc:`displace/atom <compute_displace_atom>` | :doc:`dpd <compute_dpd>` | :doc:`dpd/atom <compute_dpd_atom>` | :doc:`edpd/temp/atom <compute_edpd_temp_atom>` |
|
||||||
|
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
|
||||||
|
| :doc:`entropy/atom <compute_entropy_atom>` | :doc:`erotate/asphere <compute_erotate_asphere>` | :doc:`erotate/rigid <compute_erotate_rigid>` | :doc:`erotate/sphere <compute_erotate_sphere>` | :doc:`erotate/sphere/atom <compute_erotate_sphere_atom>` | :doc:`event/displace <compute_event_displace>` |
|
||||||
|
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
|
||||||
|
| :doc:`fep <compute_fep>` | :doc:`force/tally <compute_tally>` | :doc:`fragment/atom <compute_cluster_atom>` | :doc:`global/atom <compute_global_atom>` | :doc:`group/group <compute_group_group>` | :doc:`gyration <compute_gyration>` |
|
||||||
|
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
|
||||||
|
| :doc:`gyration/chunk <compute_gyration_chunk>` | :doc:`gyration/shape <compute_gyration_shape>` | :doc:`gyration/shape/chunk <compute_gyration_shape_chunk>` | :doc:`heat/flux <compute_heat_flux>` | :doc:`heat/flux/tally <compute_tally>` | :doc:`hexorder/atom <compute_hexorder_atom>` |
|
||||||
|
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
|
||||||
|
| :doc:`hma <compute_hma>` | :doc:`improper <compute_improper>` | :doc:`improper/local <compute_improper_local>` | :doc:`inertia/chunk <compute_inertia_chunk>` | :doc:`ke <compute_ke>` | :doc:`ke/atom <compute_ke_atom>` |
|
||||||
|
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
|
||||||
|
| :doc:`ke/atom/eff <compute_ke_atom_eff>` | :doc:`ke/eff <compute_ke_eff>` | :doc:`ke/rigid <compute_ke_rigid>` | :doc:`meso/e/atom <compute_meso_e_atom>` | :doc:`meso/rho/atom <compute_meso_rho_atom>` | :doc:`meso/t/atom <compute_meso_t_atom>` |
|
||||||
|
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
|
||||||
|
| :doc:`momentum <compute_momentum>` | :doc:`msd <compute_msd>` | :doc:`msd/chunk <compute_msd_chunk>` | :doc:`msd/nongauss <compute_msd_nongauss>` | :doc:`omega/chunk <compute_omega_chunk>` | :doc:`orientorder/atom <compute_orientorder_atom>` |
|
||||||
|
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
|
||||||
|
| :doc:`pair <compute_pair>` | :doc:`pair/local <compute_pair_local>` | :doc:`pe <compute_pe>` | :doc:`pe/atom <compute_pe_atom>` | :doc:`pe/mol/tally <compute_tally>` | :doc:`pe/tally <compute_tally>` |
|
||||||
|
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
|
||||||
|
| :doc:`plasticity/atom <compute_plasticity_atom>` | :doc:`pressure <compute_pressure>` | :doc:`pressure/cylinder <compute_pressure_cylinder>` | :doc:`pressure/uef <compute_pressure_uef>` | :doc:`property/atom <compute_property_atom>` | :doc:`property/chunk <compute_property_chunk>` |
|
||||||
|
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
|
||||||
|
| :doc:`property/local <compute_property_local>` | :doc:`ptm/atom <compute_ptm_atom>` | :doc:`rdf <compute_rdf>` | :doc:`reduce <compute_reduce>` | :doc:`reduce/chunk <compute_reduce_chunk>` | :doc:`reduce/region <compute_reduce>` |
|
||||||
|
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
|
||||||
|
| :doc:`rigid/local <compute_rigid_local>` | :doc:`saed <compute_saed>` | :doc:`slice <compute_slice>` | :doc:`smd/contact/radius <compute_smd_contact_radius>` | :doc:`smd/damage <compute_smd_damage>` | :doc:`smd/hourglass/error <compute_smd_hourglass_error>` |
|
||||||
|
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
|
||||||
|
| :doc:`smd/internal/energy <compute_smd_internal_energy>` | :doc:`smd/plastic/strain <compute_smd_plastic_strain>` | :doc:`smd/plastic/strain/rate <compute_smd_plastic_strain_rate>` | :doc:`smd/rho <compute_smd_rho>` | :doc:`smd/tlsph/defgrad <compute_smd_tlsph_defgrad>` | :doc:`smd/tlsph/dt <compute_smd_tlsph_dt>` |
|
||||||
|
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
|
||||||
|
| :doc:`smd/tlsph/num/neighs <compute_smd_tlsph_num_neighs>` | :doc:`smd/tlsph/shape <compute_smd_tlsph_shape>` | :doc:`smd/tlsph/strain <compute_smd_tlsph_strain>` | :doc:`smd/tlsph/strain/rate <compute_smd_tlsph_strain_rate>` | :doc:`smd/tlsph/stress <compute_smd_tlsph_stress>` | :doc:`smd/triangle/vertices <compute_smd_triangle_vertices>` |
|
||||||
|
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
|
||||||
|
| :doc:`smd/ulsph/num/neighs <compute_smd_ulsph_num_neighs>` | :doc:`smd/ulsph/strain <compute_smd_ulsph_strain>` | :doc:`smd/ulsph/strain/rate <compute_smd_ulsph_strain_rate>` | :doc:`smd/ulsph/stress <compute_smd_ulsph_stress>` | :doc:`smd/vol <compute_smd_vol>` | :doc:`sna/atom <compute_sna_atom>` |
|
||||||
|
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
|
||||||
|
| :doc:`snad/atom <compute_sna_atom>` | :doc:`snav/atom <compute_sna_atom>` | :doc:`spin <compute_spin>` | :doc:`stress/atom <compute_stress_atom>` | :doc:`stress/mop <compute_stress_mop>` | :doc:`stress/mop/profile <compute_stress_mop>` |
|
||||||
|
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
|
||||||
|
| :doc:`stress/tally <compute_tally>` | :doc:`tdpd/cc/atom <compute_tdpd_cc_atom>` | :doc:`temp (k) <compute_temp>` | :doc:`temp/asphere <compute_temp_asphere>` | :doc:`temp/body <compute_temp_body>` | :doc:`temp/chunk <compute_temp_chunk>` |
|
||||||
|
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
|
||||||
|
| :doc:`temp/com <compute_temp_com>` | :doc:`temp/cs <compute_temp_cs>` | :doc:`temp/deform <compute_temp_deform>` | :doc:`temp/deform/eff <compute_temp_deform_eff>` | :doc:`temp/drude <compute_temp_drude>` | :doc:`temp/eff <compute_temp_eff>` |
|
||||||
|
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
|
||||||
|
| :doc:`temp/partial <compute_temp_partial>` | :doc:`temp/profile <compute_temp_profile>` | :doc:`temp/ramp <compute_temp_ramp>` | :doc:`temp/region <compute_temp_region>` | :doc:`temp/region/eff <compute_temp_region_eff>` | :doc:`temp/rotate <compute_temp_rotate>` |
|
||||||
|
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
|
||||||
|
| :doc:`temp/sphere <compute_temp_sphere>` | :doc:`temp/uef <compute_temp_uef>` | :doc:`ti <compute_ti>` | :doc:`torque/chunk <compute_torque_chunk>` | :doc:`vacf <compute_vacf>` | :doc:`vcm/chunk <compute_vcm_chunk>` |
|
||||||
|
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
|
||||||
|
| :doc:`voronoi/atom <compute_voronoi_atom>` | :doc:`xrd <compute_xrd>` | | | | |
|
||||||
|
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
|
||||||
|
|
||||||
|
|
||||||
|
.. _lws: http://lammps.sandia.gov
|
||||||
|
.. _ld: Manual.html
|
||||||
|
.. _lc: Commands_all.html
|
||||||
94
doc/src/Commands_fix.rst
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
+----------------------------------------+------------------------------------+------------------------------------------+
|
||||||
|
| :doc:`General commands <Commands_all>` | :doc:`Fix styles <Commands_fix>` | :doc:`Compute styles <Commands_compute>` |
|
||||||
|
+----------------------------------------+------------------------------------+------------------------------------------+
|
||||||
|
| :doc:`Pair styles <Commands_pair>` | :doc:`Bond styles <Commands_bond>` | :ref:`Angle styles <angle>` |
|
||||||
|
+----------------------------------------+------------------------------------+------------------------------------------+
|
||||||
|
| :ref:`Dihedral styles <dihedral>` | :ref:`Improper styles <improper>` | :doc:`KSpace styles <Commands_kspace>` |
|
||||||
|
+----------------------------------------+------------------------------------+------------------------------------------+
|
||||||
|
|
||||||
|
Fix commands
|
||||||
|
============
|
||||||
|
|
||||||
|
An alphabetic list of all LAMMPS :doc:`fix <fix>` commands. Some styles
|
||||||
|
have accelerated versions. This is indicated by additional letters in
|
||||||
|
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t =
|
||||||
|
OPT.
|
||||||
|
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`adapt <fix_adapt>` | :doc:`adapt/fep <fix_adapt_fep>` | :doc:`addforce <fix_addforce>` | :doc:`addtorque <fix_addtorque>` | :doc:`append/atoms <fix_append_atoms>` | :doc:`atc <fix_atc>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`atom/swap <fix_atom_swap>` | :doc:`ave/atom <fix_ave_atom>` | :doc:`ave/chunk <fix_ave_chunk>` | :doc:`ave/correlate <fix_ave_correlate>` | :doc:`ave/correlate/long <fix_ave_correlate_long>` | :doc:`ave/histo <fix_ave_histo>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`ave/histo/weight <fix_ave_histo>` | :doc:`ave/time <fix_ave_time>` | :doc:`aveforce <fix_aveforce>` | :doc:`balance <fix_balance>` | :doc:`bocs <fix_bocs>` | :doc:`bond/break <fix_bond_break>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`bond/create <fix_bond_create>` | :doc:`bond/react <fix_bond_react>` | :doc:`bond/swap <fix_bond_swap>` | :doc:`box/relax <fix_box_relax>` | :doc:`client/md <fix_client_md>` | :doc:`cmap <fix_cmap>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`colvars <fix_colvars>` | :doc:`controller <fix_controller>` | :doc:`deform (k) <fix_deform>` | :doc:`deposit <fix_deposit>` | :doc:`dpd/energy (k) <fix_dpd_energy>` | :doc:`drag <fix_drag>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`drude <fix_drude>` | :doc:`drude/transform/direct <fix_drude_transform>` | :doc:`drude/transform/inverse <fix_drude_transform>` | :doc:`dt/reset <fix_dt_reset>` | :doc:`edpd/source <fix_dpd_source>` | :doc:`efield <fix_efield>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`ehex <fix_ehex>` | :doc:`electron/stopping <fix_electron_stopping>` | :doc:`enforce2d (k) <fix_enforce2d>` | :doc:`eos/cv <fix_eos_cv>` | :doc:`eos/table <fix_eos_table>` | :doc:`eos/table/rx (k) <fix_eos_table_rx>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`evaporate <fix_evaporate>` | :doc:`external <fix_external>` | :doc:`ffl <fix_ffl>` | :doc:`filter/corotate <fix_filter_corotate>` | :doc:`flow/gauss <fix_flow_gauss>` | :doc:`freeze (k) <fix_freeze>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`gcmc <fix_gcmc>` | :doc:`gld <fix_gld>` | :doc:`gle <fix_gle>` | :doc:`gravity (ko) <fix_gravity>` | :doc:`grem <fix_grem>` | :doc:`halt <fix_halt>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`heat <fix_heat>` | :doc:`hyper/global <fix_hyper_global>` | :doc:`hyper/local <fix_hyper_local>` | :doc:`imd <fix_imd>` | :doc:`indent <fix_indent>` | :doc:`ipi <fix_ipi>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`langevin (k) <fix_langevin>` | :doc:`langevin/drude <fix_langevin_drude>` | :doc:`langevin/eff <fix_langevin_eff>` | :doc:`langevin/spin <fix_langevin_spin>` | :doc:`latte <fix_latte>` | :doc:`lb/fluid <fix_lb_fluid>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`lb/momentum <fix_lb_momentum>` | :doc:`lb/pc <fix_lb_pc>` | :doc:`lb/rigid/pc/sphere <fix_lb_rigid_pc_sphere>` | :doc:`lb/viscous <fix_lb_viscous>` | :doc:`lineforce <fix_lineforce>` | :doc:`manifoldforce <fix_manifoldforce>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`meso <fix_meso>` | :doc:`meso/move <fix_meso_move>` | :doc:`meso/stationary <fix_meso_stationary>` | :doc:`momentum (k) <fix_momentum>` | :doc:`move <fix_move>` | :doc:`mscg <fix_mscg>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`msst <fix_msst>` | :doc:`mvv/dpd <fix_mvv_dpd>` | :doc:`mvv/edpd <fix_mvv_dpd>` | :doc:`mvv/tdpd <fix_mvv_dpd>` | :doc:`neb <fix_neb>` | :doc:`neb\_spin <fix_neb_spin>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`nph (ko) <fix_nh>` | :doc:`nph/asphere (o) <fix_nph_asphere>` | :doc:`nph/body <fix_nph_body>` | :doc:`nph/eff <fix_nh_eff>` | :doc:`nph/sphere (o) <fix_nph_sphere>` | :doc:`nphug (o) <fix_nphug>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`npt (iko) <fix_nh>` | :doc:`npt/asphere (o) <fix_npt_asphere>` | :doc:`npt/body <fix_npt_body>` | :doc:`npt/eff <fix_nh_eff>` | :doc:`npt/sphere (o) <fix_npt_sphere>` | :doc:`npt/uef <fix_nh_uef>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`nve (iko) <fix_nve>` | :doc:`nve/asphere (i) <fix_nve_asphere>` | :doc:`nve/asphere/noforce <fix_nve_asphere_noforce>` | :doc:`nve/awpmd <fix_nve_awpmd>` | :doc:`nve/body <fix_nve_body>` | :doc:`nve/dot <fix_nve_dot>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`nve/dotc/langevin <fix_nve_dotc_langevin>` | :doc:`nve/eff <fix_nve_eff>` | :doc:`nve/limit <fix_nve_limit>` | :doc:`nve/line <fix_nve_line>` | :doc:`nve/manifold/rattle <fix_nve_manifold_rattle>` | :doc:`nve/noforce <fix_nve_noforce>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`nve/sphere (ko) <fix_nve_sphere>` | :doc:`nve/spin <fix_nve_spin>` | :doc:`nve/tri <fix_nve_tri>` | :doc:`nvk <fix_nvk>` | :doc:`nvt (iko) <fix_nh>` | :doc:`nvt/asphere (o) <fix_nvt_asphere>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`nvt/body <fix_nvt_body>` | :doc:`nvt/eff <fix_nh_eff>` | :doc:`nvt/manifold/rattle <fix_nvt_manifold_rattle>` | :doc:`nvt/sllod (io) <fix_nvt_sllod>` | :doc:`nvt/sllod/eff <fix_nvt_sllod_eff>` | :doc:`nvt/sphere (o) <fix_nvt_sphere>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`nvt/uef <fix_nh_uef>` | :doc:`oneway <fix_oneway>` | :doc:`orient/bcc <fix_orient>` | :doc:`orient/fcc <fix_orient>` | :doc:`phonon <fix_phonon>` | :doc:`pimd <fix_pimd>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`planeforce <fix_planeforce>` | :doc:`plumed <fix_plumed>` | :doc:`poems <fix_poems>` | :doc:`pour <fix_pour>` | :doc:`precession/spin <fix_precession_spin>` | :doc:`press/berendsen <fix_press_berendsen>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`print <fix_print>` | :doc:`property/atom (k) <fix_property_atom>` | :doc:`python/invoke <fix_python_invoke>` | :doc:`python/move <fix_python_move>` | :doc:`qbmsst <fix_qbmsst>` | :doc:`qeq/comb (o) <fix_qeq_comb>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`qeq/dynamic <fix_qeq>` | :doc:`qeq/fire <fix_qeq>` | :doc:`qeq/point <fix_qeq>` | :doc:`qeq/reax (ko) <fix_qeq_reax>` | :doc:`qeq/shielded <fix_qeq>` | :doc:`qeq/slater <fix_qeq>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`qmmm <fix_qmmm>` | :doc:`qtb <fix_qtb>` | :doc:`rattle <fix_shake>` | :doc:`reax/c/bonds (k) <fix_reaxc_bonds>` | :doc:`reax/c/species (k) <fix_reaxc_species>` | :doc:`recenter <fix_recenter>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`restrain <fix_restrain>` | :doc:`rhok <fix_rhok>` | :doc:`rigid (o) <fix_rigid>` | :doc:`rigid/meso <fix_rigid_meso>` | :doc:`rigid/nph (o) <fix_rigid>` | :doc:`rigid/nph/small <fix_rigid>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`rigid/npt (o) <fix_rigid>` | :doc:`rigid/npt/small <fix_rigid>` | :doc:`rigid/nve (o) <fix_rigid>` | :doc:`rigid/nve/small <fix_rigid>` | :doc:`rigid/nvt (o) <fix_rigid>` | :doc:`rigid/nvt/small <fix_rigid>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`rigid/small (o) <fix_rigid>` | :doc:`rx (k) <fix_rx>` | :doc:`saed/vtk <fix_saed_vtk>` | :doc:`setforce (k) <fix_setforce>` | :doc:`shake <fix_shake>` | :doc:`shardlow (k) <fix_shardlow>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`smd <fix_smd>` | :doc:`smd/adjust\_dt <fix_smd_adjust_dt>` | :doc:`smd/integrate\_tlsph <fix_smd_integrate_tlsph>` | :doc:`smd/integrate\_ulsph <fix_smd_integrate_ulsph>` | :doc:`smd/move\_tri\_surf <fix_smd_move_triangulated_surface>` | :doc:`smd/setvel <fix_smd_setvel>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`smd/wall\_surface <fix_smd_wall_surface>` | :doc:`spring <fix_spring>` | :doc:`spring/chunk <fix_spring_chunk>` | :doc:`spring/rg <fix_spring_rg>` | :doc:`spring/self <fix_spring_self>` | :doc:`srd <fix_srd>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`store/force <fix_store_force>` | :doc:`store/state <fix_store_state>` | :doc:`tdpd/source <fix_dpd_source>` | :doc:`temp/berendsen <fix_temp_berendsen>` | :doc:`temp/csld <fix_temp_csvr>` | :doc:`temp/csvr <fix_temp_csvr>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`temp/rescale <fix_temp_rescale>` | :doc:`temp/rescale/eff <fix_temp_rescale_eff>` | :doc:`tfmc <fix_tfmc>` | :doc:`thermal/conductivity <fix_thermal_conductivity>` | :doc:`ti/spring <fix_ti_spring>` | :doc:`tmd <fix_tmd>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`ttm <fix_ttm>` | :doc:`ttm/mod <fix_ttm>` | :doc:`tune/kspace <fix_tune_kspace>` | :doc:`vector <fix_vector>` | :doc:`viscosity <fix_viscosity>` | :doc:`viscous <fix_viscous>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`wall/body/polygon <fix_wall_body_polygon>` | :doc:`wall/body/polyhedron <fix_wall_body_polyhedron>` | :doc:`wall/colloid <fix_wall>` | :doc:`wall/ees <fix_wall_ees>` | :doc:`wall/gran <fix_wall_gran>` | :doc:`wall/gran/region <fix_wall_gran_region>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`wall/harmonic <fix_wall>` | :doc:`wall/lj1043 <fix_wall>` | :doc:`wall/lj126 <fix_wall>` | :doc:`wall/lj93 (k) <fix_wall>` | :doc:`wall/morse <fix_wall>` | :doc:`wall/piston <fix_wall_piston>` |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
| :doc:`wall/reflect (k) <fix_wall_reflect>` | :doc:`wall/region <fix_wall_region>` | :doc:`wall/region/ees <fix_wall_ees>` | :doc:`wall/srd <fix_wall_srd>` | | |
|
||||||
|
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
|
||||||
|
|
||||||
|
|
||||||
|
.. _lws: http://lammps.sandia.gov
|
||||||
|
.. _ld: Manual.html
|
||||||
|
.. _lc: Commands_all.html
|
||||||
@ -1,13 +1,5 @@
|
|||||||
"Higher level section"_Commands.html - "LAMMPS WWW Site"_lws - "LAMMPS
|
LAMMPS input scripts
|
||||||
Documentation"_ld - "LAMMPS Commands"_lc :c
|
====================
|
||||||
|
|
||||||
:link(lws,http://lammps.sandia.gov)
|
|
||||||
:link(ld,Manual.html)
|
|
||||||
:link(lc,Commands_all.html)
|
|
||||||
|
|
||||||
:line
|
|
||||||
|
|
||||||
LAMMPS input scripts :h3
|
|
||||||
|
|
||||||
LAMMPS executes by reading commands from a input script (text file),
|
LAMMPS executes by reading commands from a input script (text file),
|
||||||
one line at a time. When the input script ends, LAMMPS exits. Each
|
one line at a time. When the input script ends, LAMMPS exits. Each
|
||||||
@ -24,15 +16,21 @@ simulation with all the settings. Rather, the input script is read
|
|||||||
one line at a time and each command takes effect when it is read.
|
one line at a time and each command takes effect when it is read.
|
||||||
Thus this sequence of commands:
|
Thus this sequence of commands:
|
||||||
|
|
||||||
timestep 0.5
|
|
||||||
run 100
|
.. code-block:: LAMMPS
|
||||||
run 100 :pre
|
|
||||||
|
timestep 0.5
|
||||||
|
run 100
|
||||||
|
run 100
|
||||||
|
|
||||||
does something different than this sequence:
|
does something different than this sequence:
|
||||||
|
|
||||||
run 100
|
|
||||||
timestep 0.5
|
.. code-block:: LAMMPS
|
||||||
run 100 :pre
|
|
||||||
|
run 100
|
||||||
|
timestep 0.5
|
||||||
|
run 100
|
||||||
|
|
||||||
In the first case, the specified timestep (0.5 fs) is used for two
|
In the first case, the specified timestep (0.5 fs) is used for two
|
||||||
simulations of 100 timesteps each. In the 2nd case, the default
|
simulations of 100 timesteps each. In the 2nd case, the default
|
||||||
@ -47,14 +45,18 @@ belong to the group.
|
|||||||
(3) Sometimes command B will use values that can be set by command A.
|
(3) Sometimes command B will use values that can be set by command A.
|
||||||
This means command A must precede command B in the input script if it
|
This means command A must precede command B in the input script if it
|
||||||
is to have the desired effect. For example, the
|
is to have the desired effect. For example, the
|
||||||
"read_data"_read_data.html command initializes the system by setting
|
:doc:`read\_data <read_data>` command initializes the system by setting
|
||||||
up the simulation box and assigning atoms to processors. If default
|
up the simulation box and assigning atoms to processors. If default
|
||||||
values are not desired, the "processors"_processors.html and
|
values are not desired, the :doc:`processors <processors>` and
|
||||||
"boundary"_boundary.html commands need to be used before read_data to
|
:doc:`boundary <boundary>` commands need to be used before read\_data to
|
||||||
tell LAMMPS how to map processors to the simulation box.
|
tell LAMMPS how to map processors to the simulation box.
|
||||||
|
|
||||||
Many input script errors are detected by LAMMPS and an ERROR or
|
Many input script errors are detected by LAMMPS and an ERROR or
|
||||||
WARNING message is printed. The "Errors"_Errors.html doc page gives
|
WARNING message is printed. The :doc:`Errors <Errors>` doc page gives
|
||||||
more information on what errors mean. The documentation for each
|
more information on what errors mean. The documentation for each
|
||||||
command lists restrictions on how the command can be used.
|
command lists restrictions on how the command can be used.
|
||||||
|
|
||||||
|
|
||||||
|
.. _lws: http://lammps.sandia.gov
|
||||||
|
.. _ld: Manual.html
|
||||||
|
.. _lc: Commands_all.html
|
||||||
28
doc/src/Commands_kspace.rst
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
+----------------------------------------+------------------------------------+------------------------------------------+
|
||||||
|
| :doc:`General commands <Commands_all>` | :doc:`Fix styles <Commands_fix>` | :doc:`Compute styles <Commands_compute>` |
|
||||||
|
+----------------------------------------+------------------------------------+------------------------------------------+
|
||||||
|
| :doc:`Pair styles <Commands_pair>` | :doc:`Bond styles <Commands_bond>` | :ref:`Angle styles <angle>` |
|
||||||
|
+----------------------------------------+------------------------------------+------------------------------------------+
|
||||||
|
| :ref:`Dihedral styles <dihedral>` | :ref:`Improper styles <improper>` | :doc:`KSpace styles <Commands_kspace>` |
|
||||||
|
+----------------------------------------+------------------------------------+------------------------------------------+
|
||||||
|
|
||||||
|
KSpace solvers
|
||||||
|
==============
|
||||||
|
|
||||||
|
All LAMMPS :doc:`kspace\_style <kspace_style>` solvers. Some styles have
|
||||||
|
accelerated versions. This is indicated by additional letters in
|
||||||
|
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t =
|
||||||
|
OPT.
|
||||||
|
|
||||||
|
+------------------------------------+--------------------------------------+-------------------------------------+---------------------------------------+
|
||||||
|
| :doc:`ewald (o) <kspace_style>` | :doc:`ewald/disp <kspace_style>` | :doc:`msm (o) <kspace_style>` | :doc:`msm/cg (o) <kspace_style>` |
|
||||||
|
+------------------------------------+--------------------------------------+-------------------------------------+---------------------------------------+
|
||||||
|
| :doc:`pppm (gok) <kspace_style>` | :doc:`pppm/cg (o) <kspace_style>` | :doc:`pppm/disp (i) <kspace_style>` | :doc:`pppm/disp/tip4p <kspace_style>` |
|
||||||
|
+------------------------------------+--------------------------------------+-------------------------------------+---------------------------------------+
|
||||||
|
| :doc:`pppm/stagger <kspace_style>` | :doc:`pppm/tip4p (o) <kspace_style>` | :doc:`scafacos <kspace_style>` | |
|
||||||
|
+------------------------------------+--------------------------------------+-------------------------------------+---------------------------------------+
|
||||||
|
|
||||||
|
|
||||||
|
.. _lws: http://lammps.sandia.gov
|
||||||
|
.. _ld: Manual.html
|
||||||
|
.. _lc: Commands_all.html
|
||||||
136
doc/src/Commands_pair.rst
Normal file
@ -0,0 +1,136 @@
|
|||||||
|
+----------------------------------------+------------------------------------+------------------------------------------+
|
||||||
|
| :doc:`General commands <Commands_all>` | :doc:`Fix styles <Commands_fix>` | :doc:`Compute styles <Commands_compute>` |
|
||||||
|
+----------------------------------------+------------------------------------+------------------------------------------+
|
||||||
|
| :doc:`Pair styles <Commands_pair>` | :doc:`Bond styles <Commands_bond>` | :ref:`Angle styles <angle>` |
|
||||||
|
+----------------------------------------+------------------------------------+------------------------------------------+
|
||||||
|
| :ref:`Dihedral styles <dihedral>` | :ref:`Improper styles <improper>` | :doc:`KSpace styles <Commands_kspace>` |
|
||||||
|
+----------------------------------------+------------------------------------+------------------------------------------+
|
||||||
|
|
||||||
|
Pair\_style potentials
|
||||||
|
======================
|
||||||
|
|
||||||
|
All LAMMPS :doc:`pair\_style <pair_style>` commands. Some styles have
|
||||||
|
accelerated versions. This is indicated by additional letters in
|
||||||
|
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t =
|
||||||
|
OPT.
|
||||||
|
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`none <pair_none>` | :doc:`zero <pair_zero>` | :doc:`hybrid (k) <pair_hybrid>` | :doc:`hybrid/overlay (k) <pair_hybrid>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| | | | |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`adp (o) <pair_adp>` | :doc:`agni (o) <pair_agni>` | :doc:`airebo (io) <pair_airebo>` | :doc:`airebo/morse (io) <pair_airebo>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`atm <pair_atm>` | :doc:`awpmd/cut <pair_awpmd>` | :doc:`beck (go) <pair_beck>` | :doc:`body/nparticle <pair_body_nparticle>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`body/rounded/polygon <pair_body_rounded_polygon>` | :doc:`body/rounded/polyhedron <pair_body_rounded_polyhedron>` | :doc:`bop <pair_bop>` | :doc:`born (go) <pair_born>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`born/coul/dsf <pair_born>` | :doc:`born/coul/dsf/cs <pair_cs>` | :doc:`born/coul/long (go) <pair_born>` | :doc:`born/coul/long/cs (g) <pair_cs>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`born/coul/msm (o) <pair_born>` | :doc:`born/coul/wolf (go) <pair_born>` | :doc:`born/coul/wolf/cs (g) <pair_cs>` | :doc:`brownian (o) <pair_brownian>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`brownian/poly (o) <pair_brownian>` | :doc:`buck (giko) <pair_buck>` | :doc:`buck/coul/cut (giko) <pair_buck>` | :doc:`buck/coul/long (giko) <pair_buck>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`buck/coul/long/cs <pair_cs>` | :doc:`buck/coul/msm (o) <pair_buck>` | :doc:`buck/long/coul/long (o) <pair_buck_long>` | :doc:`buck/mdf <pair_mdf>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`buck6d/coul/gauss/dsf <pair_buck6d_coul_gauss>` | :doc:`buck6d/coul/gauss/long <pair_buck6d_coul_gauss>` | :doc:`colloid (go) <pair_colloid>` | :doc:`comb (o) <pair_comb>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`comb3 <pair_comb>` | :doc:`cosine/squared <pair_cosine_squared>` | :doc:`coul/cut (gko) <pair_coul>` | :doc:`coul/cut/soft (o) <pair_fep_soft>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`coul/debye (gko) <pair_coul>` | :doc:`coul/diel (o) <pair_coul_diel>` | :doc:`coul/dsf (gko) <pair_coul>` | :doc:`coul/long (gko) <pair_coul>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`coul/long/cs (g) <pair_cs>` | :doc:`coul/long/soft (o) <pair_fep_soft>` | :doc:`coul/msm (o) <pair_coul>` | :doc:`coul/shield <pair_coul_shield>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`coul/streitz <pair_coul>` | :doc:`coul/wolf (ko) <pair_coul>` | :doc:`coul/wolf/cs <pair_cs>` | :doc:`dpd (gio) <pair_dpd>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`dpd/fdt <pair_dpd_fdt>` | :doc:`dpd/fdt/energy (k) <pair_dpd_fdt>` | :doc:`dpd/tstat (go) <pair_dpd>` | :doc:`dsmc <pair_dsmc>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`e3b <pair_e3b>` | :doc:`drip <pair_drip>` | :doc:`eam (gikot) <pair_eam>` | :doc:`eam/alloy (gikot) <pair_eam>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`eam/cd (o) <pair_eam>` | :doc:`eam/cd/old (o) <pair_eam>` | :doc:`eam/fs (gikot) <pair_eam>` | :doc:`edip (o) <pair_edip>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`edip/multi <pair_edip>` | :doc:`edpd <pair_meso>` | :doc:`eff/cut <pair_eff>` | :doc:`eim (o) <pair_eim>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`exp6/rx (k) <pair_exp6_rx>` | :doc:`extep <pair_extep>` | :doc:`gauss (go) <pair_gauss>` | :doc:`gauss/cut (o) <pair_gauss>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`gayberne (gio) <pair_gayberne>` | :doc:`gran/hertz/history (o) <pair_gran>` | :doc:`gran/hooke (o) <pair_gran>` | :doc:`gran/hooke/history (ko) <pair_gran>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`granular <pair_granular>` | :doc:`gw <pair_gw>` | :doc:`gw/zbl <pair_gw>` | :doc:`hbond/dreiding/lj (o) <pair_hbond_dreiding>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`hbond/dreiding/morse (o) <pair_hbond_dreiding>` | :doc:`ilp/graphene/hbn <pair_ilp_graphene_hbn>` | :doc:`kim <pair_kim>` | :doc:`kolmogorov/crespi/full <pair_kolmogorov_crespi_full>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`kolmogorov/crespi/z <pair_kolmogorov_crespi_z>` | :doc:`lcbop <pair_lcbop>` | :doc:`lebedeva/z <pair_lebedeva_z>` | :doc:`lennard/mdf <pair_mdf>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`line/lj <pair_line_lj>` | :doc:`list <pair_list>` | :doc:`lj/charmm/coul/charmm (iko) <pair_charmm>` | :doc:`lj/charmm/coul/charmm/implicit (ko) <pair_charmm>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`lj/charmm/coul/long (gikot) <pair_charmm>` | :doc:`lj/charmm/coul/long/soft (o) <pair_fep_soft>` | :doc:`lj/charmm/coul/msm (o) <pair_charmm>` | :doc:`lj/charmmfsw/coul/charmmfsh <pair_charmm>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`lj/charmmfsw/coul/long <pair_charmm>` | :doc:`lj/class2 (gko) <pair_class2>` | :doc:`lj/class2/coul/cut (ko) <pair_class2>` | :doc:`lj/class2/coul/cut/soft <pair_fep_soft>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`lj/class2/coul/long (gko) <pair_class2>` | :doc:`lj/class2/coul/long/soft <pair_fep_soft>` | :doc:`lj/class2/soft <pair_fep_soft>` | :doc:`lj/cubic (go) <pair_lj_cubic>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`lj/cut (gikot) <pair_lj>` | :doc:`lj/cut/coul/cut (gko) <pair_lj>` | :doc:`lj/cut/coul/cut/soft (o) <pair_fep_soft>` | :doc:`lj/cut/coul/debye (gko) <pair_lj>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`lj/cut/coul/dsf (gko) <pair_lj>` | :doc:`lj/cut/coul/long (gikot) <pair_lj>` | :doc:`lj/cut/coul/long/cs <pair_cs>` | :doc:`lj/cut/coul/long/soft (o) <pair_fep_soft>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`lj/cut/coul/msm (go) <pair_lj>` | :doc:`lj/cut/coul/wolf (o) <pair_lj>` | :doc:`lj/cut/dipole/cut (go) <pair_dipole>` | :doc:`lj/cut/dipole/long (g) <pair_dipole>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`lj/cut/dipole/sf (go) <pair_dipole>` | :doc:`lj/cut/soft (o) <pair_fep_soft>` | :doc:`lj/cut/thole/long (o) <pair_thole>` | :doc:`lj/cut/tip4p/cut (o) <pair_lj>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`lj/cut/tip4p/long (ot) <pair_lj>` | :doc:`lj/cut/tip4p/long/soft (o) <pair_fep_soft>` | :doc:`lj/expand (gko) <pair_lj_expand>` | :doc:`lj/expand/coul/long (g) <pair_lj_expand>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`lj/gromacs (gko) <pair_gromacs>` | :doc:`lj/gromacs/coul/gromacs (ko) <pair_gromacs>` | :doc:`lj/long/coul/long (iot) <pair_lj_long>` | :doc:`lj/long/dipole/long <pair_dipole>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`lj/long/tip4p/long (o) <pair_lj_long>` | :doc:`lj/mdf <pair_mdf>` | :doc:`lj/sdk (gko) <pair_sdk>` | :doc:`lj/sdk/coul/long (go) <pair_sdk>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`lj/sdk/coul/msm (o) <pair_sdk>` | :doc:`lj/sf/dipole/sf (go) <pair_dipole>` | :doc:`lj/smooth (o) <pair_lj_smooth>` | :doc:`lj/smooth/linear (o) <pair_lj_smooth_linear>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`lj/switch3/coulgauss/long <pair_lj_switch3_coulgauss>` | :doc:`lj96/cut (go) <pair_lj96>` | :doc:`local/density <pair_local_density>` | :doc:`lubricate (o) <pair_lubricate>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`lubricate/poly (o) <pair_lubricate>` | :doc:`lubricateU <pair_lubricateU>` | :doc:`lubricateU/poly <pair_lubricateU>` | :doc:`mdpd <pair_meso>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`mdpd/rhosum <pair_meso>` | :doc:`meam/c <pair_meamc>` | :doc:`meam/spline (o) <pair_meam_spline>` | :doc:`meam/sw/spline <pair_meam_sw_spline>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`mgpt <pair_mgpt>` | :doc:`mie/cut (g) <pair_mie>` | :doc:`momb <pair_momb>` | :doc:`morse (gkot) <pair_morse>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`morse/smooth/linear (o) <pair_morse>` | :doc:`morse/soft <pair_fep_soft>` | :doc:`multi/lucy <pair_multi_lucy>` | :doc:`multi/lucy/rx (k) <pair_multi_lucy_rx>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`nb3b/harmonic <pair_nb3b_harmonic>` | :doc:`nm/cut (o) <pair_nm>` | :doc:`nm/cut/coul/cut (o) <pair_nm>` | :doc:`nm/cut/coul/long (o) <pair_nm>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`oxdna/coaxstk <pair_oxdna>` | :doc:`oxdna/excv <pair_oxdna>` | :doc:`oxdna/hbond <pair_oxdna>` | :doc:`oxdna/stk <pair_oxdna>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`oxdna/xstk <pair_oxdna>` | :doc:`oxdna2/coaxstk <pair_oxdna2>` | :doc:`oxdna2/dh <pair_oxdna2>` | :doc:`oxdna2/excv <pair_oxdna2>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`oxdna2/hbond <pair_oxdna2>` | :doc:`oxdna2/stk <pair_oxdna2>` | :doc:`oxdna2/xstk <pair_oxdna2>` | :doc:`peri/eps <pair_peri>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`peri/lps (o) <pair_peri>` | :doc:`peri/pmb (o) <pair_peri>` | :doc:`peri/ves <pair_peri>` | :doc:`polymorphic <pair_polymorphic>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`python <pair_python>` | :doc:`quip <pair_quip>` | :doc:`reax/c (ko) <pair_reaxc>` | :doc:`rebo (io) <pair_airebo>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`resquared (go) <pair_resquared>` | :doc:`sdpd/taitwater/isothermal <pair_sdpd_taitwater_isothermal>` | :doc:`smd/hertz <pair_smd_hertz>` | :doc:`smd/tlsph <pair_smd_tlsph>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`smd/tri\_surface <pair_smd_triangulated_surface>` | :doc:`smd/ulsph <pair_smd_ulsph>` | :doc:`smtbq <pair_smtbq>` | :doc:`snap (k) <pair_snap>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`snap (k) <pair_snap>` | :doc:`soft (go) <pair_soft>` | :doc:`sph/heatconduction <pair_sph_heatconduction>` | :doc:`sph/idealgas <pair_sph_idealgas>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`sph/lj <pair_sph_lj>` | :doc:`sph/rhosum <pair_sph_rhosum>` | :doc:`sph/taitwater <pair_sph_taitwater>` | :doc:`sph/taitwater/morris <pair_sph_taitwater_morris>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`spin/dipole/cut <pair_spin_dipole>` | :doc:`spin/dipole/long <pair_spin_dipole>` | :doc:`spin/dmi <pair_spin_dmi>` | :doc:`spin/exchange <pair_spin_exchange>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`spin/magelec <pair_spin_magelec>` | :doc:`spin/neel <pair_spin_neel>` | :doc:`srp <pair_srp>` | :doc:`sw (giko) <pair_sw>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`table (gko) <pair_table>` | :doc:`table/rx (k) <pair_table_rx>` | :doc:`tdpd <pair_meso>` | :doc:`tersoff (giko) <pair_tersoff>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`tersoff/mod (gko) <pair_tersoff_mod>` | :doc:`tersoff/mod/c (o) <pair_tersoff_mod>` | :doc:`tersoff/table (o) <pair_tersoff>` | :doc:`tersoff/zbl (gko) <pair_tersoff_zbl>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`thole <pair_thole>` | :doc:`tip4p/cut (o) <pair_coul>` | :doc:`tip4p/long (o) <pair_coul>` | :doc:`tip4p/long/soft (o) <pair_fep_soft>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`tri/lj <pair_tri_lj>` | :doc:`ufm (got) <pair_ufm>` | :doc:`vashishta (gko) <pair_vashishta>` | :doc:`vashishta/table (o) <pair_vashishta>` |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
| :doc:`yukawa (gko) <pair_yukawa>` | :doc:`yukawa/colloid (go) <pair_yukawa_colloid>` | :doc:`zbl (gko) <pair_zbl>` | |
|
||||||
|
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
|
||||||
|
|
||||||
|
|
||||||
|
.. _lws: http://lammps.sandia.gov
|
||||||
|
.. _ld: Manual.html
|
||||||
|
.. _lc: Commands_all.html
|
||||||
@ -1,13 +1,5 @@
|
|||||||
"Higher level section"_Commands.html - "LAMMPS WWW Site"_lws - "LAMMPS
|
Parsing rules for input scripts
|
||||||
Documentation"_ld - "LAMMPS Commands"_lc :c
|
===============================
|
||||||
|
|
||||||
:link(lws,http://lammps.sandia.gov)
|
|
||||||
:link(ld,Manual.html)
|
|
||||||
:link(lc,Commands_all.html)
|
|
||||||
|
|
||||||
:line
|
|
||||||
|
|
||||||
Parsing rules for input scripts :h3
|
|
||||||
|
|
||||||
Each non-blank line in the input script is treated as a command.
|
Each non-blank line in the input script is treated as a command.
|
||||||
LAMMPS commands are case sensitive. Command names are lower-case, as
|
LAMMPS commands are case sensitive. Command names are lower-case, as
|
||||||
@ -30,6 +22,10 @@ comment after a trailing "&" character will prevent the command from
|
|||||||
continuing on the next line. Also note that for multi-line commands a
|
continuing on the next line. Also note that for multi-line commands a
|
||||||
single leading "#" will comment out the entire command.
|
single leading "#" will comment out the entire command.
|
||||||
|
|
||||||
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
|
# this is a comment
|
||||||
|
|
||||||
(3) The line is searched repeatedly for $ characters, which indicate
|
(3) The line is searched repeatedly for $ characters, which indicate
|
||||||
variables that are replaced with a text string. See an exception in
|
variables that are replaced with a text string. See an exception in
|
||||||
(6).
|
(6).
|
||||||
@ -37,11 +33,11 @@ variables that are replaced with a text string. See an exception in
|
|||||||
If the $ is followed by curly brackets, then the variable name is the
|
If the $ is followed by curly brackets, then the variable name is the
|
||||||
text inside the curly brackets. If no curly brackets follow the $,
|
text inside the curly brackets. If no curly brackets follow the $,
|
||||||
then the variable name is the single character immediately following
|
then the variable name is the single character immediately following
|
||||||
the $. Thus $\{myTemp\} and $x refer to variable names "myTemp" and
|
the $. Thus ${myTemp} and $x refer to variable names "myTemp" and
|
||||||
"x".
|
"x".
|
||||||
|
|
||||||
How the variable is converted to a text string depends on what style
|
How the variable is converted to a text string depends on what style
|
||||||
of variable it is; see the "variable"_variable.html doc page for details.
|
of variable it is; see the :doc:`variable <variable>` doc page for details.
|
||||||
It can be a variable that stores multiple text strings, and return one
|
It can be a variable that stores multiple text strings, and return one
|
||||||
of them. The returned text string can be multiple "words" (space
|
of them. The returned text string can be multiple "words" (space
|
||||||
separated) which will then be interpreted as multiple arguments in the
|
separated) which will then be interpreted as multiple arguments in the
|
||||||
@ -50,17 +46,23 @@ will be evaluated and its numeric result returned as a string.
|
|||||||
|
|
||||||
As a special case, if the $ is followed by parenthesis, then the text
|
As a special case, if the $ is followed by parenthesis, then the text
|
||||||
inside the parenthesis is treated as an "immediate" variable and
|
inside the parenthesis is treated as an "immediate" variable and
|
||||||
evaluated as an "equal-style variable"_variable.html. This is a way
|
evaluated as an :doc:`equal-style variable <variable>`. This is a way
|
||||||
to use numeric formulas in an input script without having to assign
|
to use numeric formulas in an input script without having to assign
|
||||||
them to variable names. For example, these 3 input script lines:
|
them to variable names. For example, these 3 input script lines:
|
||||||
|
|
||||||
variable X equal (xlo+xhi)/2+sqrt(v_area)
|
|
||||||
region 1 block $X 2 INF INF EDGE EDGE
|
.. code-block:: LAMMPS
|
||||||
variable X delete :pre
|
|
||||||
|
variable X equal (xlo+xhi)/2+sqrt(v_area)
|
||||||
|
region 1 block $X 2 INF INF EDGE EDGE
|
||||||
|
variable X delete
|
||||||
|
|
||||||
can be replaced by
|
can be replaced by
|
||||||
|
|
||||||
region 1 block $((xlo+xhi)/2+sqrt(v_area)) 2 INF INF EDGE EDGE :pre
|
|
||||||
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
|
region 1 block $((xlo+xhi)/2+sqrt(v_area)) 2 INF INF EDGE EDGE
|
||||||
|
|
||||||
so that you do not have to define (or discard) a temporary variable X.
|
so that you do not have to define (or discard) a temporary variable X.
|
||||||
|
|
||||||
@ -73,21 +75,27 @@ specified a high-precision "%.20g" is used as the default.
|
|||||||
|
|
||||||
This can be useful for formatting print output to a desired precision:
|
This can be useful for formatting print output to a desired precision:
|
||||||
|
|
||||||
print "Final energy per atom: $(pe/atoms:%10.3f) eV/atom" :pre
|
|
||||||
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
|
print "Final energy per atom: $(pe/atoms:%10.3f) eV/atom"
|
||||||
|
|
||||||
Note that neither the curly-bracket or immediate form of variables can
|
Note that neither the curly-bracket or immediate form of variables can
|
||||||
contain nested $ characters for other variables to substitute for.
|
contain nested $ characters for other variables to substitute for.
|
||||||
Thus you cannot do this:
|
Thus you cannot do this:
|
||||||
|
|
||||||
variable a equal 2
|
|
||||||
variable b2 equal 4
|
.. code-block:: LAMMPS
|
||||||
print "B2 = $\{b$a\}" :pre
|
|
||||||
|
variable a equal 2
|
||||||
|
variable b2 equal 4
|
||||||
|
print "B2 = ${b$a}"
|
||||||
|
|
||||||
Nor can you specify this $($x-1.0) for an immediate variable, but
|
Nor can you specify this $($x-1.0) for an immediate variable, but
|
||||||
you could use $(v_x-1.0), since the latter is valid syntax for an
|
you could use $(v\_x-1.0), since the latter is valid syntax for an
|
||||||
"equal-style variable"_variable.html.
|
:doc:`equal-style variable <variable>`.
|
||||||
|
|
||||||
See the "variable"_variable.html command for more details of how
|
See the :doc:`variable <variable>` command for more details of how
|
||||||
strings are assigned to variables and evaluated, and how they can be
|
strings are assigned to variables and evaluated, and how they can be
|
||||||
used in input script commands.
|
used in input script commands.
|
||||||
|
|
||||||
@ -108,29 +116,38 @@ multiple lines of an argument to retain their line breaks, the text
|
|||||||
can be enclosed in triple quotes, in which case "&" characters are not
|
can be enclosed in triple quotes, in which case "&" characters are not
|
||||||
needed. For example:
|
needed. For example:
|
||||||
|
|
||||||
print "Volume = $v"
|
|
||||||
print 'Volume = $v'
|
.. code-block:: LAMMPS
|
||||||
if "$\{steps\} > 1000" then quit
|
|
||||||
variable a string "red green blue &
|
print "Volume = $v"
|
||||||
purple orange cyan"
|
print 'Volume = $v'
|
||||||
print """
|
if "${steps} > 1000" then quit
|
||||||
System volume = $v
|
variable a string "red green blue &
|
||||||
System temperature = $t
|
purple orange cyan"
|
||||||
""" :pre
|
print """
|
||||||
|
System volume = $v
|
||||||
|
System temperature = $t
|
||||||
|
"""
|
||||||
|
|
||||||
In each case, the single, double, or triple quotes are removed when
|
In each case, the single, double, or triple quotes are removed when
|
||||||
the single argument they enclose is stored internally.
|
the single argument they enclose is stored internally.
|
||||||
|
|
||||||
See the "dump modify format"_dump_modify.html, "print"_print.html,
|
See the :doc:`dump modify format <dump_modify>`, :doc:`print <print>`,
|
||||||
"if"_if.html, and "python"_python.html commands for examples.
|
:doc:`if <if>`, and :doc:`python <python>` commands for examples.
|
||||||
|
|
||||||
A "#" or "$" character that is between quotes will not be treated as a
|
A "#" or "$" character that is between quotes will not be treated as a
|
||||||
comment indicator in (2) or substituted for as a variable in (3).
|
comment indicator in (2) or substituted for as a variable in (3).
|
||||||
|
|
||||||
NOTE: If the argument is itself a command that requires a quoted
|
.. note::
|
||||||
argument (e.g. using a "print"_print.html command as part of an
|
|
||||||
"if"_if.html or "run every"_run.html command), then single, double, or
|
|
||||||
triple quotes can be nested in the usual manner. See the doc pages
|
|
||||||
for those commands for examples. Only one of level of nesting is
|
|
||||||
allowed, but that should be sufficient for most use cases.
|
|
||||||
|
|
||||||
|
If the argument is itself a command that requires a quoted
|
||||||
|
argument (e.g. using a :doc:`print <print>` command as part of an
|
||||||
|
:doc:`if <if>` or :doc:`run every <run>` command), then single, double, or
|
||||||
|
triple quotes can be nested in the usual manner. See the doc pages
|
||||||
|
for those commands for examples. Only one of level of nesting is
|
||||||
|
allowed, but that should be sufficient for most use cases.
|
||||||
|
|
||||||
|
|
||||||
|
.. _lws: http://lammps.sandia.gov
|
||||||
|
.. _ld: Manual.html
|
||||||
|
.. _lc: Commands_all.html
|
||||||
67
doc/src/Commands_removed.rst
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
Removed commands and packages
|
||||||
|
=============================
|
||||||
|
|
||||||
|
This page lists LAMMPS commands and packages that have been removed from
|
||||||
|
the distribution and provides suggestions for alternatives or replacements.
|
||||||
|
LAMMPS has special dummy styles implemented, that will stop LAMMPS and
|
||||||
|
print a suitable error message in most cases, when a style/command is used
|
||||||
|
that has been removed.
|
||||||
|
|
||||||
|
Fix ave/spatial and fix ave/spatial/sphere
|
||||||
|
------------------------------------------
|
||||||
|
|
||||||
|
The fixes ave/spatial and ave/spatial/sphere have been removed from LAMMPS
|
||||||
|
since they were superseded by the more general and extensible "chunk
|
||||||
|
infrastructure". Here the system is partitioned in one of many possible
|
||||||
|
ways through the :doc:`compute chunk/atom <compute_chunk_atom>` command
|
||||||
|
and then averaging is done using :doc:`fix ave/chunk <fix_ave_chunk>`.
|
||||||
|
Please refer to the :doc:`chunk HOWTO <Howto_chunk>` section for an overview.
|
||||||
|
|
||||||
|
MEAM package
|
||||||
|
------------
|
||||||
|
|
||||||
|
The MEAM package has been removed since it was superseded by the
|
||||||
|
:ref:`USER-MEAMC package <PKG-USER-MEAMC>`. The code in
|
||||||
|
the USER-MEAMC package is a translation of the Fortran code of MEAM into C++,
|
||||||
|
which removes several restrictions (e.g. there can be multiple instances
|
||||||
|
in hybrid pair styles) and allows for some optimizations leading
|
||||||
|
to better performance. The new pair style :doc:`meam/c <pair_meamc>` has
|
||||||
|
the exact same syntax as the old "meam" pair style and thus pair style
|
||||||
|
:doc:`meam <pair_meamc>` is an alias to the new style and backward
|
||||||
|
compatibility of old inputs is preserved.
|
||||||
|
|
||||||
|
REAX package
|
||||||
|
------------
|
||||||
|
|
||||||
|
The REAX package has been removed since it was superseded by the
|
||||||
|
:ref:`USER-REAXC package <PKG-USER-REAXC>`. The USER-REAXC
|
||||||
|
package has been tested to yield equivalent results to the REAX package,
|
||||||
|
offers better performance, supports OpenMP multi-threading via USER-OMP,
|
||||||
|
and GPU and threading parallelization through KOKKOS. The new pair styles
|
||||||
|
are not syntax compatible with the removed reax pair style, so input
|
||||||
|
files will have to be adapted.
|
||||||
|
|
||||||
|
USER-CUDA package
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
The USER-CUDA package had been removed, since it had been unmaintained
|
||||||
|
for a long time and had known bugs and problems. Significant parts of
|
||||||
|
the design were transferred to the
|
||||||
|
:ref:`KOKKOS package <PKG-KOKKOS>`, which has similar
|
||||||
|
performance characteristics on Nvidia GPUs. Both, the KOKKOS
|
||||||
|
and the :ref:`GPU package <PKG-GPU>` are maintained
|
||||||
|
and allow running LAMMPS with GPU acceleration.
|
||||||
|
|
||||||
|
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>`
|
||||||
|
|
||||||
|
|
||||||
|
.. _lws: http://lammps.sandia.gov
|
||||||
|
.. _ld: Manual.html
|
||||||
|
.. _lc: Commands_all.html
|
||||||
91
doc/src/Commands_structure.rst
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
Input script structure
|
||||||
|
======================
|
||||||
|
|
||||||
|
This page describes the structure of a typical LAMMPS input script.
|
||||||
|
The examples directory in the LAMMPS distribution contains many sample
|
||||||
|
input scripts; it is discussed on the :doc:`Examples <Examples>` doc
|
||||||
|
page.
|
||||||
|
|
||||||
|
A LAMMPS input script typically has 4 parts:
|
||||||
|
|
||||||
|
1. Initialization
|
||||||
|
2. Atom definition
|
||||||
|
3. Settings
|
||||||
|
4. Run a simulation
|
||||||
|
|
||||||
|
The last 2 parts can be repeated as many times as desired. I.e. run a
|
||||||
|
simulation, change some settings, run some more, etc. Each of the 4
|
||||||
|
parts is now described in more detail. Remember that almost all
|
||||||
|
commands need only be used if a non-default value is desired.
|
||||||
|
|
||||||
|
(1) Initialization
|
||||||
|
|
||||||
|
Set parameters that need to be defined before atoms are created or
|
||||||
|
read-in from a file.
|
||||||
|
|
||||||
|
The relevant commands are :doc:`units <units>`,
|
||||||
|
:doc:`dimension <dimension>`, :doc:`newton <newton>`,
|
||||||
|
:doc:`processors <processors>`, :doc:`boundary <boundary>`,
|
||||||
|
:doc:`atom\_style <atom_style>`, :doc:`atom\_modify <atom_modify>`.
|
||||||
|
|
||||||
|
If force-field parameters appear in the files that will be read, these
|
||||||
|
commands tell LAMMPS what kinds of force fields are being used:
|
||||||
|
:doc:`pair\_style <pair_style>`, :doc:`bond\_style <bond_style>`,
|
||||||
|
:doc:`angle\_style <angle_style>`, :doc:`dihedral\_style <dihedral_style>`,
|
||||||
|
:doc:`improper\_style <improper_style>`.
|
||||||
|
|
||||||
|
(2) Atom definition
|
||||||
|
|
||||||
|
There are 3 ways to define atoms in LAMMPS. Read them in from a data
|
||||||
|
or restart file via the :doc:`read\_data <read_data>` or
|
||||||
|
:doc:`read\_restart <read_restart>` commands. These files can contain
|
||||||
|
molecular topology information. Or create atoms on a lattice (with no
|
||||||
|
molecular topology), using these commands: :doc:`lattice <lattice>`,
|
||||||
|
:doc:`region <region>`, :doc:`create\_box <create_box>`,
|
||||||
|
:doc:`create\_atoms <create_atoms>`. The entire set of atoms can be
|
||||||
|
duplicated to make a larger simulation using the
|
||||||
|
:doc:`replicate <replicate>` command.
|
||||||
|
|
||||||
|
(3) Settings
|
||||||
|
|
||||||
|
Once atoms and molecular topology are defined, a variety of settings
|
||||||
|
can be specified: force field coefficients, simulation parameters,
|
||||||
|
output options, etc.
|
||||||
|
|
||||||
|
Force field coefficients are set by these commands (they can also be
|
||||||
|
set in the read-in files): :doc:`pair\_coeff <pair_coeff>`,
|
||||||
|
:doc:`bond\_coeff <bond_coeff>`, :doc:`angle\_coeff <angle_coeff>`,
|
||||||
|
:doc:`dihedral\_coeff <dihedral_coeff>`,
|
||||||
|
:doc:`improper\_coeff <improper_coeff>`,
|
||||||
|
:doc:`kspace\_style <kspace_style>`, :doc:`dielectric <dielectric>`,
|
||||||
|
:doc:`special\_bonds <special_bonds>`.
|
||||||
|
|
||||||
|
Various simulation parameters are set by these commands:
|
||||||
|
:doc:`neighbor <neighbor>`, :doc:`neigh\_modify <neigh_modify>`,
|
||||||
|
:doc:`group <group>`, :doc:`timestep <timestep>`,
|
||||||
|
:doc:`reset\_timestep <reset_timestep>`, :doc:`run\_style <run_style>`,
|
||||||
|
:doc:`min\_style <min_style>`, :doc:`min\_modify <min_modify>`.
|
||||||
|
|
||||||
|
Fixes impose a variety of boundary conditions, time integration, and
|
||||||
|
diagnostic options. The :doc:`fix <fix>` command comes in many flavors.
|
||||||
|
|
||||||
|
Various computations can be specified for execution during a
|
||||||
|
simulation using the :doc:`compute <compute>`,
|
||||||
|
:doc:`compute\_modify <compute_modify>`, and :doc:`variable <variable>`
|
||||||
|
commands.
|
||||||
|
|
||||||
|
Output options are set by the :doc:`thermo <thermo>`, :doc:`dump <dump>`,
|
||||||
|
and :doc:`restart <restart>` commands.
|
||||||
|
|
||||||
|
(4) Run a simulation
|
||||||
|
|
||||||
|
A molecular dynamics simulation is run using the :doc:`run <run>`
|
||||||
|
command. Energy minimization (molecular statics) is performed using
|
||||||
|
the :doc:`minimize <minimize>` command. A parallel tempering
|
||||||
|
(replica-exchange) simulation can be run using the
|
||||||
|
:doc:`temper <temper>` command.
|
||||||
|
|
||||||
|
|
||||||
|
.. _lws: http://lammps.sandia.gov
|
||||||
|
.. _ld: Manual.html
|
||||||
|
.. _lc: Commands_all.html
|
||||||
|
Before Width: | Height: | Size: 3.8 KiB |
@ -1,9 +0,0 @@
|
|||||||
\documentclass[12pt]{article}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
$$
|
|
||||||
E = K (\theta - \theta_0)^2 + K_{UB} (r - r_{UB})^2
|
|
||||||
$$
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
|
Before Width: | Height: | Size: 16 KiB |
@ -1,12 +0,0 @@
|
|||||||
\documentclass[12pt]{article}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
\begin{eqnarray*}
|
|
||||||
E & = & E_a + E_{bb} + E_{ba} \\
|
|
||||||
E_a & = & K_2 (\theta - \theta_0)^2 + K_3 (\theta - \theta_0)^3 + K_4 (\theta - \theta_0)^4 \\
|
|
||||||
E_{bb} & = & M (r_{ij} - r_1) (r_{jk} - r_2) \\
|
|
||||||
E_{ba} & = & N_1 (r_{ij} - r_1) (\theta - \theta_0) + N_2 (r_{jk} - r_2) (\theta - \theta_0)
|
|
||||||
\end{eqnarray*}
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
|
Before Width: | Height: | Size: 2.3 KiB |
@ -1,9 +0,0 @@
|
|||||||
\documentclass[12pt]{article}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
$$
|
|
||||||
E = K [1 + \cos(\theta)]
|
|
||||||
$$
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
|
Before Width: | Height: | Size: 5.2 KiB |
@ -1,15 +0,0 @@
|
|||||||
\documentclass[12pt]{article}
|
|
||||||
|
|
||||||
\pagestyle{empty}
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
$$
|
|
||||||
E = K \left[ 1 + \cos(n\theta - \theta_0)\right]
|
|
||||||
$$
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
|
|
||||||
%%% Local Variables:
|
|
||||||
%%% mode: latex
|
|
||||||
%%% TeX-master: t
|
|
||||||
%%% End:
|
|
||||||
|
Before Width: | Height: | Size: 2.5 KiB |
@ -1,9 +0,0 @@
|
|||||||
\documentclass[12pt]{article}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
$$
|
|
||||||
E = K [1 - \cos(\theta - \theta_0)]
|
|
||||||
$$
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
|
Before Width: | Height: | Size: 3.3 KiB |
@ -1,9 +0,0 @@
|
|||||||
\documentstyle[12pt]{article}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
$$
|
|
||||||
E=C\left[ 1-B(-1)^ncos\left( n\theta\right) \right]
|
|
||||||
$$
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
|
Before Width: | Height: | Size: 3.8 KiB |
@ -1,9 +0,0 @@
|
|||||||
\documentstyle[12pt]{article}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
$$
|
|
||||||
E=-\frac{Umin}{2} \left[ 1+Cos(\theta-\theta_0) \right]
|
|
||||||
$$
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
|
Before Width: | Height: | Size: 7.7 KiB |
@ -1,13 +0,0 @@
|
|||||||
\documentstyle[12pt]{article}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
$$
|
|
||||||
E=-U_{min}
|
|
||||||
\frac{e^{-a U(\theta,\theta_0)}-1}{e^a-1}
|
|
||||||
\quad\mbox{with}\quad
|
|
||||||
U(\theta,\theta_0)
|
|
||||||
=-0.5 \left(1+\cos(\theta-\theta_0) \right)
|
|
||||||
$$
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
|
Before Width: | Height: | Size: 3.2 KiB |
@ -1,9 +0,0 @@
|
|||||||
\documentclass[12pt]{article}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
$$
|
|
||||||
E = K [\cos(\theta) - \cos(\theta_0)]^2
|
|
||||||
$$
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
|
Before Width: | Height: | Size: 7.8 KiB |
@ -1,9 +0,0 @@
|
|||||||
\documentclass[12pt]{article}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
\thispagestyle{empty}
|
|
||||||
$$
|
|
||||||
E = K_{SS} \left(r_{12}-r_{12,0}\right)\left(r_{32}-r_{32,0}\right) + K_{BS0}\left(r_{12}-r_{12,0}\right)\left(\theta-\theta_0\right) + K_{BS1}\left(r_{32}-r_{32,0}\right)\left(\theta-\theta_0\right)
|
|
||||||
$$
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
|
Before Width: | Height: | Size: 2.9 KiB |
@ -1,10 +0,0 @@
|
|||||||
\documentclass[12pt]{article}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
\begin{eqnarray*}
|
|
||||||
-\vec{T_j} & = & \vec{r_{ij}} \times \vec{F_i}\\
|
|
||||||
\vec{F_j} & = & -\vec{F_i} \\
|
|
||||||
\end{eqnarray*}
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
|
Before Width: | Height: | Size: 2.6 KiB |
@ -1,9 +0,0 @@
|
|||||||
\documentclass[12pt]{article}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
$$
|
|
||||||
\cos\gamma = \frac{\vec{\mu_j}\bullet\vec{r_{ij}}}{\mu_j\,r_{ij}}
|
|
||||||
$$
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
|
Before Width: | Height: | Size: 2.6 KiB |
@ -1,9 +0,0 @@
|
|||||||
\documentclass[12pt]{article}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
$$
|
|
||||||
E = K (\cos\gamma - \cos\gamma_0)^2
|
|
||||||
$$
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
|
Before Width: | Height: | Size: 5.0 KiB |
@ -1,9 +0,0 @@
|
|||||||
\documentclass[12pt]{article}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
$$
|
|
||||||
\vec{T_j} = \frac{2K(\cos\gamma - \cos\gamma_0)}{\mu_j\,r_{ij}}\,
|
|
||||||
\vec{r_{ij}} \times \vec{\mu_j}
|
|
||||||
$$
|
|
||||||
\end{document}
|
|
||||||
|
Before Width: | Height: | Size: 4.5 KiB |
@ -1,9 +0,0 @@
|
|||||||
\documentclass[12pt]{article}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
$$
|
|
||||||
E = K [C_0 + C_1 \cos ( \theta) + C_2 \cos( 2 \theta) ]
|
|
||||||
$$
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
|
Before Width: | Height: | Size: 2.7 KiB |
@ -1,9 +0,0 @@
|
|||||||
\documentclass[12pt]{article}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
$$
|
|
||||||
E = K [ 1.0 + c \cos ( n \theta) ]
|
|
||||||
$$
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
|
Before Width: | Height: | Size: 2.0 KiB |
@ -1,9 +0,0 @@
|
|||||||
\documentclass[12pt]{article}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
$$
|
|
||||||
E = K (\theta - \theta_0)^2
|
|
||||||
$$
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
|
Before Width: | Height: | Size: 9.0 KiB |
@ -1,9 +0,0 @@
|
|||||||
\documentclass[12pt]{article}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
\thispagestyle{empty}
|
|
||||||
$$
|
|
||||||
E = K (\theta - \theta_0)^2 \left[ 1 - 0.014(\theta - \theta_0) + 5.6(10)^{-5} (\theta - \theta_0)^2 - 7.0(10)^{-7} (\theta - \theta_0)^3 + 9(10)^{-10} (\theta - \theta_0)^4 \right]
|
|
||||||
$$
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
|
Before Width: | Height: | Size: 5.1 KiB |
@ -1,9 +0,0 @@
|
|||||||
\documentclass[12pt]{article}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
$$
|
|
||||||
E = K_2 (\theta - \theta_0)^2 + K_3 (\theta - \theta_0)^3 + K_4 (\theta - \theta_0)^4
|
|
||||||
$$
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
|
Before Width: | Height: | Size: 5.0 KiB |
@ -1,9 +0,0 @@
|
|||||||
\documentclass[12pt]{article}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
$$
|
|
||||||
E = K_2 (r - r_0)^2 + K_3 (r - r_0)^3 + K_4 (r - r_0)^4
|
|
||||||
$$
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
|
Before Width: | Height: | Size: 8.1 KiB |
@ -1,11 +0,0 @@
|
|||||||
\documentclass[12pt]{article}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
$$
|
|
||||||
E = -0.5 K R_0^2 \ln \left[ 1 - \left(\frac{r}{R_0}\right)^2\right] +
|
|
||||||
4 \epsilon \left[ \left(\frac{\sigma}{r}\right)^{12} -
|
|
||||||
\left(\frac{\sigma}{r}\right)^6 \right] + \epsilon
|
|
||||||
$$
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
|
Before Width: | Height: | Size: 11 KiB |
@ -1,13 +0,0 @@
|
|||||||
\documentclass[12pt]{article}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
$$
|
|
||||||
E = -0.5 K R_0^2
|
|
||||||
\ln \left[1 -\left( \frac{\left(r - \Delta\right)}{R_0}\right)^2 \right] +
|
|
||||||
4 \epsilon \left[ \left(\frac{\sigma}{\left(r -
|
|
||||||
\Delta\right)}\right)^{12} - \left(\frac{\sigma}{\left(r -
|
|
||||||
\Delta\right)}\right)^6 \right] + \epsilon
|
|
||||||
$$
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
|
Before Width: | Height: | Size: 2.1 KiB |
@ -1,10 +0,0 @@
|
|||||||
\documentclass[12pt]{article}
|
|
||||||
\pagestyle{empty}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
$$
|
|
||||||
E = K (r^2 - r_0^2)^2
|
|
||||||
$$
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
|
Before Width: | Height: | Size: 1.8 KiB |
@ -1,9 +0,0 @@
|
|||||||
\documentclass[12pt]{article}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
$$
|
|
||||||
E = K (r - r_0)^2
|
|
||||||
$$
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
|
Before Width: | Height: | Size: 5.0 KiB |
@ -1,9 +0,0 @@
|
|||||||
\documentclass[12pt]{article}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
$$
|
|
||||||
E = \frac{Umin}{(r_0-r_c)^2} \left[ (r-r_0)^2-(r_c-r_0)^2 \right]
|
|
||||||
$$
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
|
Before Width: | Height: | Size: 5.1 KiB |
@ -1,9 +0,0 @@
|
|||||||
\documentclass[12pt]{article}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
$$
|
|
||||||
E = \frac{Umin}{(r_0-r_c)^2} \left[ (r-r_0)^2-(r_c-r_0)^2 \right]
|
|
||||||
$$
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
|
Before Width: | Height: | Size: 5.7 KiB |
@ -1,9 +0,0 @@
|
|||||||
\documentclass[12pt]{article}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
\thispagestyle{empty}
|
|
||||||
$$
|
|
||||||
E = K (r - r_0)^2 \left[ 1 - 2.55(r-r_0) + (7/12) 2.55^2(r-r_0)^2 \right]
|
|
||||||
$$
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
|
Before Width: | Height: | Size: 2.5 KiB |
@ -1,10 +0,0 @@
|
|||||||
\documentclass[12pt]{article}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
$$
|
|
||||||
% E = D \left[ 1 - \exp \left( -\alpha (r - r_0) \right) \right]^2
|
|
||||||
E = D \left[ 1 - e^{-\alpha (r - r_0)} \right]^2
|
|
||||||
$$
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
|
Before Width: | Height: | Size: 3.5 KiB |
@ -1,9 +0,0 @@
|
|||||||
\documentclass[12pt]{article}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
$$
|
|
||||||
E = \frac{\epsilon (r - r_0)^2}{ [ \lambda^2 - (r - r_0)^2 ]}
|
|
||||||
$$
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
|
Before Width: | Height: | Size: 3.8 KiB |
@ -1,10 +0,0 @@
|
|||||||
\documentclass[12pt]{article}
|
|
||||||
\pagestyle{empty}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
$$
|
|
||||||
E = - \frac{\epsilon}{2} \ln \left[ 1 - \left(\frac{r-r0}{\Delta}\right)^2\right]
|
|
||||||
$$
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
|
Before Width: | Height: | Size: 9.3 KiB |
@ -1,11 +0,0 @@
|
|||||||
\documentclass[12pt]{article}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
$$
|
|
||||||
E = K (r - R_c)^ 2 (r - R_c - B_1) (r - R_c - B_2) + U_0 +
|
|
||||||
4 \epsilon \left[ \left(\frac{\sigma}{r}\right)^{12} -
|
|
||||||
\left(\frac{\sigma}{r}\right)^6 \right] + \epsilon
|
|
||||||
$$
|
|
||||||
|
|
||||||
\end{document}
|
|
||||||
BIN
doc/src/Eqs/fix_bond_react.jpg
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
9
doc/src/Eqs/fix_bond_react.tex
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
\documentstyle[12pt]{article}
|
||||||
|
\pagestyle{empty}
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
\begin{eqnarray*}
|
||||||
|
k = AT^{n}e^{\frac{-E_{a}}{k_{B}T}}
|
||||||
|
\end{eqnarray*}
|
||||||
|
|
||||||
|
\end{document}
|
||||||
22
doc/src/Errors.rst
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
Errors
|
||||||
|
******
|
||||||
|
|
||||||
|
These doc pages describe the errors you can encounter when using
|
||||||
|
LAMMPS. The common problems include conceptual issues. The messages
|
||||||
|
and warnings doc pages give complete lists of all the messages the
|
||||||
|
code may generate (except those generated by USER packages), with
|
||||||
|
additional details for many of them.
|
||||||
|
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
Errors_common
|
||||||
|
Errors_bugs
|
||||||
|
Errors_messages
|
||||||
|
Errors_warnings
|
||||||
|
|
||||||
|
|
||||||
|
.. _lws: http://lammps.sandia.gov
|
||||||
|
.. _ld: Manual.html
|
||||||
|
.. _lc: Commands_all.html
|
||||||
32
doc/src/Errors_bugs.rst
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
Reporting bugs
|
||||||
|
==============
|
||||||
|
|
||||||
|
If you are confident that you have found a bug in LAMMPS, follow these
|
||||||
|
steps.
|
||||||
|
|
||||||
|
Check the `New features and bug fixes <http://lammps.sandia.gov/bug.html>`_ section of the `LAMMPS WWW site <lws_>`_ to see if the bug has already been reported or fixed or the
|
||||||
|
`Unfixed bug <http://lammps.sandia.gov/unbug.html>`_ to see if a fix is
|
||||||
|
pending.
|
||||||
|
|
||||||
|
Check the `mailing list <http://lammps.sandia.gov/mail.html>`_ to see if
|
||||||
|
it has been discussed before.
|
||||||
|
|
||||||
|
If not, send an email to the mailing list describing the problem with
|
||||||
|
any ideas you have as to what is causing it or where in the code the
|
||||||
|
problem might be. The developers will ask for more info if needed,
|
||||||
|
such as an input script or data files.
|
||||||
|
|
||||||
|
The most useful thing you can do to help us fix the bug is to isolate
|
||||||
|
the problem. Run it on the smallest number of atoms and fewest number
|
||||||
|
of processors and with the simplest input script that reproduces the
|
||||||
|
bug and try to identify what command or combination of commands is
|
||||||
|
causing the problem.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
this page needs to have GitHub issues info added
|
||||||
|
|
||||||
|
|
||||||
|
.. _lws: http://lammps.sandia.gov
|
||||||
|
.. _ld: Manual.html
|
||||||
|
.. _lc: Commands_all.html
|
||||||