Renamed: adaptglok -> fire2
3
.github/CONTRIBUTING.md
vendored
@ -68,7 +68,8 @@ How quickly your contribution will be integrated depends largely on how much eff
|
||||
Here is a checklist of steps you need to follow to submit a single file or user package for our consideration. Following these steps will save both you and us time. See existing files in packages in the source directory for examples. If you are uncertain, please ask on the lammps-users mailing list.
|
||||
|
||||
* All source files you provide must compile with the most current version of LAMMPS with multiple configurations. In particular you need to test compiling LAMMPS from scratch with `-DLAMMPS_BIGBIG` set in addition to the default `-DLAMMPS_SMALLBIG` setting. Your code will need to work correctly in serial and in parallel using MPI.
|
||||
* For consistency with the rest of LAMMPS and especially, if you want your contribution(s) to be added to main LAMMPS code or one of its standard packages, it needs to be written in a style compatible with other LAMMPS source files. This means: 2-character indentation per level, no tabs, no lines over 80 characters. I/O is done via the C-style stdio library, style class header files should not import any system headers outside of <cstdio>, STL containers should be avoided in headers, and forward declarations used where possible or needed. All added code should be placed into the LAMMPS_NS namespace or a sub-namespace; global or static variables should be avoided, as they conflict with the modular nature of LAMMPS and the C++ class structure. There MUST NOT be any "using namespace XXX;" statements in headers. In the implementation file (<name>.cpp) system includes should be placed in angular brackets (<>) and for c-library functions the C++ style header files should be included (<cstdio> instead of <stdio.h>, or <cstring> instead of <string.h>). This all is so the developers can more easily understand, integrate, and maintain your contribution and reduce conflicts with other parts of LAMMPS. This basically means that the code accesses data structures, performs its operations, and is formatted similar to other LAMMPS source files, including the use of the error class for error and warning messages.
|
||||
* For consistency with the rest of LAMMPS and especially, if you want your contribution(s) to be added to main LAMMPS code or one of its standard packages, it needs to be written in a style compatible with other LAMMPS source files. This means: 2-character indentation per level, no tabs, no lines over 80 characters. I/O is done via the C-style stdio library, style class header files should not import any system headers, STL containers should be avoided in headers, and forward declarations used where possible or needed. All added code should be placed into the LAMMPS_NS namespace or a sub-namespace; global or static variables should be avoided, as they conflict with the modular nature of LAMMPS and the C++ class structure. There MUST NOT be any "using namespace XXX;" statements in headers. In the implementation file (<name>.cpp) system includes should be placed in angular brackets (<>) and for c-library functions the C++ style header files should be included (<cstdio> instead of <stdio.h>, or <cstring> instead of <string.h>). This all is so the developers can more easily understand, integrate, and maintain your contribution and reduce conflicts with other parts of LAMMPS. This basically means that the code accesses data structures, performs its operations, and is formatted similar to other LAMMPS source files, including the use of the error class for error and warning messages.
|
||||
* Source, style name, and documentation file should follow the following naming convention: style names should be lowercase and words separated by a forward slash; for a new fix style 'foo/bar', the class should be named FixFooBar, the name of the source files should be 'fix_foo_bar.h' and 'fix_foo_bar.cpp' and the corresponding documentation should be in a file 'fix_foo_bar.txt'.
|
||||
* If you want your contribution to be added as a user-contributed feature, and it is a single file (actually a `<name>.cpp` and `<name>.h` file) it can be rapidly added to the USER-MISC directory. Include the one-line entry to add to the USER-MISC/README file in that directory, along with the 2 source files. You can do this multiple times if you wish to contribute several individual features.
|
||||
* If you want your contribution to be added as a user-contribution and it is several related features, it is probably best to make it a user package directory with a name like USER-FOO. In addition to your new files, the directory should contain a README text file. The README should contain your name and contact information and a brief description of what your new package does. If your files depend on other LAMMPS style files also being installed (e.g. because your file is a derived class from the other LAMMPS class), then an Install.sh file is also needed to check for those dependencies. See other README and Install.sh files in other USER directories as examples. Send us a tarball of this USER-FOO directory.
|
||||
* Your new source files need to have the LAMMPS copyright, GPL notice, and your name and email address at the top, like other user-contributed LAMMPS source files. They need to create a class that is inside the LAMMPS namespace. If the file is for one of the USER packages, including USER-MISC, then we are not as picky about the coding style (see above). I.e. the files do not need to be in the same stylistic format and syntax as other LAMMPS files, though that would be nice for developers as well as users who try to read your code.
|
||||
|
||||
@ -52,10 +52,17 @@ check_for_autogen_files(${LAMMPS_SOURCE_DIR})
|
||||
include(CheckCCompilerFlag)
|
||||
include(CheckIncludeFileCXX)
|
||||
|
||||
if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel")
|
||||
if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel")
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -restrict")
|
||||
endif()
|
||||
|
||||
option(DISABLE_CXX11_REQUIREMENT "Disable check that requires C++11 for compiling LAMMPS" OFF)
|
||||
if(DISABLE_CXX11_REQUIREMENT)
|
||||
add_definitions(-DLAMMPS_CXX98)
|
||||
else()
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
endif()
|
||||
|
||||
# GNU compiler features
|
||||
if (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
|
||||
option(ENABLE_COVERAGE "Enable code coverage" OFF)
|
||||
@ -315,13 +322,14 @@ endif()
|
||||
include(Packages/KSPACE)
|
||||
include(Packages/PYTHON)
|
||||
include(Packages/VORONOI)
|
||||
include(Packages/USER-SCAFACOS)
|
||||
include(Packages/USER-PLUMED)
|
||||
include(Packages/USER-COLVARS)
|
||||
include(Packages/USER-MOLFILE)
|
||||
include(Packages/USER-NETCDF)
|
||||
include(Packages/USER-SMD)
|
||||
include(Packages/USER-QUIP)
|
||||
include(Packages/USER-PLUMED)
|
||||
include(Packages/USER-QMMM)
|
||||
include(Packages/USER-QUIP)
|
||||
include(Packages/USER-SCAFACOS)
|
||||
include(Packages/USER-SMD)
|
||||
include(Packages/USER-VTK)
|
||||
include(Packages/KIM)
|
||||
include(Packages/LATTE)
|
||||
@ -411,8 +419,7 @@ endforeach()
|
||||
##############################################
|
||||
# add lib sources of (simple) enabled packages
|
||||
############################################
|
||||
foreach(SIMPLE_LIB POEMS USER-ATC USER-AWPMD USER-COLVARS USER-H5MD
|
||||
USER-QMMM)
|
||||
foreach(SIMPLE_LIB POEMS USER-ATC USER-AWPMD USER-H5MD USER-QMMM)
|
||||
if(PKG_${SIMPLE_LIB})
|
||||
string(REGEX REPLACE "^USER-" "" PKG_LIB "${SIMPLE_LIB}")
|
||||
string(TOLOWER "${PKG_LIB}" PKG_LIB)
|
||||
@ -426,10 +433,6 @@ foreach(SIMPLE_LIB POEMS USER-ATC USER-AWPMD USER-COLVARS USER-H5MD
|
||||
target_include_directories(awpmd PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/awpmd/systems/interact ${LAMMPS_LIB_SOURCE_DIR}/awpmd/ivutils/include)
|
||||
elseif(PKG_LIB STREQUAL h5md)
|
||||
target_include_directories(h5md PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/h5md/include ${HDF5_INCLUDE_DIRS})
|
||||
elseif(PKG_LIB STREQUAL colvars)
|
||||
target_compile_options(colvars PRIVATE -DLEPTON)
|
||||
target_include_directories(colvars PRIVATE ${LAMMPS_LIB_SOURCE_DIR}/colvars/lepton/include)
|
||||
target_include_directories(colvars PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/colvars)
|
||||
else()
|
||||
target_include_directories(${PKG_LIB} PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB})
|
||||
endif()
|
||||
|
||||
@ -1,7 +1,14 @@
|
||||
if(PKG_KOKKOS)
|
||||
# TODO: this option needs to be documented when this works with a
|
||||
# regular release version of KOKKOS, and a version compatibility check
|
||||
# of external KOKKOS lib versus what the KOKKOS package needs is required.
|
||||
option(EXTERNAL_KOKKOS "Build against external kokkos library")
|
||||
if(EXTERNAL_KOKKOS)
|
||||
find_package(Kokkos REQUIRED)
|
||||
list(APPEND LAMMPS_LINK_LIBS Kokkos::kokkos)
|
||||
else()
|
||||
set(LAMMPS_LIB_KOKKOS_SRC_DIR ${LAMMPS_LIB_SOURCE_DIR}/kokkos)
|
||||
set(LAMMPS_LIB_KOKKOS_BIN_DIR ${LAMMPS_LIB_BINARY_DIR}/kokkos)
|
||||
add_definitions(-DLMP_KOKKOS)
|
||||
add_subdirectory(${LAMMPS_LIB_KOKKOS_SRC_DIR} ${LAMMPS_LIB_KOKKOS_BIN_DIR})
|
||||
|
||||
set(Kokkos_INCLUDE_DIRS ${LAMMPS_LIB_KOKKOS_SRC_DIR}/core/src
|
||||
@ -10,6 +17,8 @@ if(PKG_KOKKOS)
|
||||
${LAMMPS_LIB_KOKKOS_BIN_DIR})
|
||||
include_directories(${Kokkos_INCLUDE_DIRS})
|
||||
list(APPEND LAMMPS_LINK_LIBS kokkos)
|
||||
endif()
|
||||
add_definitions(-DLMP_KOKKOS)
|
||||
|
||||
set(KOKKOS_PKG_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/KOKKOS)
|
||||
set(KOKKOS_PKG_SOURCES ${KOKKOS_PKG_SOURCES_DIR}/kokkos.cpp
|
||||
|
||||
42
cmake/Modules/Packages/USER-COLVARS.cmake
Normal file
@ -0,0 +1,42 @@
|
||||
if(PKG_USER-COLVARS)
|
||||
|
||||
set(COLVARS_SOURCE_DIR ${LAMMPS_LIB_SOURCE_DIR}/colvars)
|
||||
|
||||
file(GLOB COLVARS_SOURCES ${COLVARS_SOURCE_DIR}/[^.]*.cpp)
|
||||
|
||||
# Build Lepton by default
|
||||
set(COLVARS_LEPTON_DEFAULT ON)
|
||||
# but not if C++11 is disabled per user request
|
||||
if(DEFINED DISABLE_CXX11_REQUIREMENT)
|
||||
if(DISABLE_CXX11_REQUIREMENT)
|
||||
set(COLVARS_LEPTON_DEFAULT OFF)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
option(COLVARS_LEPTON "Build and link the Lepton library" ${COLVARS_LEPTON_DEFAULT})
|
||||
|
||||
# Verify that the user's choice is consistent
|
||||
if(DEFINED DISABLE_CXX11_REQUIREMENT)
|
||||
if((DISABLE_CXX11_REQUIREMENT) AND (COLVARS_LEPTON))
|
||||
message(FATAL_ERROR "Building the Lepton library requires C++11 or later.")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(COLVARS_LEPTON)
|
||||
set(LEPTON_DIR ${LAMMPS_LIB_SOURCE_DIR}/colvars/lepton)
|
||||
file(GLOB LEPTON_SOURCES ${LEPTON_DIR}/src/[^.]*.cpp)
|
||||
add_library(lepton STATIC ${LEPTON_SOURCES})
|
||||
target_include_directories(lepton PRIVATE ${LEPTON_DIR}/include)
|
||||
endif()
|
||||
|
||||
add_library(colvars STATIC ${COLVARS_SOURCES})
|
||||
target_include_directories(colvars PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/colvars)
|
||||
list(APPEND LAMMPS_LINK_LIBS colvars)
|
||||
|
||||
if(COLVARS_LEPTON)
|
||||
list(APPEND LAMMPS_LINK_LIBS lepton)
|
||||
target_compile_options(colvars PRIVATE -DLEPTON)
|
||||
target_include_directories(colvars PUBLIC ${LEPTON_DIR}/include)
|
||||
endif()
|
||||
|
||||
endif()
|
||||
@ -7,7 +7,7 @@ set(ALL_PACKAGES ASPHERE CLASS2 COLLOID CORESHELL DIPOLE
|
||||
PYTHON QEQ REPLICA RIGID SHOCK SRD VORONOI
|
||||
USER-CGDNA USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD
|
||||
USER-DRUDE USER-FEP USER-MEAMC USER-MESO
|
||||
USER-MISC USER-MOFFF USER-OMP USER-PLUMED USER-PHONON USER-REAXC
|
||||
USER-MISC USER-MOFFF USER-OMP USER-PHONON USER-REAXC
|
||||
USER-SPH USER-SMD USER-UEF USER-YAFF)
|
||||
|
||||
foreach(PKG ${ALL_PACKAGES})
|
||||
|
||||
@ -69,6 +69,7 @@ html: $(OBJECTS) $(ANCHORCHECK)
|
||||
sphinx-build $(SPHINXEXTRA) -b html -c utils/sphinx-config -d $(BUILDDIR)/doctrees $(RSTDIR) html ;\
|
||||
echo "############################################" ;\
|
||||
doc_anchor_check src/*.txt ;\
|
||||
env LC_ALL=C grep -n '[^ -~]' src/*.txt ;\
|
||||
echo "############################################" ;\
|
||||
deactivate ;\
|
||||
)
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
.TH LAMMPS "7 August 2019" "2019-08-07"
|
||||
.TH LAMMPS "19 September 2019" "2019-09-19"
|
||||
.SH NAME
|
||||
.B LAMMPS
|
||||
\- Molecular Dynamics Simulator.
|
||||
|
||||
@ -12,6 +12,7 @@ Optional build settings :h3
|
||||
LAMMPS can be built with several optional settings. Each sub-section
|
||||
explain how to do this for building both with CMake and make.
|
||||
|
||||
"C++11 standard compliance test"_#cxx11 when building all of LAMMPS
|
||||
"FFT library"_#fft for use with the "kspace_style pppm"_kspace_style.html command
|
||||
"Size of LAMMPS data types"_#size
|
||||
"Read or write compressed files"_#gzip
|
||||
@ -23,6 +24,28 @@ explain how to do this for building both with CMake and make.
|
||||
|
||||
:line
|
||||
|
||||
C++11 standard compliance test :h4,link(cxx11)
|
||||
|
||||
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]:
|
||||
|
||||
-D DISABLE_CXX11_REQUIREMENT=yes
|
||||
|
||||
[Makefile.machine setting]:
|
||||
|
||||
LMP_INC = -DLAMMPS_CXX98
|
||||
|
||||
:line
|
||||
|
||||
FFT library :h4,link(fft)
|
||||
|
||||
When the KSPACE package is included in a LAMMPS build, the
|
||||
|
||||
@ -124,6 +124,7 @@ An alphabetic list of all general LAMMPS commands.
|
||||
"thermo"_thermo.html,
|
||||
"thermo_modify"_thermo_modify.html,
|
||||
"thermo_style"_thermo_style.html,
|
||||
"third_order"_third_order.html,
|
||||
"timer"_timer.html,
|
||||
"timestep"_timestep.html,
|
||||
"uncompute"_uncompute.html,
|
||||
|
||||
@ -166,6 +166,7 @@ OPT.
|
||||
"lj/smooth/linear (o)"_pair_lj_smooth_linear.html,
|
||||
"lj/switch3/coulgauss/long"_pair_lj_switch3_coulgauss.html,
|
||||
"lj96/cut (go)"_pair_lj96.html,
|
||||
"local/density"_pair_local_density.html,
|
||||
"lubricate (o)"_pair_lubricate.html,
|
||||
"lubricate/poly (o)"_pair_lubricate.html,
|
||||
"lubricateU"_pair_lubricateU.html,
|
||||
|
||||
BIN
doc/src/Eqs/norm_inf.jpg
Normal file
|
After Width: | Height: | Size: 14 KiB |
15
doc/src/Eqs/norm_inf.tex
Normal file
@ -0,0 +1,15 @@
|
||||
\documentclass[preview]{standalone}
|
||||
\usepackage{varwidth}
|
||||
\usepackage[utf8x]{inputenc}
|
||||
\usepackage{amsmath, amssymb, graphics, setspace}
|
||||
|
||||
\begin{document}
|
||||
\begin{varwidth}{50in}
|
||||
\begin{equation}
|
||||
|| \vec{F} ||_{inf}
|
||||
= {\rm max}\left(|F_1^1|, |F_1^2|, |F_1^3| \cdots,
|
||||
|F_N^1|, |F_N^2|, |F_N^3|\right)
|
||||
\nonumber
|
||||
\end{equation}
|
||||
\end{varwidth}
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/norm_max.jpg
Normal file
|
After Width: | Height: | Size: 9.2 KiB |
15
doc/src/Eqs/norm_max.tex
Normal file
@ -0,0 +1,15 @@
|
||||
\documentclass[preview]{standalone}
|
||||
\usepackage{varwidth}
|
||||
\usepackage[utf8x]{inputenc}
|
||||
\usepackage{amsmath, amssymb, graphics, setspace}
|
||||
|
||||
\begin{document}
|
||||
\begin{varwidth}{50in}
|
||||
\begin{equation}
|
||||
% \left| \left| \vec{F} \right| \right|_2
|
||||
|| \vec{F} ||_{max}
|
||||
= {\rm max}\left(||\vec{F}_1||, \cdots, ||\vec{F}_N||\right)
|
||||
\nonumber
|
||||
\end{equation}
|
||||
\end{varwidth}
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/norm_two.jpg
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
15
doc/src/Eqs/norm_two.tex
Normal file
@ -0,0 +1,15 @@
|
||||
\documentclass[preview]{standalone}
|
||||
\usepackage{varwidth}
|
||||
\usepackage[utf8x]{inputenc}
|
||||
\usepackage{amsmath, amssymb, graphics, setspace}
|
||||
|
||||
\begin{document}
|
||||
\begin{varwidth}{50in}
|
||||
\begin{equation}
|
||||
% \left| \left| \vec{F} \right| \right|_2
|
||||
|| \vec{F} ||_{2}
|
||||
= \sqrt{\vec{F}_1+ \cdots + \vec{F}_N}
|
||||
\nonumber
|
||||
\end{equation}
|
||||
\end{varwidth}
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/pair_local_density_energy.jpg
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
11
doc/src/Eqs/pair_local_density_energy.tex
Normal file
@ -0,0 +1,11 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\begin{document}
|
||||
|
||||
$$
|
||||
U_{LD} = \sum_i F(\rho_i)
|
||||
$$
|
||||
|
||||
|
||||
\end{document}
|
||||
~
|
||||
BIN
doc/src/Eqs/pair_local_density_energy_implement.jpg
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
9
doc/src/Eqs/pair_local_density_energy_implement.tex
Normal file
@ -0,0 +1,9 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\begin{document}
|
||||
|
||||
$$
|
||||
U_{LD} = \sum_k U_{LD}^{(k)} = \sum_i \left[ \sum_k a_\alpha^{(k)} F^{(k)} \left(\rho_i^{(k)}\right) \right]
|
||||
$$
|
||||
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/pair_local_density_energy_multi.jpg
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
9
doc/src/Eqs/pair_local_density_energy_multi.tex
Normal file
@ -0,0 +1,9 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\begin{document}
|
||||
|
||||
$$
|
||||
U_{LD} = \sum_i a_\alpha F(\rho_i)
|
||||
$$
|
||||
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/pair_local_density_indicator_func.jpg
Normal file
|
After Width: | Height: | Size: 8.8 KiB |
16
doc/src/Eqs/pair_local_density_indicator_func.tex
Normal file
@ -0,0 +1,16 @@
|
||||
\documentclass[12pt]{article}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage{amsmath}
|
||||
\usepackage{amsfonts}
|
||||
|
||||
\begin{document}
|
||||
\[
|
||||
\varphi(r) =
|
||||
\begin{cases}
|
||||
1 & r \le R_1 \\
|
||||
c_0 + c_2r^2 + c_4r^4 + c_6r^6 & r \in (R_1, R_2) \\
|
||||
0 & r \ge R_2
|
||||
\end{cases}
|
||||
\]
|
||||
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/pair_local_density_ld.jpg
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
10
doc/src/Eqs/pair_local_density_ld.tex
Normal file
@ -0,0 +1,10 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\begin{document}
|
||||
|
||||
|
||||
$$
|
||||
\rho_i = \sum_{j \neq i} \varphi(r_{ij})
|
||||
$$
|
||||
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/pair_local_density_ld_implement.jpg
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
10
doc/src/Eqs/pair_local_density_ld_implement.tex
Normal file
@ -0,0 +1,10 @@
|
||||
\documentstyle[12pt]{article}
|
||||
|
||||
\begin{document}
|
||||
|
||||
|
||||
$$
|
||||
\rho_i^{(k)} = \sum_j b_\beta^{(k)} \varphi^{(k)} (r_{ij})
|
||||
$$
|
||||
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/pair_local_density_ld_multi.jpg
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
10
doc/src/Eqs/pair_local_density_ld_multi.tex
Normal file
@ -0,0 +1,10 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\begin{document}
|
||||
|
||||
|
||||
$$
|
||||
\rho_i = \sum_{j \neq i} b_\beta \varphi(r_{ij})
|
||||
$$
|
||||
|
||||
\end{document}
|
||||
@ -4791,6 +4791,22 @@ Self-explanatory. :dd
|
||||
|
||||
This fix option cannot be used with point particles. :dd
|
||||
|
||||
{Fix langevin gjf and respa are not compatible} :dt
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Fix langevin gjf cannot have period equal to dt/2} :dt
|
||||
|
||||
If the period is equal to dt/2 then division by zero will happen. :dd
|
||||
|
||||
{Fix langevin gjf should come before fix nve} :dt
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Fix langevin gjf with tbias is not yet implemented with kokkos} :dt
|
||||
|
||||
This option is not yet available. :dd
|
||||
|
||||
{Fix langevin omega is not yet implemented with kokkos} :dt
|
||||
|
||||
This option is not yet available. :dd
|
||||
|
||||
@ -47,6 +47,11 @@ too far away. :dd
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Angles are defined but no angle style is set} :dt
|
||||
|
||||
The topology contains angles, but there are no angle forces computed
|
||||
since there was no angle_style command. :dd
|
||||
|
||||
{Atom style in data file differs from currently defined atom style} :dt
|
||||
|
||||
Self-explanatory. :dd
|
||||
@ -73,6 +78,11 @@ short or the bond has blown apart and an atom is too far away. :dd
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Bonds are defined but no bond style is set} :dt
|
||||
|
||||
The topology contains bonds, but there are no bond forces computed
|
||||
since there was no bond_style command. :dd
|
||||
|
||||
{Bond/angle/dihedral extent > half of periodic box length} :dt
|
||||
|
||||
This is a restriction because LAMMPS can be confused about which image
|
||||
@ -186,6 +196,11 @@ to check your simulation geometry. :dd
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Dihedrals are defined but no dihedral style is set} :dt
|
||||
|
||||
The topology contains dihedrals, but there are no dihedral forces computed
|
||||
since there was no dihedral_style command. :dd
|
||||
|
||||
{Dump dcd/xtc timestamp may be wrong with fix dt/reset} :dt
|
||||
|
||||
If the fix changes the timestep, the dump dcd file will not
|
||||
@ -248,6 +263,10 @@ included one or more of the following: kspace, triclinic, a hybrid
|
||||
pair style, an eam pair style, or no "single" function for the pair
|
||||
style. :dd
|
||||
|
||||
{Fix langevin gjf using random gaussians is not implemented with kokkos} :dt
|
||||
|
||||
This will most likely cause errors in kinetic fluctuations.
|
||||
|
||||
{Fix property/atom mol or charge w/out ghost communication} :dt
|
||||
|
||||
A model typically needs these properties defined for ghost atoms. :dd
|
||||
@ -348,6 +367,11 @@ to check your simulation geometry. :dd
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Impropers are defined but no improper style is set} :dt
|
||||
|
||||
The topology contains impropers, but there are no improper forces computed
|
||||
since there was no improper_style command. :dd
|
||||
|
||||
{Inconsistent image flags} :dt
|
||||
|
||||
The image flags for a pair on bonded atoms appear to be inconsistent.
|
||||
@ -403,6 +427,30 @@ This library function cannot be used if atom IDs are not defined or
|
||||
are not consecutively numbered, or if no atom map is defined. See the
|
||||
atom_modify command for details about atom maps. :dd
|
||||
|
||||
{Likewise 1-2 special neighbor interactions != 1.0} :dt
|
||||
|
||||
The topology contains bonds, but there is no bond style defined
|
||||
and a 1-2 special neighbor scaling factor was not 1.0. This
|
||||
means that pair style interactions may have scaled or missing
|
||||
pairs in the neighbor list in expectation of interactions for
|
||||
those pairs being computed from the bond style. :dd
|
||||
|
||||
{Likewise 1-3 special neighbor interactions != 1.0} :dt
|
||||
|
||||
The topology contains angles, but there is no angle style defined
|
||||
and a 1-3 special neighbor scaling factor was not 1.0. This
|
||||
means that pair style interactions may have scaled or missing
|
||||
pairs in the neighbor list in expectation of interactions for
|
||||
those pairs being computed from the angle style. :dd
|
||||
|
||||
{Likewise 1-4 special neighbor interactions != 1.0} :dt
|
||||
|
||||
The topology contains dihedrals, but there is no dihedral style defined
|
||||
and a 1-4 special neighbor scaling factor was not 1.0. This
|
||||
means that pair style interactions may have scaled or missing
|
||||
pairs in the neighbor list in expectation of interactions for
|
||||
those pairs being computed from the dihedral style. :dd
|
||||
|
||||
{Lost atoms via change_box: original %ld current %ld} :dt
|
||||
|
||||
The command options you have used caused atoms to be lost. :dd
|
||||
|
||||
@ -141,6 +141,7 @@ HEAT: compute thermal conductivity for LJ and water via fix ehex
|
||||
KAPPA: compute thermal conductivity via several methods
|
||||
MC: using LAMMPS in a Monte Carlo mode to relax the energy of a system
|
||||
SPIN: examples for features of the SPIN package
|
||||
UNITS: examples that run the same simulation in lj, real, metal units
|
||||
USER: examples for USER packages and USER-contributed commands
|
||||
VISCOSITY: compute viscosity via several methods :tb(s=:)
|
||||
|
||||
|
||||
@ -83,7 +83,7 @@ variable d equal $p*$s # dump interval :pre
|
||||
|
||||
# convert from LAMMPS real units to SI :pre
|
||||
|
||||
variable kB equal 1.3806504e-23 # \[J/K/] Boltzmann
|
||||
variable kB equal 1.3806504e-23 # \[J/K\] Boltzmann
|
||||
variable atm2Pa equal 101325.0
|
||||
variable A2m equal 1.0e-10
|
||||
variable fs2s equal 1.0e-15
|
||||
|
||||
BIN
doc/src/JPG/dynamical_matrix_dynmat.jpg
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
doc/src/JPG/dynamical_matrix_force_constant.jpg
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
doc/src/JPG/dynamical_matrix_phonons.jpg
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
doc/src/JPG/third_order_force_constant.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
@ -1,7 +1,7 @@
|
||||
<!-- HTML_ONLY -->
|
||||
<HEAD>
|
||||
<TITLE>LAMMPS Users Manual</TITLE>
|
||||
<META NAME="docnumber" CONTENT="7 Aug 2019 version">
|
||||
<META NAME="docnumber" CONTENT="19 Sep 2019 version">
|
||||
<META NAME="author" CONTENT="http://lammps.sandia.gov - Sandia National Laboratories">
|
||||
<META NAME="copyright" CONTENT="Copyright (2003) Sandia Corporation. This software and manual is distributed under the GNU General Public License.">
|
||||
</HEAD>
|
||||
@ -21,7 +21,7 @@
|
||||
:line
|
||||
|
||||
LAMMPS Documentation :c,h1
|
||||
7 Aug 2019 version :c,h2
|
||||
19 Sep 2019 version :c,h2
|
||||
|
||||
"What is a LAMMPS version?"_Manual_version.html
|
||||
|
||||
|
||||
@ -1746,11 +1746,12 @@ USER-PHONON package :link(PKG-USER-PHONON),h4
|
||||
A "fix phonon"_fix_phonon.html command that calculates dynamical
|
||||
matrices, which can then be used to compute phonon dispersion
|
||||
relations, directly from molecular dynamics simulations.
|
||||
And a "dynamical_matrix" command to compute the dynamical matrix
|
||||
from finite differences.
|
||||
And a "dynamical_matrix"_dynamical_matrix.html as well as a
|
||||
"third_order"_third_order.html command to compute the dynamical matrix
|
||||
and third order tensor from finite differences.
|
||||
|
||||
[Authors:] Ling-Ti Kong (Shanghai Jiao Tong University) for "fix phonon"
|
||||
and Charlie Sievers (UC Davis) for "dynamical_matrix"
|
||||
and Charlie Sievers (UC Davis) for "dynamical_matrix" and "third_order"
|
||||
|
||||
|
||||
[Supporting info:]
|
||||
@ -1759,6 +1760,7 @@ src/USER-PHONON: filenames -> commands
|
||||
src/USER-PHONON/README
|
||||
"fix phonon"_fix_phonon.html
|
||||
"dynamical_matrix"_dynamical_matrix.html
|
||||
"third_order"_third_order.html
|
||||
examples/USER/phonon :ul
|
||||
|
||||
:line
|
||||
|
||||
@ -87,6 +87,7 @@ Miscellaneous tools :h3
|
||||
"emacs"_#emacs,
|
||||
"i-pi"_#ipi,
|
||||
"kate"_#kate,
|
||||
"singularity"_#singularity_tool,
|
||||
"vim"_#vim :tb(c=5,ea=c,a=l)
|
||||
|
||||
:line
|
||||
@ -542,6 +543,15 @@ Ivanov, at University of Iceland (ali5 at hi.is).
|
||||
|
||||
:line
|
||||
|
||||
singularity tool :h4,link(singularity_tool)
|
||||
|
||||
The singularity sub-directory contains container definitions files
|
||||
that can be used to build container images for building and testing
|
||||
LAMMPS on specific OS variants using the "Singularity"_https://sylabs.io
|
||||
container software. Contributions for additional variants are welcome.
|
||||
|
||||
:line
|
||||
|
||||
vim tool :h4,link(vim)
|
||||
|
||||
The files in the tools/vim directory are add-ons to the VIM editor
|
||||
|
||||
@ -108,6 +108,7 @@ Commands :h1
|
||||
thermo
|
||||
thermo_modify
|
||||
thermo_style
|
||||
third_order
|
||||
timer
|
||||
timestep
|
||||
uncompute
|
||||
|
||||
@ -84,3 +84,6 @@ package"_Build_package.html doc page for more info.
|
||||
:link(Theodorou)
|
||||
[(Theodorou)] Theodorou, Suter, Macromolecules, 18, 1206 (1985).
|
||||
|
||||
:link(Mattice)
|
||||
[(Mattice)] Mattice, Suter, Conformational Theory of Large Molecules, Wiley, New York, 1994.
|
||||
|
||||
|
||||
@ -23,11 +23,14 @@ style = {many} or {single/bond} or {single/angle} or {single/dihedral} :ule,l
|
||||
btype = bond type of new bond
|
||||
batom1,batom2 = atom IDs for two atoms in bond
|
||||
{single/angle} args = atype aatom1 aatom2 aatom3
|
||||
atype = bond type of new angle
|
||||
atype = angle type of new angle
|
||||
aatom1,aatom2,aatom3 = atom IDs for three atoms in angle
|
||||
{single/dihedral} args = dtype datom1 datom2 datom3 datom4
|
||||
dtype = bond type of new dihedral
|
||||
datom1,datom2,datom3,datom4 = atom IDs for four atoms in dihedral :pre
|
||||
dtype = dihedral type of new dihedral
|
||||
datom1,datom2,datom3,datom4 = atom IDs for four atoms in dihedral
|
||||
{single/improper} args = itype iatom1 iatom2 iatom3 iatom4
|
||||
itype = improper type of new improper
|
||||
iatom1,iatom2,iatom3,iatom4 = atom IDs for four atoms in improper :pre
|
||||
zero or more keyword/value pairs may be appended :l
|
||||
keyword = {special} :l
|
||||
{special} value = {yes} or {no} :pre
|
||||
@ -38,51 +41,54 @@ keyword = {special} :l
|
||||
create_bonds many all all 1 1.0 1.2
|
||||
create_bonds many surf solvent 3 2.0 2.4
|
||||
create_bonds single/bond 1 1 2
|
||||
create_bonds single/angle 5 52 98 107 special no :pre
|
||||
create_bonds single/angle 5 52 98 107 special no
|
||||
create_bonds single/dihedral 2 4 19 27 101
|
||||
create_bonds single/improper 3 23 26 31 57 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Create bonds between pairs of atoms that meet a specified distance
|
||||
criteria. Or create a single bond, angle, or dihedral between 2, 3,
|
||||
criteria. Or create a single bond, angle, dihedral or improper between 2, 3,
|
||||
or 4 specified atoms.
|
||||
|
||||
The new bond (angle, dihedral) interactions will then be computed
|
||||
during a simulation by the bond (angle, dihedral) potential defined by
|
||||
The new bond (angle, dihedral, improper) interactions will then be computed
|
||||
during a simulation by the bond (angle, dihedral, improper) potential defined by
|
||||
the "bond_style"_bond_style.html, "bond_coeff"_bond_coeff.html,
|
||||
"angle_style"_angle_style.html, "angle_coeff"_angle_coeff.html,
|
||||
"dihedral_style"_dihedral_style.html,
|
||||
"dihedral_coeff"_dihedral_coeff.html commands.
|
||||
"dihedral_coeff"_dihedral_coeff.html, "improper_style"_improper_style.html,
|
||||
"improper_coeff"_improper_coeff.html commands.
|
||||
|
||||
The {many} style is useful for adding bonds to a system, e.g. between
|
||||
nearest neighbors in a lattice of atoms, without having to enumerate
|
||||
all the bonds in the data file read by the "read_data"_read_data.html
|
||||
command.
|
||||
|
||||
The {single} styles are useful for adding bonds, angles, dihedrals
|
||||
The {single} styles are useful for adding bonds, angles, dihedrals, impropers
|
||||
to a system incrementally, then continuing a simulation.
|
||||
|
||||
Note that this command does not auto-create any angle or dihedral
|
||||
Note that this command does not auto-create any angle, dihedral or improper
|
||||
interactions when a bond is added. Nor does it auto-create any bonds
|
||||
when an angle or dihedral is added. Or auto-create any angles when a
|
||||
dihedral is added. Thus the flexibility of this command is limited.
|
||||
when an angle, dihedral or improper is added. Or auto-create any angles when a
|
||||
dihedral or improper is added. Thus the flexibility of this command is limited.
|
||||
It can be used several times to create different types of bond at
|
||||
different distances. But it cannot typically auto-create all the
|
||||
bonds or angles or dihedral that would normally be defined in a data
|
||||
file for a complex system of molecules.
|
||||
bonds or angles or dihedrals or impropers that would normally be defined in a
|
||||
data file for a complex system of molecules.
|
||||
|
||||
NOTE: If the system has no bonds (angles, dihedrals) to begin with, or
|
||||
if more bonds per atom are being added than currently exist, then you
|
||||
NOTE: If the system has no bonds (angles, dihedrals, impropers) to begin with,
|
||||
or if more bonds per atom are being added than currently exist, then you
|
||||
must insure that the number of bond types and the maximum number of
|
||||
bonds per atom are set to large enough values. And similarly for
|
||||
angles and dihedrals. Otherwise an error may occur when too many
|
||||
bonds (angles, dihedrals) are added to an atom. If the
|
||||
angles, dihedrals and impropers. Otherwise an error may occur when too many
|
||||
bonds (angles, dihedrals, impropers) are added to an atom. If the
|
||||
"read_data"_read_data.html command is used to define the system, these
|
||||
parameters can be set via the "bond types" and "extra bond per atom"
|
||||
fields in the header section of the data file. If the
|
||||
"create_box"_create_box.html command is used to define the system,
|
||||
these 2 parameters can be set via its optional "bond/types" and
|
||||
"extra/bond/per/atom" arguments. And similarly for angles and
|
||||
dihedrals. See the doc pages for these 2 commands for details.
|
||||
"extra/bond/per/atom" arguments. And similarly for angles, dihedrals and
|
||||
impropers. See the doc pages for these 2 commands for details.
|
||||
|
||||
:line
|
||||
|
||||
@ -137,18 +143,25 @@ ordered linearly within the angle; the central atom is {aatom2}.
|
||||
{Atype} must be a value between 1 and the number of angle types
|
||||
defined.
|
||||
|
||||
The {single/dihedral} style creates a single dihedral of type {btype}
|
||||
between two atoms with IDs {batom1} and {batom2}. The ordering of the
|
||||
atoms is the same as in the {Dihedrals} section of a data file read by
|
||||
the "read_data"_read_data.html command. I.e. the 4 atoms are ordered
|
||||
linearly within the dihedral. {Dtype} must be a value between 1 and
|
||||
The {single/dihedral} style creates a single dihedral of type {dtype}
|
||||
between four atoms with IDs {datom1}, {datom2}, {datom3}, and {datom4}. The
|
||||
ordering of the atoms is the same as in the {Dihedrals} section of a data file
|
||||
read by the "read_data"_read_data.html command. I.e. the 4 atoms are ordered
|
||||
linearly within the dihedral. {dtype} must be a value between 1 and
|
||||
the number of dihedral types defined.
|
||||
|
||||
The {single/improper} style creates a single improper of type {itype}
|
||||
between four atoms with IDs {iatom1}, {iatom2}, {iatom3}, and {iatom4}. The
|
||||
ordering of the atoms is the same as in the {Impropers} section of a data file
|
||||
read by the "read_data"_read_data.html command. I.e. the 4 atoms are ordered
|
||||
linearly within the improper. {itype} must be a value between 1 and
|
||||
the number of improper types defined.
|
||||
|
||||
:line
|
||||
|
||||
The keyword {special} controls whether an internal list of special
|
||||
bonds is created after one or more bonds, or a single angle or
|
||||
dihedral is added to the system.
|
||||
bonds is created after one or more bonds, or a single angle, dihedral or
|
||||
improper is added to the system.
|
||||
|
||||
The default value is {yes}. A value of {no} cannot be used
|
||||
with the {many} style.
|
||||
@ -161,7 +174,7 @@ see the "special_bonds"_special_bonds.html command for details.
|
||||
Thus if you are adding a few bonds or a large list of angles all at
|
||||
the same time, by using this command repeatedly, it is more efficient
|
||||
to only trigger the internal list to be created once, after the last
|
||||
bond (or angle, or dihedral) is added:
|
||||
bond (or angle, or dihedral, or improper) is added:
|
||||
|
||||
create_bonds single/bond 5 52 98 special no
|
||||
create_bonds single/bond 5 73 74 special no
|
||||
@ -170,7 +183,7 @@ create_bonds single/bond 5 17 386 special no
|
||||
create_bonds single/bond 4 112 183 special yes :pre
|
||||
|
||||
Note that you MUST insure the internal list is re-built after the last
|
||||
bond (angle, dihedral) is added, before performing a simulation.
|
||||
bond (angle, dihedral, improper) is added, before performing a simulation.
|
||||
Otherwise pairwise interactions will not be properly excluded or
|
||||
weighted. LAMMPS does NOT check that you have done this correctly.
|
||||
|
||||
|
||||
@ -21,7 +21,8 @@ dump ID group-ID style N file args :pre
|
||||
|
||||
ID = user-assigned name for the dump :ulb,l
|
||||
group-ID = ID of the group of atoms to be dumped :l
|
||||
style = {atom} or {atom/gz} or {atom/mpiio} or {cfg} or {cfg/gz} or {cfg/mpiio} or {custom} or {custom/gz} or {custom/mpiio} or {dcd} or {h5md} or {image} or {local} or {molfile} or {movie} or {netcdf} or {netcdf/mpiio} or {vtk} or {xtc} or {xyz} or {xyz/gz} or {xyz/mpiio} :l
|
||||
style = {atom} or {atom/gz} or {atom/mpiio} or {cfg} or {cfg/gz} or
|
||||
{cfg/mpiio} or {custom} or {custom/gz} or {custom/mpiio} or {dcd} or {h5md} or {image} or {local} or {local/gz} or {molfile} or {movie} or {netcdf} or {netcdf/mpiio} or {vtk} or {xtc} or {xyz} or {xyz/gz} or {xyz/mpiio} :l
|
||||
N = dump every this many timesteps :l
|
||||
file = name of file to write dump info to :l
|
||||
args = list of arguments for a particular style :l
|
||||
|
||||
@ -15,7 +15,7 @@ dump_modify dump-ID keyword values ... :pre
|
||||
dump-ID = ID of dump to modify :ulb,l
|
||||
one or more keyword/value pairs may be appended :l
|
||||
these keywords apply to various dump styles :l
|
||||
keyword = {append} or {at} or {buffer} or {delay} or {element} or {every} or {fileper} or {first} or {flush} or {format} or {image} or {label} or {maxfiles} or {nfile} or {pad} or {precision} or {region} or {scale} or {sort} or {thresh} or {unwrap} :l
|
||||
keyword = {append} or {at} or {buffer} or {delay} or {element} or {every} or {fileper} or {first} or {flush} or {format} or {image} or {label} or {maxfiles} or {nfile} or {pad} or {pbc} or {precision} or {region} or {refresh} or {scale} or {sfactor} or {sort} or {tfactor} or {thermo} or {thresh} or {time} or {units} or {unwrap} :l
|
||||
{append} arg = {yes} or {no}
|
||||
{at} arg = N
|
||||
N = index of frame written upon first dump
|
||||
@ -30,10 +30,10 @@ keyword = {append} or {at} or {buffer} or {delay} or {element} or {every} or {fi
|
||||
{fileper} arg = Np
|
||||
Np = write one file for every this many processors
|
||||
{first} arg = {yes} or {no}
|
||||
{flush} arg = {yes} or {no}
|
||||
{format} args = {line} string, {int} string, {float} string, M string, or {none}
|
||||
string = C-style format string
|
||||
M = integer from 1 to N, where N = # of per-atom quantities being output
|
||||
{flush} arg = {yes} or {no}
|
||||
{image} arg = {yes} or {no}
|
||||
{label} arg = string
|
||||
string = character string (e.g. BONDS) to use in header of dump local file
|
||||
@ -48,18 +48,20 @@ keyword = {append} or {at} or {buffer} or {delay} or {element} or {every} or {fi
|
||||
{refresh} arg = c_ID = compute ID that supports a refresh operation
|
||||
{scale} arg = {yes} or {no}
|
||||
{sfactor} arg = coordinate scaling factor (> 0.0)
|
||||
{thermo} arg = {yes} or {no}
|
||||
{tfactor} arg = time scaling factor (> 0.0)
|
||||
{sort} arg = {off} or {id} or N or -N
|
||||
off = no sorting of per-atom lines within a snapshot
|
||||
id = sort per-atom lines by atom ID
|
||||
N = sort per-atom lines in ascending order by the Nth column
|
||||
-N = sort per-atom lines in descending order by the Nth column
|
||||
{tfactor} arg = time scaling factor (> 0.0)
|
||||
{thermo} arg = {yes} or {no}
|
||||
{time} arg = {yes} or {no}
|
||||
{thresh} args = attribute operator value
|
||||
attribute = same attributes (x,fy,etotal,sxx,etc) used by dump custom style
|
||||
operator = "<" or "<=" or ">" or ">=" or "==" or "!=" or "|^"
|
||||
value = numeric value to compare to, or LAST
|
||||
these 3 args can be replaced by the word "none" to turn off thresholding
|
||||
{units} arg = {yes} or {no}
|
||||
{unwrap} arg = {yes} or {no} :pre
|
||||
these keywords apply only to the {image} and {movie} "styles"_dump_image.html :l
|
||||
keyword = {acolor} or {adiam} or {amap} or {backcolor} or {bcolor} or {bdiam} or {boxcolor} or {color} or {bitrate} or {framerate} :l
|
||||
@ -620,6 +622,37 @@ threshold criterion is met. Otherwise it is not met.
|
||||
|
||||
:line
|
||||
|
||||
The {time} keyword only applies to the dump {atom}, {custom}, and
|
||||
{local} styles (and their COMPRESS package versions {atom/gz},
|
||||
{custom/gz} and {local/gz}). If set to {yes}, each frame will will
|
||||
contain two extra lines before the "ITEM: TIMESTEP" entry:
|
||||
|
||||
ITEM: TIME
|
||||
\<elapsed time\> :pre
|
||||
|
||||
This will output the current elapsed simulation time in current
|
||||
time units equivalent to the "thermo keyword"_thermo_style.html {time}.
|
||||
This is to simplify post-processing of trajectories using a variable time
|
||||
step, e.g. when using "fix dt/reset"_fix_dt_reset.html.
|
||||
The default setting is {no}.
|
||||
|
||||
:line
|
||||
|
||||
The {units} keyword only applies to the dump {atom}, {custom}, and
|
||||
{local} styles (and their COMPRESS package versions {atom/gz},
|
||||
{custom/gz} and {local/gz}). If set to {yes}, each individual dump
|
||||
file will contain two extra lines at the very beginning with:
|
||||
|
||||
ITEM: UNITS
|
||||
\<units style\> :pre
|
||||
|
||||
This will output the current selected "units"_units.html style
|
||||
to the dump file and thus allows visualization and post-processing
|
||||
tools to determine the choice of units of the data in the dump file.
|
||||
The default setting is {no}.
|
||||
|
||||
:line
|
||||
|
||||
The {unwrap} keyword only applies to the dump {dcd} and {xtc} styles.
|
||||
If set to {yes}, coordinates will be written "unwrapped" by the image
|
||||
flags for each atom. Unwrapped means that if the atom has passed through
|
||||
@ -924,6 +957,7 @@ scale = yes
|
||||
sort = off for dump styles {atom}, {custom}, {cfg}, and {local}
|
||||
sort = id for dump styles {dcd}, {xtc}, and {xyz}
|
||||
thresh = none
|
||||
units = no
|
||||
unwrap = no :ul
|
||||
|
||||
acolor = * red/green/blue/yellow/aqua/cyan
|
||||
|
||||
@ -30,14 +30,29 @@ dynamical_matrix 5 eskm 0.00000001 file dynamical.dat binary yes :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Calculate the dynamical matrix of the selected group.
|
||||
Calculate the dynamical matrix by finite difference of the selected group,
|
||||
|
||||
:c,image(JPG/dynamical_matrix_dynmat.jpg)
|
||||
|
||||
where D is the dynamical matrix and Phi is the force constant matrix defined by
|
||||
|
||||
:c,image(JPG/dynamical_matrix_force_constant.jpg).
|
||||
|
||||
The output for the dynamical matrix is printed three elements at a time. The
|
||||
three elements are the three beta elements for a respective i/alpha/j combination.
|
||||
Each line is printed in order of j increasing first, alpha second, and i last.
|
||||
|
||||
If the style eskm is selected, the dynamical matrix will be in units of inverse squared
|
||||
femtoseconds. These units will then conveniently leave frequencies in THz, where
|
||||
frequencies, represented as omega, can be calculated from
|
||||
|
||||
:c, image(Eqs/dynamical_matrix_phonons.jpg)
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
The command collects the entire dynamical matrix a single MPI rank,
|
||||
so the memory requirements can be very significant for large systems.
|
||||
|
||||
This command assumes a periodic system.
|
||||
The command collects an array of nine times the number of atoms in a group
|
||||
on every single MPI rank, so the memory requirements can be very significant
|
||||
for large systems.
|
||||
|
||||
This command is part of the USER-PHONON package. It is only enabled if
|
||||
LAMMPS was built with that package. See the "Build
|
||||
|
||||
@ -188,7 +188,7 @@ accelerated styles exist.
|
||||
"box/relax"_fix_box_relax.html - relax box size during energy minimization
|
||||
"client/md"_fix_client_md.html - MD client for client/server simulations
|
||||
"cmap"_fix_cmap.html - enables CMAP cross-terms of the CHARMM force field
|
||||
"colvars"_fix_colvars.html - interface to the collective variables “Colvars” library
|
||||
"colvars"_fix_colvars.html - interface to the collective variables "Colvars" library
|
||||
"controller"_fix_controller.html - apply control loop feedback mechanism
|
||||
"deform"_fix_deform.html - change the simulation box size/shape
|
||||
"deposit"_fix_deposit.html - add new atoms above a surface
|
||||
@ -221,7 +221,7 @@ accelerated styles exist.
|
||||
"heat"_fix_heat.html - add/subtract momentum-conserving heat
|
||||
"hyper/global"_fix_hyper_global.html - global hyperdynamics
|
||||
"hyper/local"_fix_hyper_local.html - local hyperdynamics
|
||||
"imd"_fix_imd.html - implements the “Interactive MD” (IMD) protocol
|
||||
"imd"_fix_imd.html - implements the "Interactive MD" (IMD) protocol
|
||||
"indent"_fix_indent.html - impose force due to an indenter
|
||||
"ipi"_fix_ipi.html - enable LAMMPS to run as a client for i-PI path-integral simulations
|
||||
"langevin"_fix_langevin.html - Langevin temperature control
|
||||
|
||||
@ -186,20 +186,25 @@ reacting atoms.
|
||||
|
||||
Some atoms in the pre-reacted template that are not reacting may have
|
||||
missing topology with respect to the simulation. For example, the
|
||||
pre-reacted template may contain an atom that would connect to the
|
||||
rest of a long polymer chain. These are referred to as edge atoms, and
|
||||
are also specified in the map file. When the pre-reaction template
|
||||
contains edge atoms, not all atoms, bonds, charges, etc. specified in
|
||||
the reaction templates will be updated. Specifically, topology that
|
||||
involves only atoms that are 'too near' to template edges will not be
|
||||
updated. The definition of 'too near the edge' depends on which
|
||||
interactions are defined in the simulation. If the simulation has
|
||||
defined dihedrals, atoms within two bonds of edge atoms are considered
|
||||
'too near the edge.' If the simulation defines angles, but not
|
||||
dihedrals, atoms within one bond of edge atoms are considered 'too
|
||||
near the edge.' If just bonds are defined, only edge atoms are
|
||||
pre-reacted template may contain an atom that, in the simulation, is
|
||||
currently connected to the rest of a long polymer chain. These are
|
||||
referred to as edge atoms, and are also specified in the map file. All
|
||||
pre-reaction template atoms should be linked to a bonding atom, via at
|
||||
least one path that does not involve edge atoms. When the pre-reaction
|
||||
template contains edge atoms, not all atoms, bonds, charges, etc.
|
||||
specified in the reaction templates will be updated. Specifically,
|
||||
topology that involves only atoms that are 'too near' to template
|
||||
edges will not be updated. The definition of 'too near the edge'
|
||||
depends on which interactions are defined in the simulation. If the
|
||||
simulation has defined dihedrals, atoms within two bonds of edge atoms
|
||||
are considered 'too near the edge.' If the simulation defines angles,
|
||||
but not dihedrals, atoms within one bond of edge atoms are considered
|
||||
'too near the edge.' If just bonds are defined, only edge atoms are
|
||||
considered 'too near the edge.'
|
||||
|
||||
NOTE: Small molecules, i.e. ones that have all their atoms contained
|
||||
within the reaction templates, never have edge atoms.
|
||||
|
||||
Note that some care must be taken when a building a molecule template
|
||||
for a given simulation. All atom types in the pre-reacted template
|
||||
must be the same as those of a potential reaction site in the
|
||||
@ -261,7 +266,7 @@ either 'none' or 'charges.' Further details are provided in the
|
||||
discussion of the 'update_edges' keyword. The fourth optional section
|
||||
begins with the keyword 'Constraints' and lists additional criteria
|
||||
that must be satisfied in order for the reaction to occur. Currently,
|
||||
there is one type of constraint available, as discussed below.
|
||||
there are two types of constraints available, as discussed below.
|
||||
|
||||
A sample map file is given below:
|
||||
|
||||
@ -295,14 +300,23 @@ Equivalences :pre
|
||||
:line
|
||||
|
||||
Any number of additional constraints may be specified in the
|
||||
Constraints section of the map file. Currently there is one type of
|
||||
additional constraint, of type 'distance', whose syntax is as follows:
|
||||
Constraints section of the map file. The constraint of type 'distance'
|
||||
has syntax as follows:
|
||||
|
||||
distance {ID1} {ID2} {rmin} {rmax} :pre
|
||||
|
||||
where 'distance' is the required keyword, {ID1} and {ID2} are
|
||||
pre-reaction atom IDs, and these two atoms must be separated by a
|
||||
distance between {rmin} and {rmax} for the reaction to occur. This
|
||||
distance between {rmin} and {rmax} for the reaction to occur.
|
||||
|
||||
The constraint of type 'angle' has the following syntax:
|
||||
|
||||
angle {ID1} {ID2} {ID3} {amin} {amax} :pre
|
||||
|
||||
where 'angle' is the required keyword, {ID1}, {ID2} and {ID3} are
|
||||
pre-reaction atom IDs, and these three atoms must form an angle
|
||||
between {amin} and {amax} for the reaction to occur (where {ID2} is
|
||||
the central atom). Angles must be specified in degrees. This
|
||||
constraint can be used to enforce a certain orientation between
|
||||
reacting molecules.
|
||||
|
||||
@ -392,10 +406,11 @@ local command.
|
||||
|
||||
[Restart, fix_modify, output, run start/stop, minimize info:]
|
||||
|
||||
No information about this fix is written to "binary restart
|
||||
files"_restart.html, aside from internally-created per-atom
|
||||
properties. None of the "fix_modify"_fix_modify.html options are
|
||||
relevant to this fix.
|
||||
Cumulative reaction counts for each reaction are written to "binary
|
||||
restart files"_restart.html. These values are associated with the
|
||||
reaction name (react-ID). Additionally, internally-created per-atom
|
||||
properties are stored to allow for smooth restarts. None of the
|
||||
"fix_modify"_fix_modify.html options are relevant to this fix.
|
||||
|
||||
This fix computes one statistic for each {react} argument that it
|
||||
stores in a global vector, of length 'number of react arguments', that
|
||||
@ -406,8 +421,8 @@ These is 1 quantity for each react argument:
|
||||
|
||||
(1) cumulative # of reactions occurred :ul
|
||||
|
||||
No parameter of this fix can be used with the {start/stop} keywords of
|
||||
the "run"_run.html command. This fix is not invoked during "energy
|
||||
No parameter of this fix can be used with the {start/stop} keywords
|
||||
of the "run"_run.html command. This fix is not invoked during "energy
|
||||
minimization"_minimize.html.
|
||||
|
||||
When fix bond/react is 'unfixed,' all internally-created groups are
|
||||
@ -417,18 +432,20 @@ all other fixes that use any group created by fix bond/react.
|
||||
[Restrictions:]
|
||||
|
||||
This fix is part of the USER-MISC package. It is only enabled if
|
||||
LAMMPS was built with that package. See the "Build
|
||||
package"_Build_package.html doc page for more info.
|
||||
LAMMPS was built with that package. See the
|
||||
"Build package"_Build_package.html doc page for more info.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"fix bond/create"_fix_bond_create.html, "fix
|
||||
bond/break"_fix_bond_break.html, "fix bond/swap"_fix_bond_swap.html,
|
||||
"fix bond/create"_fix_bond_create.html,
|
||||
"fix bond/break"_fix_bond_break.html,
|
||||
"fix bond/swap"_fix_bond_swap.html,
|
||||
"dump local"_dump.html, "special_bonds"_special_bonds.html
|
||||
|
||||
[Default:]
|
||||
|
||||
The option defaults are stabilization = no, prob = 1.0, stabilize_steps = 60, update_edges = none
|
||||
The option defaults are stabilization = no, prob = 1.0, stabilize_steps = 60,
|
||||
update_edges = none
|
||||
|
||||
:line
|
||||
|
||||
|
||||
@ -31,7 +31,6 @@ cvar = name of control variable :l
|
||||
|
||||
[Examples:]
|
||||
|
||||
|
||||
fix 1 all controller 100 1.0 0.5 0.0 0.0 c_thermo_temp 1.5 tcontrol
|
||||
fix 1 all controller 100 0.2 0.5 0 100.0 v_pxxwall 1.01325 xwall
|
||||
fix 1 all controller 10000 0.2 0.5 0 2000 v_avpe -3.785 tcontrol :pre
|
||||
|
||||
@ -24,9 +24,10 @@ keyword = {angmom} or {omega} or {scale} or {tally} or {zero} :l
|
||||
{angmom} value = {no} or factor
|
||||
{no} = do not thermostat rotational degrees of freedom via the angular momentum
|
||||
factor = do thermostat rotational degrees of freedom via the angular momentum and apply numeric scale factor as discussed below
|
||||
{gjf} value = {no} or {yes}
|
||||
{gjf} value = {no} or {vfull} or {vhalf}
|
||||
{no} = use standard formulation
|
||||
{yes} = use Gronbech-Jensen/Farago formulation
|
||||
{vfull} = use Gronbech-Jensen/Farago formulation
|
||||
{vhalf} = use 2GJ formulation
|
||||
{omega} value = {no} or {yes}
|
||||
{no} = do not thermostat rotational degrees of freedom via the angular velocity
|
||||
{yes} = do thermostat rotational degrees of freedom via the angular velocity
|
||||
@ -217,6 +218,10 @@ the particles. As described below, this energy can then be printed
|
||||
out or added to the potential energy of the system to monitor energy
|
||||
conservation.
|
||||
|
||||
NOTE: this accumulated energy does NOT include kinetic energy removed
|
||||
by the {zero} flag. LAMMPS will print a warning when both options are
|
||||
active.
|
||||
|
||||
The keyword {zero} can be used to eliminate drift due to the
|
||||
thermostat. Because the random forces on different atoms are
|
||||
independent, they do not sum exactly to zero. As a result, this fix
|
||||
@ -232,29 +237,24 @@ The keyword {gjf} can be used to run the "Gronbech-Jensen/Farago
|
||||
described in the papers cited below, the purpose of this method is to
|
||||
enable longer timesteps to be used (up to the numerical stability
|
||||
limit of the integrator), while still producing the correct Boltzmann
|
||||
distribution of atom positions. It is implemented within LAMMPS, by
|
||||
changing how the random force is applied so that it is composed of
|
||||
the average of two random forces representing half-contributions from
|
||||
the previous and current time intervals.
|
||||
distribution of atom positions.
|
||||
|
||||
In common with all methods based on Verlet integration, the
|
||||
discretized velocities generated by this method in conjunction with
|
||||
velocity-Verlet time integration are not exactly conjugate to the
|
||||
positions. As a result the temperature (computed from the discretized
|
||||
velocities) will be systematically lower than the target temperature,
|
||||
by a small amount which grows with the timestep. Nonetheless, the
|
||||
distribution of atom positions will still be consistent with the
|
||||
The current implementation provides the user with the option to output
|
||||
the velocity in one of two forms: {vfull} or {vhalf}, which replaces
|
||||
the outdated option {yes}. The {gjf} option {vfull} outputs the on-site
|
||||
velocity given in "Gronbech-Jensen/Farago"_#Gronbech-Jensen; this velocity
|
||||
is shown to be systematically lower than the target temperature by a small
|
||||
amount, which grows quadratically with the timestep.
|
||||
The {gjf} option {vhalf} outputs the 2GJ half-step velocity given in
|
||||
"Gronbech Jensen/Gronbech-Jensen"_#2Gronbech-Jensen; for linear systems,
|
||||
this velocity is shown to not have any statistical errors for any stable time step.
|
||||
An overview of statistically correct Boltzmann and Maxwell-Boltzmann
|
||||
sampling of true on-site and true half-step velocities is given in
|
||||
"Gronbech-Jensen"_#1Gronbech-Jensen.
|
||||
Regardless of the choice of output velocity, the sampling of the configurational
|
||||
distribution of atom positions is the same, and linearly consistent with the
|
||||
target temperature.
|
||||
|
||||
As an example of using the {gjf} keyword, for molecules containing C-H
|
||||
bonds, configurational properties generated with dt = 2.5 fs and tdamp
|
||||
= 100 fs are indistinguishable from dt = 0.5 fs. Because the velocity
|
||||
distribution systematically decreases with increasing timestep, the
|
||||
method should not be used to generate properties that depend on the
|
||||
velocity distribution, such as the velocity auto-correlation function
|
||||
(VACF). In this example, the velocity distribution at dt = 2.5fs
|
||||
generates an average temperature of 220 K, instead of 300 K.
|
||||
|
||||
:line
|
||||
|
||||
Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are
|
||||
@ -312,7 +312,10 @@ This fix can ramp its target temperature over multiple runs, using the
|
||||
|
||||
This fix is not invoked during "energy minimization"_minimize.html.
|
||||
|
||||
[Restrictions:] none
|
||||
[Restrictions:]
|
||||
|
||||
For {gjf} do not choose damp=dt/2. {gjf} is not compatible
|
||||
with run_style respa.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
@ -335,5 +338,10 @@ types, tally = no, zero = no, gjf = no.
|
||||
|
||||
:link(Gronbech-Jensen)
|
||||
[(Gronbech-Jensen)] Gronbech-Jensen and Farago, Mol Phys, 111, 983
|
||||
(2013); Gronbech-Jensen, Hayre, and Farago, Comp Phys Comm,
|
||||
185, 524 (2014)
|
||||
(2013); Gronbech-Jensen, Hayre, and Farago, Comp Phys Comm, 185, 524 (2014)
|
||||
|
||||
:link(2Gronbech-Jensen)
|
||||
[(Gronbech-Jensen)] Gronbech Jensen and Gronbech-Jensen, Mol Phys, 117, 2511 (2019)
|
||||
|
||||
:link(1Gronbech-Jensen)
|
||||
[(Gronbech-Jensen)] Gronbech-Jensen, Mol Phys (2019); https://doi.org/10.1080/00268976.2019.1662506
|
||||
|
||||
@ -50,7 +50,7 @@ As an example:
|
||||
|
||||
fix 1 all precession/spin zeeman 0.01 0.0 0.0 1.0
|
||||
fix 2 all langevin/spin 300.0 0.01 21
|
||||
fix 3 all nve/spin lattice yes :pre
|
||||
fix 3 all nve/spin lattice moving :pre
|
||||
|
||||
is correct, but defining a force/spin command after the langevin/spin command
|
||||
would give an error message.
|
||||
|
||||
@ -15,22 +15,26 @@ fix ID group-ID nve/spin keyword values :pre
|
||||
ID, group-ID are documented in "fix"_fix.html command :ulb,l
|
||||
nve/spin = style name of this fix command :l
|
||||
keyword = {lattice} :l
|
||||
{lattice} value = {no} or {yes} :pre
|
||||
{lattice} value = {moving} or {frozen}
|
||||
moving = integrate both spin and atomic degress of freedom
|
||||
frozen = integrate spins on a fixed lattice :pre
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
|
||||
fix 3 all nve/spin lattice yes
|
||||
fix 1 all nve/spin lattice no :pre
|
||||
fix 3 all nve/spin lattice moving
|
||||
fix 1 all nve/spin lattice frozen :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Perform a symplectic integration for the spin or spin-lattice system.
|
||||
|
||||
The {lattice} keyword defines if the spins are integrated on a lattice
|
||||
of fixed atoms (lattice = no), or if atoms are moving (lattice = yes).
|
||||
|
||||
By default (lattice = yes), a spin-lattice integration is performed.
|
||||
of fixed atoms (lattice = frozen), or if atoms are moving
|
||||
(lattice = moving).
|
||||
The first case corresponds to a spin dynamics calculation, and
|
||||
the second to a spin-lattice calculation.
|
||||
By default a spin-lattice integration is performed (lattice = moving).
|
||||
|
||||
The {nve/spin} fix applies a Suzuki-Trotter decomposition to
|
||||
the equations of motion of the spin lattice system, following the scheme:
|
||||
@ -63,7 +67,9 @@ instead of "array" is also valid.
|
||||
|
||||
"atom_style spin"_atom_style.html, "fix nve"_fix_nve.html
|
||||
|
||||
[Default:] none
|
||||
[Default:]
|
||||
|
||||
The option default is lattice = moving.
|
||||
|
||||
:line
|
||||
|
||||
|
||||
@ -16,7 +16,7 @@ improper_style fourier :pre
|
||||
[Examples:]
|
||||
|
||||
improper_style fourier
|
||||
improper_coeff 1 100.0 180.0 :pre
|
||||
improper_coeff 1 100.0 0.0 1.0 0.5 1 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
@ -24,12 +24,12 @@ The {fourier} improper style uses the following potential:
|
||||
|
||||
:c,image(Eqs/improper_fourier.jpg)
|
||||
|
||||
where K is the force constant and omega is the angle between the IL
|
||||
axis and the IJK plane:
|
||||
where K is the force constant, C0, C1, C2 are dimensionless coefficients,
|
||||
and omega is the angle between the IL axis and the IJK plane:
|
||||
|
||||
:c,image(JPG/umbrella.jpg)
|
||||
|
||||
If all parameter (see bellow) is not zero, the all the three possible angles will taken in account.
|
||||
If all parameter (see below) is not zero, the all the three possible angles will taken in account.
|
||||
|
||||
The following coefficients must be defined for each improper type via
|
||||
the "improper_coeff"_improper_coeff.html command as in the example
|
||||
@ -38,10 +38,10 @@ above, or in the data file or restart files read by the
|
||||
commands:
|
||||
|
||||
K (energy)
|
||||
C0 (real)
|
||||
C1 (real)
|
||||
C2 (real)
|
||||
all (integer >= 0) :ul
|
||||
C0 (unitless)
|
||||
C1 (unitless)
|
||||
C2 (unitless)
|
||||
all (0 or 1, optional) :ul
|
||||
|
||||
:line
|
||||
|
||||
|
||||
@ -217,6 +217,7 @@ temper_npt.html
|
||||
thermo.html
|
||||
thermo_modify.html
|
||||
thermo_style.html
|
||||
third_order.html
|
||||
timer.html
|
||||
timestep.html
|
||||
uncompute.html
|
||||
@ -611,6 +612,7 @@ pair_lj_smooth.html
|
||||
pair_lj_smooth_linear.html
|
||||
pair_fep_soft.html
|
||||
pair_lj_switch3_coulgauss.html
|
||||
pair_local_density.html
|
||||
pair_lubricate.html
|
||||
pair_lubricateU.html
|
||||
pair_mdf.html
|
||||
|
||||
@ -13,18 +13,22 @@ min_modify command :h3
|
||||
min_modify keyword values ... :pre
|
||||
|
||||
one or more keyword/value pairs may be listed :ulb,l
|
||||
keyword = {dmax} or {line} or {alpha_damp} or {discrete_factor}
|
||||
keyword = {dmax} or {line} or {norm} or {alpha_damp} or {discrete_factor}
|
||||
{dmax} value = max
|
||||
max = maximum distance for line search to move (distance units)
|
||||
{line} value = {backtrack} or {quadratic} or {forcezero}
|
||||
backtrack,quadratic,forcezero = style of linesearch to use
|
||||
{line} value = {backtrack} or {quadratic} or {forcezero} or {spin_cubic} or {spin_none}
|
||||
backtrack,quadratic,forcezero,spin_cubic,spin_none = style of linesearch to use
|
||||
{norm} value = {two} or {max}
|
||||
two = Euclidean two-norm (length of 3N vector)
|
||||
inf = max force component across all 3-vectors
|
||||
max = max force norm across all 3-vectors
|
||||
{alpha_damp} value = damping
|
||||
damping = fictitious Gilbert damping for spin minimization (adim)
|
||||
{discrete_factor} value = factor
|
||||
factor = discretization factor for adaptive spin timestep (adim) :pre
|
||||
:ule
|
||||
|
||||
these keywords apply only to the "min_style"_min_style.html {adaptglok} :ulb,l
|
||||
these keywords apply only to the "min_style"_min_style.html {fire2} :ulb,l
|
||||
keyword = {integrator} or {tmax} or {tmin} or {delaystep} or {dtgrow} or {dtshrink}
|
||||
or {alpha0} or {alphashrink} or {halfstepback} or {initialdelay} or {vdfmax}
|
||||
{integrator} arg = {eulerimplicit} or {eulerexplicit} or {verlet}
|
||||
@ -95,13 +99,56 @@ difference of two large values (energy before and energy after) and
|
||||
that difference may be smaller than machine epsilon even if atoms
|
||||
could move in the gradient direction to reduce forces further.
|
||||
|
||||
The style {adaptglok} has several parameters that can be tuned in order
|
||||
The choice of a norm can be modified for the min styles {cg}, {sd},
|
||||
{quickmin}, {fire}, {spin}, {spin/cg} and {spin/lbfgs} using
|
||||
the {norm} keyword.
|
||||
The default {two} norm computes the 2-norm (Euclidean length) of the
|
||||
global force vector:
|
||||
|
||||
:c,image(Eqs/norm_two.jpg)
|
||||
|
||||
The {max} norm computes the length of the 3-vector force
|
||||
for each atom (2-norm), and takes the maximum value of those across
|
||||
all atoms
|
||||
|
||||
:c,image(Eqs/norm_max.jpg)
|
||||
|
||||
The {inf} norm takes the maximum component across the forces of
|
||||
all atoms in the system:
|
||||
|
||||
:c,image(Eqs/norm_inf.jpg)
|
||||
|
||||
For the min styles {spin}, {spin/cg} and {spin/lbfgs}, the force
|
||||
norm is replaced by the spin-torque norm.
|
||||
|
||||
Keywords {alpha_damp} and {discrete_factor} only make sense when
|
||||
a "min_spin"_min_spin.html command is declared.
|
||||
Keyword {alpha_damp} defines an analog of a magnetic Gilbert
|
||||
damping. It defines a relaxation rate toward an equilibrium for
|
||||
a given magnetic system.
|
||||
Keyword {discrete_factor} defines a discretization factor for the
|
||||
adaptive timestep used in the {spin} minimization.
|
||||
See "min_spin"_min_spin.html for more information about those
|
||||
quantities.
|
||||
|
||||
The choice of a line search algorithm for the {spin/cg} and
|
||||
{spin/lbfgs} styles can be specified via the {line} keyword.
|
||||
The {spin_cubic} and {spin_none} only make sense when one of those
|
||||
two minimization styles is declared.
|
||||
The {spin_cubic} performs the line search based on a cubic interpolation
|
||||
of the energy along the search direction. The {spin_none} keyword
|
||||
deactivates the line search procedure.
|
||||
The {spin_none} is a default value for {line} keyword for both {spin/lbfgs}
|
||||
and {spin/cg}. Convergence of {spin/lbfgs} can be more robust if
|
||||
{spin_cubic} line search is used.
|
||||
|
||||
The style {fire2} has several parameters that can be tuned in order
|
||||
to optimize the relaxation: {integrator}, {tmax}, {tmin}, {delaystep}, {dtgrow}, {dtshrink},
|
||||
{alpha0}, and {alphashrink}.
|
||||
Different Newton {integrator} can be selected: explicit Euler,
|
||||
semi-implicit Euler (= symplectic Euler) and velocity Verlet.
|
||||
The parameters {tmax} and {tmin} define the maximum and minimum timestep
|
||||
allowed during an adaptglok minimization. Those are not in time unit, but are
|
||||
allowed during an fire2 minimization. Those are not in time unit, but are
|
||||
multiplication factor applied to the "timestep"_timestep.html. Thus
|
||||
{tmax} = 10.0 in metal "units"_units.html means that the maximum value
|
||||
the timestep can be reached during the relaxation is 10 fs (with the default
|
||||
@ -117,18 +164,11 @@ happen when the system comes to be stuck in a local basin of the phase space.
|
||||
For debugging purposes, it is possible to switch off the inertia correction
|
||||
({halfstepback} = {no}) and the initial delay ({initialdelay} = {no}).
|
||||
|
||||
Keywords {alpha_damp} and {discrete_factor} only make sense when
|
||||
a "min_spin"_min_spin.html command is declared.
|
||||
Keyword {alpha_damp} defines an analog of a magnetic Gilbert
|
||||
damping. It defines a relaxation rate toward an equilibrium for
|
||||
a given magnetic system.
|
||||
Keyword {discrete_factor} defines a discretization factor for the
|
||||
adaptive timestep used in the {spin} minimization.
|
||||
See "min_spin"_min_spin.html for more information about those
|
||||
quantities.
|
||||
Default values are {alpha_damp} = 1.0 and {discrete_factor} = 10.0.
|
||||
[Restrictions:]
|
||||
|
||||
[Restrictions:] none
|
||||
For magnetic GNEB calculations, only {spin_none} value for {line} keyword can be used
|
||||
when styles {spin/cg} and {spin/lbfgs} are employed.
|
||||
See "neb/spin"_neb_spin.html for more explanation.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
@ -136,7 +176,13 @@ Default values are {alpha_damp} = 1.0 and {discrete_factor} = 10.0.
|
||||
|
||||
[Default:]
|
||||
|
||||
The option defaults are dmax = 0.1, line = quadratic,
|
||||
The option defaults are dmax = 0.1, line = quadratic and norm = two.
|
||||
|
||||
For the {spin}, {spin/cg} and {spin/lbfgs} styles, the
|
||||
option defaults are alpha_damp = 1.0, discrete_factor = 10.0,
|
||||
line = spin_none, and norm = euclidean.
|
||||
|
||||
For the {fire2} style, the option defaults are
|
||||
integrator = eulerimplicit, tmax = 10.0, tmin = 0.02,
|
||||
delaystep = 20, dtgrow = 1.1, dtshrink = 0.5, alpha0 = 0.25, alphashrink = 0.99,
|
||||
vdfmax = 2000, halfstepback = yes and initialdelay = yes.
|
||||
@ -6,14 +6,19 @@
|
||||
:line
|
||||
|
||||
min_style spin command :h3
|
||||
min_style spin/cg command :h3
|
||||
min_style spin/lbfgs command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
min_style spin :pre
|
||||
min_style spin
|
||||
min_style spin/cg
|
||||
min_style spin/lbfgs :pre
|
||||
|
||||
[Examples:]
|
||||
|
||||
min_style spin :pre
|
||||
min_style spin/lbfgs
|
||||
min_modify line spin_cubic discrete_factor 10.0 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
@ -46,9 +51,38 @@ definition of this timestep.
|
||||
{discrete_factor} can be defined with the "min_modify"_min_modify.html
|
||||
command.
|
||||
|
||||
NOTE: The {spin} style replaces the force tolerance by a torque
|
||||
Style {spin/cg} defines an orthogonal spin optimization
|
||||
(OSO) combined to a conjugate gradient (CG) algorithm.
|
||||
The "min_modify"_min_modify.html command can be used to
|
||||
couple the {spin/cg} to a line search procedure, and to modify the
|
||||
discretization factor {discrete_factor}.
|
||||
By default, style {spin/cg} does not employ the line search procedure
|
||||
and uses the adaptive time-step technique in the same way as style {spin}.
|
||||
|
||||
Style {spin/lbfgs} defines an orthogonal spin optimization
|
||||
(OSO) combined to a limited-memory Broyden-Fletcher-Goldfarb-Shanno
|
||||
(L-BFGS) algorithm.
|
||||
By default, style {spin/lbfgs} does not employ line search procedure.
|
||||
If the line search procedure is not used then the discrete factor defines
|
||||
the maximum root mean squared rotation angle of spins by equation {pi/(5*Kappa)}.
|
||||
The default value for Kappa is 10.
|
||||
The {spin_cubic} line search can improve the convergence of the
|
||||
{spin/lbfgs} algorithm.
|
||||
|
||||
The "min_modify"_min_modify.html command can be used to
|
||||
activate the line search procedure, and to modify the
|
||||
discretization factor {discrete_factor}.
|
||||
|
||||
For more information about styles {spin/cg} and {spin/lbfgs},
|
||||
see their implementation reported in "(Ivanov)"_#Ivanov1.
|
||||
|
||||
NOTE: All the {spin} styles replace the force tolerance by a torque
|
||||
tolerance. See "minimize"_minimize.html for more explanation.
|
||||
|
||||
NOTE: The {spin/cg} and {spin/lbfgs} styles can be used
|
||||
for magnetic NEB calculations only if the line search procedure
|
||||
is deactivated. See "neb/spin"_neb_spin.html for more explanation.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This minimization procedure is only applied to spin degrees of
|
||||
@ -61,5 +95,10 @@ freedom for a frozen lattice configuration.
|
||||
|
||||
[Default:]
|
||||
|
||||
The option defaults are {alpha_damp} = 1.0 and {discrete_factor} =
|
||||
10.0.
|
||||
The option defaults are {alpha_damp} = 1.0, {discrete_factor} =
|
||||
10.0, {line} = spin_none and {norm} = euclidean.
|
||||
|
||||
:line
|
||||
|
||||
:link(Ivanov1)
|
||||
[(Ivanov)] Ivanov, Uzdin, Jonsson. arXiv preprint arXiv:1904.02669, (2019).
|
||||
|
||||
@ -11,7 +11,7 @@ min_style command :h3
|
||||
|
||||
min_style style :pre
|
||||
|
||||
style = {cg} or {cg/kk} or {hftn} or {sd} or {quickmin} or {fire} or {spin} or {adaptglok} :ul
|
||||
style = {cg} or {hftn} or {sd} or {quickmin} or {fire} or {fire2} or {spin} or {spin/cg} or {spin/lbfgs} :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
@ -62,17 +62,31 @@ the velocity non-parallel to the current force vector. The velocity
|
||||
of each atom is initialized to 0.0 by this style, at the beginning of
|
||||
a minimization.
|
||||
|
||||
Style {adaptglok} is a re-implementation of the style {fire} with
|
||||
Style {fire2} is a re-implementation of the style {fire} with
|
||||
additional optimizations of the method described
|
||||
in "(Bitzek)"_#Bitzek, including different time integration schemes.
|
||||
|
||||
Style {spin} is a damped spin dynamics with an adaptive
|
||||
timestep.
|
||||
See the "min/spin"_min_spin.html doc page for more information.
|
||||
|
||||
Either the {quickmin}, {fire} and {adaptglok} styles are useful in the context of
|
||||
Style {spin/cg} uses an orthogonal spin optimization (OSO)
|
||||
combined to a conjugate gradient (CG) approach to minimize spin
|
||||
configurations.
|
||||
|
||||
Style {spin/lbfgs} uses an orthogonal spin optimization (OSO)
|
||||
combined to a limited-memory Broyden-Fletcher-Goldfarb-Shanno
|
||||
(LBFGS) approach to minimize spin configurations.
|
||||
|
||||
See the "min/spin"_min_spin.html doc page for more information
|
||||
about the {spin}, {spin/cg} and {spin/lbfgs} styles.
|
||||
|
||||
Either the {quickmin}, {fire} and {fire2} styles are useful in the context of
|
||||
nudged elastic band (NEB) calculations via the "neb"_neb.html command.
|
||||
|
||||
Either the {spin}, {spin/cg} and {spin/lbfgs} styles are useful
|
||||
in the context of magnetic geodesic nudged elastic band (GNEB) calculations
|
||||
via the "neb/spin"_neb_spin.html command.
|
||||
|
||||
NOTE: The damped dynamic minimizers use whatever timestep you have
|
||||
defined via the "timestep"_timestep.html command. Often they will
|
||||
converge more quickly if you use a timestep about 10x larger than you
|
||||
|
||||
@ -104,12 +104,13 @@ the line search fails because the step distance backtracks to 0.0
|
||||
the number of outer iterations or timesteps exceeds {maxiter}
|
||||
the number of total force evaluations exceeds {maxeval} :ul
|
||||
|
||||
NOTE: the "minimization style"_min_style.html {spin} replaces
|
||||
NOTE: the "minimization style"_min_style.html {spin},
|
||||
{spin/cg}, and {spin/lbfgs} replace
|
||||
the force tolerance {ftol} by a torque tolerance.
|
||||
The minimization procedure stops if the 2-norm (length) of the
|
||||
global torque vector (defined as the cross product between the
|
||||
spins and their precession vectors omega) is less than {ftol},
|
||||
or if any of the other criteria are met.
|
||||
The minimization procedure stops if the 2-norm (length) of the torque vector on atom
|
||||
(defined as the cross product between the
|
||||
atomic spin and its precession vectors omega) is less than {ftol},
|
||||
or if any of the other criteria are met. Torque have the same units as the energy.
|
||||
|
||||
NOTE: You can also use the "fix halt"_fix_halt.html command to specify
|
||||
a general criterion for exiting a minimization, that is a calculation
|
||||
|
||||
@ -59,9 +59,9 @@ performance speed-up you would see with one or more physical
|
||||
processors per replica. See the "Howto replica"_Howto_replica.html
|
||||
doc page for further discussion.
|
||||
|
||||
NOTE: As explained below, a GNEB calculation performs a damped dynamics
|
||||
minimization across all the replicas. The "spin"_min_spin.html
|
||||
style minimizer has to be defined in your input script.
|
||||
NOTE: As explained below, a GNEB calculation performs a
|
||||
minimization across all the replicas. One of the "spin"_min_spin.html
|
||||
style minimizers has to be defined in your input script.
|
||||
|
||||
When a GNEB calculation is performed, it is assumed that each replica
|
||||
is running the same system, though LAMMPS does not check for this.
|
||||
@ -170,9 +170,10 @@ command is issued.
|
||||
:line
|
||||
|
||||
A NEB calculation proceeds in two stages, each of which is a
|
||||
minimization procedure, performed via damped dynamics. To enable
|
||||
this, you must first define a damped spin dynamics
|
||||
"min_style"_min_style.html, using the {spin} style (see
|
||||
minimization procedure. To enable
|
||||
this, you must first define a
|
||||
"min_style"_min_style.html, using either the {spin},
|
||||
{spin/cg}, or {spin/lbfgs} style (see
|
||||
"min_spin"_min_spin.html for more information).
|
||||
The other styles cannot be used, since they relax the lattice
|
||||
degrees of freedom instead of the spins.
|
||||
@ -358,6 +359,9 @@ This command can only be used if LAMMPS was built with the SPIN
|
||||
package. See the "Build package"_Build_package.html doc
|
||||
page for more info.
|
||||
|
||||
For magnetic GNEB calculations, only {spin_none} value for {line} keyword can be used
|
||||
when styles {spin/cg} and {spin/lbfgs} are employed.
|
||||
|
||||
:line
|
||||
|
||||
[Related commands:]
|
||||
|
||||
@ -100,7 +100,7 @@ on particle {i} due to contact with particle {j} is given by:
|
||||
\mathbf\{F\}_\{ne, Hooke\} = k_N \delta_\{ij\} \mathbf\{n\}
|
||||
\end\{equation\}
|
||||
|
||||
Where \(\delta = R_i + R_j - \|\mathbf\{r\}_\{ij\}\|\) is the particle
|
||||
Where \(\delta_\{ij\} = R_i + R_j - \|\mathbf\{r\}_\{ij\}\|\) is the particle
|
||||
overlap, \(R_i, R_j\) are the particle radii, \(\mathbf\{r\}_\{ij\} =
|
||||
\mathbf\{r\}_i - \mathbf\{r\}_j\) is the vector separating the two
|
||||
particle centers (note the i-j ordering so that \(F_\{ne\}\) is
|
||||
@ -177,7 +177,7 @@ following general form:
|
||||
\end\{equation\}
|
||||
|
||||
Here, \(\mathbf\{v\}_\{n,rel\} = (\mathbf\{v\}_j - \mathbf\{v\}_i)
|
||||
\cdot \mathbf\{n\}\) is the component of relative velocity along
|
||||
\cdot \mathbf\{n\} \mathbf\{n\}\) is the component of relative velocity along
|
||||
\(\mathbf\{n\}\).
|
||||
|
||||
The optional {damping} keyword to the {pair_coeff} command followed by
|
||||
@ -299,8 +299,8 @@ the normal damping \(\eta_n\) (see above):
|
||||
\eta_t = -x_\{\gamma,t\} \eta_n
|
||||
\end\{equation\}
|
||||
|
||||
The normal damping prefactor \(\eta_n\) is determined by the choice of
|
||||
the {damping} keyword, as discussed above. Thus, the {damping}
|
||||
The normal damping prefactor \(\eta_n\) is determined by the choice
|
||||
of the {damping} keyword, as discussed above. Thus, the {damping}
|
||||
keyword also affects the tangential damping. The parameter
|
||||
\(x_\{\gamma,t\}\) is a scaling coefficient. Several works in the
|
||||
literature use \(x_\{\gamma,t\} = 1\) ("Marshall"_#Marshall2009,
|
||||
@ -308,10 +308,10 @@ literature use \(x_\{\gamma,t\} = 1\) ("Marshall"_#Marshall2009,
|
||||
tangential velocity at the point of contact is given by
|
||||
\(\mathbf\{v\}_\{t, rel\} = \mathbf\{v\}_\{t\} - (R_i\Omega_i +
|
||||
R_j\Omega_j) \times \mathbf\{n\}\), where \(\mathbf\{v\}_\{t\} =
|
||||
\mathbf\{v\}_r - \mathbf\{v\}_r\cdot\mathbf\{n\}\), \(\mathbf\{v\}_r =
|
||||
\mathbf\{v\}_j - \mathbf\{v\}_i\). The direction of the applied force
|
||||
is \(\mathbf\{t\} =
|
||||
\mathbf\{v_\{t,rel\}\}/\|\mathbf\{v_\{t,rel\}\}\|\).
|
||||
\mathbf\{v\}_r - \mathbf\{v\}_r\cdot\mathbf\{n\}\{n\}\),
|
||||
\(\mathbf\{v\}_r = \mathbf\{v\}_j - \mathbf\{v\}_i\).
|
||||
The direction of the applied force is \(\mathbf\{t\} =
|
||||
\mathbf\{v_\{t,rel\}\}/\|\mathbf\{v_\{t,rel\}\}\|\) .
|
||||
|
||||
The normal force value \(F_\{n0\}\) used to compute the critical force
|
||||
depends on the form of the contact model. For non-cohesive models
|
||||
@ -411,8 +411,8 @@ option by an additional factor of {a}, the radius of the contact region. The tan
|
||||
\mathbf\{F\}_t = -min(\mu_t F_\{n0\}, \|-k_t a \mathbf\{\xi\} + \mathbf\{F\}_\mathrm\{t,damp\}\|) \mathbf\{t\}
|
||||
\end\{equation\}
|
||||
|
||||
Here, {a} is the radius of the contact region, given by \(a = \delta
|
||||
R\) for all normal contact models, except for {jkr}, where it is given
|
||||
Here, {a} is the radius of the contact region, given by \(a =\sqrt\{R\delta\}\)
|
||||
for all normal contact models, except for {jkr}, where it is given
|
||||
implicitly by \(\delta = a^2/R - 2\sqrt\{\pi \gamma a/E\}\), see
|
||||
discussion above. To match the Mindlin solution, one should set \(k_t
|
||||
= 8G\), where \(G\) is the shear modulus, related to Young's modulus
|
||||
@ -680,7 +680,7 @@ The single() function of these pair styles returns 0.0 for the energy
|
||||
of a pairwise interaction, since energy is not conserved in these
|
||||
dissipative potentials. It also returns only the normal component of
|
||||
the pairwise interaction force. However, the single() function also
|
||||
calculates 10 extra pairwise quantities. The first 3 are the
|
||||
calculates 12 extra pairwise quantities. The first 3 are the
|
||||
components of the tangential force between particles I and J, acting
|
||||
on particle I. The 4th is the magnitude of this tangential force.
|
||||
The next 3 (5-7) are the components of the rolling torque acting on
|
||||
|
||||
207
doc/src/pair_local_density.txt
Normal file
@ -0,0 +1,207 @@
|
||||
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:link(lws,http://lammps.sandia.gov)
|
||||
:link(ld,Manual.html)
|
||||
:link(lc,Commands_all.html)
|
||||
|
||||
:line
|
||||
|
||||
pair_style local/density command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
pair_style style arg :pre
|
||||
|
||||
style = {local/density}
|
||||
arg = name of file containing tabulated values of local density and the potential :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
pair_style local/density benzene_water.localdensity.table :pre
|
||||
|
||||
pair_style hybrid/overlay table spline 500 local/density
|
||||
pair_coeff * * local/density benzene_water.localdensity.table :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
The local density (LD) potential is a mean-field manybody potential, and, in some
|
||||
sense,a generalization of embedded atom models (EAM). The name "local density
|
||||
potential" arises from the fact that it assigns an energy to an atom depending
|
||||
on the number of neighboring atoms of given type around it within a predefined
|
||||
spherical volume (i.e., within a cutoff). The bottom-up coarse-graining (CG)
|
||||
literature suggests that such potentials can be widely useful in capturing
|
||||
effective multibody forces in a computationally efficient manner so as to
|
||||
improve the quality of CG models of implicit solvation"(Sanyal1)"_#Sanyal1 and
|
||||
phase-segregation in liquid mixtures"(Sanyal2)"_#Sanyal2, and provide guidelines
|
||||
to determine the extent of manybody correlations present in a CG
|
||||
model."(Rosenberger)"_#Rosenberger The LD potential in LAMMPS is primarily
|
||||
intended to be used as a corrective potential over traditional pair potentials
|
||||
in bottom-up CG models, i.e., as a hybrid pair style with
|
||||
other explicit pair interaction terms (e.g., table spline, Lennard Jones, etc.).
|
||||
Because the LD potential is not a pair potential per se, it is implemented
|
||||
simply as a single auxiliary file with all specifications that will be read
|
||||
upon initialization.
|
||||
|
||||
NOTE: Thus when used as the only interaction in the system, there is no
|
||||
corresponding pair_coeff command and when used with other pair styles using the
|
||||
hybrid/overlay option, the corresponding pair_coeff command must be supplied
|
||||
* * as placeholders for the atom types.
|
||||
|
||||
:line
|
||||
|
||||
[System with a single CG atom type:]
|
||||
|
||||
A system of a single atom type (e.g., LJ argon) with a single local density (LD)
|
||||
potential would have an energy given by:
|
||||
|
||||
:c,image(Eqs/pair_local_density_energy.jpg)
|
||||
|
||||
where rho_i is the LD at atom i and F(rho) is similar in spirit to the
|
||||
embedding function used in EAM potentials. The LD at atom i is given by the sum
|
||||
|
||||
:c,image(Eqs/pair_local_density_ld.jpg)
|
||||
|
||||
where phi is an indicator function that is one at r=0 and zero beyond a cutoff
|
||||
distance R2. The choice of the functional form of phi is somewhat arbitrary,
|
||||
but the following piecewise cubic function has proven sufficiently general:
|
||||
"(Sanyal1)"_#Sanyal1, "(Sanyal2)"_#Sanyal2 "(Rosenberger)"_#Rosenberger
|
||||
|
||||
:c,image(Eqs/pair_local_density_indicator_func.jpg)
|
||||
|
||||
The constants {c} are chosen so that the indicator function smoothly
|
||||
interpolates between 1 and 0 between the distances R1 and R2, which are
|
||||
called the inner and outer cutoffs, respectively. Thus phi satisfies
|
||||
phi(R1) = 1, phi(R2) = dphi/dr @ (r=R1) = dphi/dr @ (r=R2) = 0. The embedding
|
||||
function F(rho) may or may not have a closed-form expression. To maintain
|
||||
generality, it is practically represented with a spline-interpolated table
|
||||
over a predetermined range of rho. Outside of that range it simply adopts zero
|
||||
values at the endpoints.
|
||||
|
||||
It can be shown that the total force between two atoms due to the LD potential
|
||||
takes the form of a pair force, which motivates its designation as a LAMMPS
|
||||
pair style. Please see "(Sanyal1)"_#Sanyal1 for details of the derivation.
|
||||
|
||||
:line
|
||||
|
||||
[Systems with arbitrary numbers of atom types:]
|
||||
|
||||
The potential is easily generalized to systems involving multiple atom types:
|
||||
|
||||
:c,image(Eqs/pair_local_density_energy_multi.jpg)
|
||||
|
||||
with the LD expressed as
|
||||
|
||||
:c,image(Eqs/pair_local_density_ld_multi.jpg)
|
||||
|
||||
where alpha gives the type of atom i, beta the type of atom j, and the
|
||||
coefficients a and b filter for atom types as specified by the user. a is
|
||||
called the central atom filter as it determines to which atoms the
|
||||
potential applies; a_alpha = 1 if the LD potential applies to atom type alpha
|
||||
else zero. On the other hand, b is called the neighbor atom filter because it
|
||||
specifies which atom types to use in the calculation of the LD; b_beta = 1 if
|
||||
atom type beta contributes to the LD and zero otherwise.
|
||||
|
||||
NOTE: Note that the potentials need not be symmetric with respect to atom types,
|
||||
which is the reason for two distinct sets of coefficients a and b. An atom type
|
||||
may contribute to the LD but not the potential, or to the potential but not the
|
||||
LD. Such decisions are made by the user and should (ideally) be motivated on
|
||||
physical grounds for the problem at hand.
|
||||
|
||||
:line
|
||||
|
||||
[General form for implementation in LAMMPS:]
|
||||
|
||||
Of course, a system with many atom types may have many different possible LD
|
||||
potentials, each with their own atom type filters, cutoffs, and embedding
|
||||
functions. The most general form of this potential as implemented in the
|
||||
pair_style local/density is:
|
||||
|
||||
:c,image(Eqs/pair_local_density_energy_implement.jpg)
|
||||
|
||||
where, k is an index that spans the (arbitrary) number of applied LD potentials
|
||||
N_LD. Each LD is calculated as before with:
|
||||
|
||||
:c,image(Eqs/pair_local_density_ld_implement.jpg)
|
||||
|
||||
The superscript on the indicator function phi simply indicates that it is
|
||||
associated with specific values of the cutoff distances R1(k) and R2(k). In
|
||||
summary, there may be N_LD distinct LD potentials. With each potential type (k),
|
||||
one must specify:
|
||||
|
||||
the inner and outer cutoffs as R1 and R2
|
||||
the central type filter a(k), where k = 1,2,...N_LD
|
||||
the neighbor type filter b(k), where k = 1,2,...N_LD
|
||||
the LD potential function F(k)(rho), typically as a table that is later spline-interpolated :ul
|
||||
|
||||
:line
|
||||
|
||||
[Tabulated input file format:]
|
||||
|
||||
Line 1: comment or blank (ignored)
|
||||
Line 2: comment or blank (ignored)
|
||||
Line 3: N_LD N_rho (# of LD potentials and # of tabulated values, single space separated)
|
||||
Line 4: blank (ignored)
|
||||
Line 5: R1(k) R2(k) (lower and upper cutoffs, single space separated)
|
||||
Line 6: central-types (central atom types, single space separated)
|
||||
Line 7: neighbor-types (neighbor atom types single space separated)
|
||||
Line 8: rho_min rho_max drho (min, max and diff. in tabulated rho values, single space separated)
|
||||
Line 9: F(k)(rho_min + 0.drho)
|
||||
Line 10: F(k)(rho_min + 1.drho)
|
||||
Line 11: F(k)(rho_min + 2.drho)
|
||||
...
|
||||
Line 9+N_rho: F(k)(rho_min + N_rho . drho)
|
||||
Line 10+N_rho: blank (ignored) :pre
|
||||
|
||||
Block 2 :pre
|
||||
|
||||
Block 3 :pre
|
||||
|
||||
Block N_LD :pre
|
||||
|
||||
Lines 5 to 9+N_rho constitute the first block. Thus the input file is separated
|
||||
(by blank lines) into N_LD blocks each representing a separate LD potential and
|
||||
each specifying its own upper and lower cutoffs, central and neighbor atoms,
|
||||
and potential. In general, blank lines anywhere are ignored.
|
||||
|
||||
:line
|
||||
|
||||
[Mixing, shift, table, tail correction, restart, info]:
|
||||
This pair style does not support automatic mixing. For atom type pairs alpha,
|
||||
beta and alpha != beta, even if LD potentials of type (alpha, alpha) and
|
||||
(beta, beta) are provided, you will need to explicitly provide LD potential
|
||||
types (alpha, beta) and (beta, alpha) if need be (Here, the notation (alpha,
|
||||
beta) means that alpha is the central atom to which the LD potential is applied
|
||||
and beta is the neighbor atom which contributes to the LD potential on alpha).
|
||||
|
||||
This pair style does not support the "pair_modify"_pair_modify.html
|
||||
shift, table, and tail options.
|
||||
|
||||
The local/density pair style does not write its information to "binary restart
|
||||
files"_restart.html, since it is stored in tabulated potential files.
|
||||
Thus, you need to re-specify the pair_style and pair_coeff commands in
|
||||
an input script that reads a restart file.
|
||||
|
||||
:line
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
The local/density pair style is a part of the USER-MISC package. It is only
|
||||
enabled if LAMMPS was built with that package. See the "Build
|
||||
package"_Build_package.html doc page for more info.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"pair_coeff"_pair_coeff.html
|
||||
|
||||
[Default:] none
|
||||
|
||||
:line
|
||||
|
||||
|
||||
:link(Sanyal1)
|
||||
[(Sanyal1)] Sanyal and Shell, Journal of Chemical Physics, 2016, 145 (3), 034109.
|
||||
:link(Sanyal2)
|
||||
[(Sanyal2)] Sanyal and Shell, Journal of Physical Chemistry B, 122 (21), 5678-5693.
|
||||
|
||||
:link(Rosenberger)
|
||||
[(Rosenberger)] Rosenberger, Sanyal, Shell and van der Vegt, Journal of Chemical Physics, 2019, 151 (4), 044111.
|
||||
@ -25,9 +25,8 @@ pair_coeff * * 10.0
|
||||
pair_coeff 2 3 8.0 :pre
|
||||
|
||||
pair_style spin/dipole/long 9.0
|
||||
pair_coeff * * 1.0 1.0
|
||||
pair_coeff 2 3 1.0 1.0 2.5 4.0 scale 0.5
|
||||
pair_coeff 2 3 1.0 1.0 2.5 4.0 :pre
|
||||
pair_coeff * * 10.0
|
||||
pair_coeff 2 3 6.0 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
|
||||
@ -228,6 +228,7 @@ accelerated styles exist.
|
||||
"lj/smooth/linear"_pair_lj_smooth_linear.html - linear smoothed LJ potential
|
||||
"lj/switch3/coulgauss"_pair_lj_switch3_coulgauss - smoothed LJ vdW potential with Gaussian electrostatics
|
||||
"lj96/cut"_pair_lj96.html - Lennard-Jones 9/6 potential
|
||||
"local/density"_pair_local_density.html - generalized basic local density potential
|
||||
"lubricate"_pair_lubricate.html - hydrodynamic lubrication forces
|
||||
"lubricate/poly"_pair_lubricate.html - hydrodynamic lubrication forces with polydispersity
|
||||
"lubricateU"_pair_lubricateU.html - hydrodynamic lubrication forces for Fast Lubrication Dynamics
|
||||
|
||||
@ -66,6 +66,7 @@ Pair Styles :h1
|
||||
pair_lj_smooth
|
||||
pair_lj_smooth_linear
|
||||
pair_lj_switch3_coulgauss
|
||||
pair_local_density
|
||||
pair_lubricate
|
||||
pair_lubricateU
|
||||
pair_mdf
|
||||
|
||||
62
doc/src/third_order.txt
Normal file
@ -0,0 +1,62 @@
|
||||
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:link(lws,http://lammps.sandia.gov)
|
||||
:link(ld,Manual.html)
|
||||
:link(lc,Commands_all.html)
|
||||
|
||||
:line
|
||||
|
||||
third_order command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
third_order group-ID style delta args keyword value ... :pre
|
||||
|
||||
group-ID = ID of group of atoms to displace :ulb,l
|
||||
style = {regular} or {eskm} :l
|
||||
delta = finite different displacement length (distance units) :l
|
||||
one or more keyword/arg pairs may be appended :l
|
||||
keyword = {file} or {binary}
|
||||
{file} name = name of output file for the third order tensor
|
||||
{binary} arg = {yes} or {no} or {gzip} :pre
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
|
||||
third_order 1 regular 0.000001
|
||||
third_order 1 eskm 0.000001
|
||||
third_order 3 regular 0.00004 file third_order.dat
|
||||
third_order 5 eskm 0.00000001 file third_order.dat binary yes :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Calculate the third order force constant tensor by finite difference of the selected group,
|
||||
|
||||
:c,image(JPG/third_order_force_constant.png))
|
||||
|
||||
where Phi is the third order force constant tensor.
|
||||
|
||||
The output of the command is the tensor, three elements at a time. The
|
||||
three elements correspond to the three gamma elements for a specific i/alpha/j/beta/k.
|
||||
The initial five numbers are i, alpha, j, beta, and k respectively.
|
||||
|
||||
If the style eskm is selected, the tensor will be using energy units of 10 J/mol.
|
||||
These units conform to eskm style from the dynamical_matrix command, which
|
||||
will simplify operations using dynamical matrices with third order tensors.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
The command collects a 9 times the number of atoms in the group on every single MPI rank,
|
||||
so the memory requirements can be very significant for large systems.
|
||||
|
||||
This command is part of the USER-PHONON package. It is only enabled if
|
||||
LAMMPS was built with that package. See the "Build
|
||||
package"_Build_package.html doc page for more info.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"fix phonon"_fix_phonon.html "dynamical_matrix"_dynamical_matrix.html
|
||||
|
||||
[Default:]
|
||||
|
||||
The default settings are file = "third_order.dat", binary = no
|
||||
@ -276,6 +276,7 @@ Broadwell
|
||||
Broglie
|
||||
brownian
|
||||
brownw
|
||||
Broyden
|
||||
Bryantsev
|
||||
Btarget
|
||||
btype
|
||||
@ -306,6 +307,7 @@ Cavium
|
||||
Cawkwell
|
||||
cbecker
|
||||
ccache
|
||||
ccachepiecewise
|
||||
ccmake
|
||||
ccNspecies
|
||||
CCu
|
||||
@ -624,6 +626,7 @@ Doye
|
||||
dpd
|
||||
DPD
|
||||
dpdTheta
|
||||
dphi
|
||||
DPhil
|
||||
dr
|
||||
dR
|
||||
@ -782,6 +785,7 @@ erotate
|
||||
Ertas
|
||||
ervel
|
||||
Espanol
|
||||
eskm
|
||||
esu
|
||||
esub
|
||||
esw
|
||||
@ -991,6 +995,7 @@ gmask
|
||||
Gmask
|
||||
gneb
|
||||
GNEB
|
||||
Goldfarb
|
||||
googlemail
|
||||
Gordan
|
||||
GPa
|
||||
@ -1410,6 +1415,7 @@ Laupretre
|
||||
lavenderblush
|
||||
lawngreen
|
||||
lB
|
||||
lbfgs
|
||||
lbl
|
||||
LBtype
|
||||
lcbop
|
||||
@ -1583,6 +1589,7 @@ Materias
|
||||
mathbf
|
||||
matlab
|
||||
matplotlib
|
||||
Mattice
|
||||
Mattox
|
||||
Mattson
|
||||
maxangle
|
||||
@ -2046,6 +2053,7 @@ Orsi
|
||||
ortho
|
||||
orthonormal
|
||||
orthorhombic
|
||||
oso
|
||||
ot
|
||||
Otype
|
||||
Ouldridge
|
||||
@ -2130,6 +2138,7 @@ ph
|
||||
Phillpot
|
||||
phiphi
|
||||
phonon
|
||||
phonons
|
||||
phophorous
|
||||
phosphide
|
||||
Phs
|
||||
@ -2143,6 +2152,7 @@ picograms
|
||||
picosecond
|
||||
picoseconds
|
||||
pid
|
||||
piecewise
|
||||
Pieniazek
|
||||
Pieter
|
||||
pimd
|
||||
@ -2277,6 +2287,7 @@ qoffload
|
||||
qopenmp
|
||||
qoverride
|
||||
qtb
|
||||
quadratically
|
||||
quadrupolar
|
||||
Quant
|
||||
quartic
|
||||
@ -2427,6 +2438,7 @@ Rodrigues
|
||||
Rohart
|
||||
Ronchetti
|
||||
Rosati
|
||||
Rosenberger
|
||||
Rossky
|
||||
rosybrown
|
||||
rotationally
|
||||
@ -2491,6 +2503,7 @@ Scripta
|
||||
sdk
|
||||
sdpd
|
||||
SDPD
|
||||
se
|
||||
seagreen
|
||||
Secor
|
||||
sectoring
|
||||
@ -2517,6 +2530,7 @@ setvel
|
||||
sfftw
|
||||
Sg
|
||||
Shan
|
||||
Shanno
|
||||
shapex
|
||||
shapey
|
||||
shapez
|
||||
@ -2584,6 +2598,7 @@ Snodin
|
||||
Sodani
|
||||
Soderlind
|
||||
solvated
|
||||
solvation
|
||||
Sorensen
|
||||
soundspeed
|
||||
Souza
|
||||
@ -2946,6 +2961,7 @@ vectorial
|
||||
vectorization
|
||||
Vectorization
|
||||
vectorized
|
||||
Vegt
|
||||
vel
|
||||
Verlag
|
||||
verlet
|
||||
|
||||
@ -76,6 +76,7 @@ ellipse: ellipsoidal particles in spherical solvent, 2d system
|
||||
flow: Couette and Poiseuille flow in a 2d channel
|
||||
friction: frictional contact of spherical asperities between 2d surfaces
|
||||
gcmc: Grand Canonical Monte Carlo (GCMC) via the fix gcmc command
|
||||
gjf: use of fix langevin Gronbech-Jensen/Farago option
|
||||
granregion: use of fix wall/region/gran as boundary on granular particles
|
||||
hugoniostat: Hugoniostat shock dynamics
|
||||
hyper: global and local hyperdynamics of diffusion on Pt surface
|
||||
@ -99,12 +100,11 @@ pour: pouring of granular particles into a 3d box, then chute flow
|
||||
prd: parallel replica dynamics of vacancy diffusion in bulk Si
|
||||
python: use of PYTHON package to invoke Python code from input script
|
||||
qeq: use of QEQ package for charge equilibration
|
||||
reax: RDX and TATB models using the ReaxFF
|
||||
reax: RDX and TATB and several other models using ReaxFF
|
||||
rigid: rigid bodies modeled as independent or coupled
|
||||
shear: sideways shear applied to 2d solid, with and without a void
|
||||
snap: use of SNAP potential for Ta
|
||||
snap: examples for using several bundled SNAP potentials
|
||||
srd: stochastic rotation dynamics (SRD) particles as solvent
|
||||
snap: NVE dynamics for BCC tantalum crystal using SNAP potential
|
||||
steinhardt: Steinhardt-Nelson Q_l and W_l parameters usng orientorder/atom
|
||||
streitz: Streitz-Mintmire potential for Al2O3
|
||||
tad: temperature-accelerated dynamics of vacancy diffusion in bulk Si
|
||||
@ -164,6 +164,12 @@ The MC directory has an example script for using LAMMPS as an
|
||||
energy-evaluation engine in a iterative Monte Carlo energy-relaxation
|
||||
loop.
|
||||
|
||||
The UNITS directory contains examples of input scripts modeling the
|
||||
same Lennard-Jones liquid model, written in 3 different unit systems:
|
||||
lj, real, and metal. So that you can see how to scale/unscale input
|
||||
and output values read/written by LAMMPS to verify you are performing
|
||||
the same simulation in different unit systems.
|
||||
|
||||
The USER directory contains subdirectories of user-provided example
|
||||
scripts for ser packages. See the README files in those directories
|
||||
for more info. See the doc/Section_start.html file for more info
|
||||
|
||||
@ -32,7 +32,7 @@ neigh_modify every 10 check yes delay 20
|
||||
|
||||
fix 1 all precession/spin anisotropy 0.0000033 0.0 0.0 1.0
|
||||
fix 2 all langevin/spin 0.0 0.1 21
|
||||
fix 3 all nve/spin lattice no
|
||||
fix 3 all nve/spin lattice frozen
|
||||
|
||||
timestep 0.0002
|
||||
|
||||
|
||||
@ -35,7 +35,7 @@ fix_modify 1 energy yes
|
||||
|
||||
fix 2 all langevin/spin 0.0 0.0 21
|
||||
|
||||
fix 3 all nve/spin lattice yes
|
||||
fix 3 all nve/spin lattice moving
|
||||
timestep 0.0001
|
||||
|
||||
# compute and output options
|
||||
|
||||
@ -37,7 +37,7 @@ neigh_modify every 10 check yes delay 20
|
||||
fix 1 all precession/spin anisotropy 0.01 0.0 0.0 1.0
|
||||
#fix 2 all langevin/spin 0.0 0.0 21
|
||||
fix 2 all langevin/spin 0.0 0.1 21
|
||||
fix 3 all nve/spin lattice yes
|
||||
fix 3 all nve/spin lattice moving
|
||||
|
||||
timestep 0.0001
|
||||
|
||||
|
||||
@ -33,7 +33,7 @@ fix 1 all precession/spin cubic 0.001 0.0005 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1
|
||||
fix_modify 1 energy yes
|
||||
fix 2 all langevin/spin 0.0 0.0 21
|
||||
|
||||
fix 3 all nve/spin lattice yes
|
||||
fix 3 all nve/spin lattice moving
|
||||
timestep 0.0001
|
||||
|
||||
# compute and output options
|
||||
|
||||
@ -35,7 +35,7 @@ fix 1 all precession/spin cubic 0.001 0.0005 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1
|
||||
fix_modify 1 energy yes
|
||||
fix 2 all langevin/spin 0.0 0.0 21
|
||||
|
||||
fix 3 all nve/spin lattice yes
|
||||
fix 3 all nve/spin lattice moving
|
||||
timestep 0.0001
|
||||
|
||||
# compute and output options
|
||||
|
||||
@ -36,7 +36,7 @@ fix 1 all precession/spin cubic 0.001 0.0005 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1
|
||||
fix_modify 1 energy yes
|
||||
fix 2 all langevin/spin 0.0 0.0 21
|
||||
|
||||
fix 3 all nve/spin lattice yes
|
||||
fix 3 all nve/spin lattice moving
|
||||
timestep 0.0001
|
||||
|
||||
# compute and output options
|
||||
|
||||
@ -33,7 +33,7 @@ neigh_modify every 10 check yes delay 20
|
||||
fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0
|
||||
fix 2 all langevin/spin 0.0 0.0 21
|
||||
|
||||
fix 3 all nve/spin lattice yes
|
||||
fix 3 all nve/spin lattice moving
|
||||
timestep 0.0001
|
||||
|
||||
# compute and output options
|
||||
|
||||
@ -31,7 +31,7 @@ fix 1 all precession/spin cubic 0.001 0.0005 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1
|
||||
fix_modify 1 energy yes
|
||||
fix 2 all langevin/spin 0.0 0.0 21
|
||||
|
||||
fix 3 all nve/spin lattice yes
|
||||
fix 3 all nve/spin lattice moving
|
||||
timestep 0.0001
|
||||
|
||||
# compute and output options
|
||||
|
||||
@ -33,7 +33,7 @@ neigh_modify every 10 check yes delay 20
|
||||
fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0
|
||||
fix 2 all langevin/spin 0.0 0.0 21
|
||||
|
||||
fix 3 all nve/spin lattice yes
|
||||
fix 3 all nve/spin lattice moving
|
||||
timestep 0.0001
|
||||
|
||||
# compute and output options
|
||||
|
||||
@ -35,7 +35,7 @@ fix 1 all precession/spin cubic -0.0001 0.0 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.
|
||||
fix_modify 1 energy yes
|
||||
fix 2 all langevin/spin 0.0 0.0 21
|
||||
|
||||
fix 3 all nve/spin lattice yes
|
||||
fix 3 all nve/spin lattice moving
|
||||
timestep 0.0001
|
||||
|
||||
# compute and output options
|
||||
|
||||
@ -20,7 +20,7 @@ neigh_modify every 1 check no delay 0
|
||||
fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0
|
||||
fix 2 all langevin/spin 0.0 0.0 21
|
||||
|
||||
fix 3 all nve/spin lattice yes
|
||||
fix 3 all nve/spin lattice moving
|
||||
timestep 0.0001
|
||||
|
||||
# define outputs and computes
|
||||
|
||||
@ -24,7 +24,7 @@ neigh_modify every 1 check no delay 0
|
||||
fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0
|
||||
fix 2 all langevin/spin 0.0 0.0 21
|
||||
|
||||
fix 3 all nve/spin lattice yes
|
||||
fix 3 all nve/spin lattice moving
|
||||
timestep 0.0001
|
||||
|
||||
# define outputs
|
||||
|
||||
@ -29,7 +29,7 @@ neigh_modify every 10 check yes delay 20
|
||||
fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0
|
||||
fix 2 all langevin/spin 100.0 0.01 21
|
||||
|
||||
fix 3 all nve/spin lattice no
|
||||
fix 3 all nve/spin lattice frozen
|
||||
timestep 0.0001
|
||||
|
||||
# compute and output options
|
||||
|
||||
@ -35,7 +35,7 @@ fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 anisotropy 5e-05 0.0 0.0 1.0
|
||||
fix_modify 1 energy yes
|
||||
fix 2 fixed_spin setforce/spin 0.0 0.0 0.0
|
||||
fix 3 all langevin/spin 0.0 0.1 21
|
||||
fix 4 all nve/spin lattice no
|
||||
fix 4 all nve/spin lattice frozen
|
||||
|
||||
timestep 0.0001
|
||||
|
||||
|
||||
54
examples/SPIN/spinmin/in.spinmin_cg.bfo
Normal file
@ -0,0 +1,54 @@
|
||||
# bfo in a 3d periodic box
|
||||
|
||||
units metal
|
||||
dimension 3
|
||||
boundary p p f
|
||||
atom_style spin
|
||||
|
||||
# necessary for the serial algorithm (sametag)
|
||||
atom_modify map array
|
||||
|
||||
lattice sc 3.96
|
||||
region box block 0.0 34.0 0.0 34.0 0.0 1.0
|
||||
create_box 1 box
|
||||
create_atoms 1 box
|
||||
|
||||
# setting mass, mag. moments, and interactions for bcc iron
|
||||
|
||||
mass 1 1.0
|
||||
set group all spin/random 11 2.50
|
||||
|
||||
pair_style hybrid/overlay spin/exchange 6.0 spin/magelec 4.5 spin/dmi 4.5
|
||||
pair_coeff * * spin/exchange exchange 6.0 -0.01575 0.0 1.965
|
||||
# pair_coeff * * spin/magelec magelec 4.5 0.000109 1.0 1.0 1.0
|
||||
pair_coeff * * spin/magelec magelec 4.5 0.00109 1.0 1.0 1.0
|
||||
pair_coeff * * spin/dmi dmi 4.5 0.00005 1.0 1.0 1.0
|
||||
|
||||
neighbor 0.1 bin
|
||||
neigh_modify every 10 check yes delay 20
|
||||
|
||||
fix 1 all precession/spin anisotropy 0.0000033 0.0 0.0 1.0
|
||||
fix_modify 1 energy yes
|
||||
|
||||
timestep 0.0001
|
||||
|
||||
compute out_mag all spin
|
||||
compute out_pe all pe
|
||||
compute out_ke all ke
|
||||
compute out_temp all temp
|
||||
|
||||
variable magz equal c_out_mag[3]
|
||||
variable magnorm equal c_out_mag[4]
|
||||
variable emag equal c_out_mag[5]
|
||||
variable tmag equal c_out_mag[6]
|
||||
|
||||
thermo 100
|
||||
thermo_style custom step time v_magnorm v_emag v_tmag temp etotal
|
||||
thermo_modify format float %20.15g
|
||||
|
||||
compute outsp all property/atom spx spy spz sp fmx fmy fmz
|
||||
dump 1 all custom 50 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7]
|
||||
|
||||
min_style spin/cg
|
||||
# min_modify line spin_none discrete_factor 10.0
|
||||
minimize 1.0e-10 1.0e-10 10000 10000
|
||||
55
examples/SPIN/spinmin/in.spinmin_lbfgs.bfo
Normal file
@ -0,0 +1,55 @@
|
||||
# bfo in a 3d periodic box
|
||||
|
||||
units metal
|
||||
dimension 3
|
||||
boundary p p f
|
||||
atom_style spin
|
||||
|
||||
# necessary for the serial algorithm (sametag)
|
||||
atom_modify map array
|
||||
|
||||
lattice sc 3.96
|
||||
region box block 0.0 34.0 0.0 34.0 0.0 1.0
|
||||
create_box 1 box
|
||||
create_atoms 1 box
|
||||
|
||||
# setting mass, mag. moments, and interactions for bcc iron
|
||||
|
||||
mass 1 1.0
|
||||
set group all spin/random 11 2.50
|
||||
|
||||
pair_style hybrid/overlay spin/exchange 6.0 spin/magelec 4.5 spin/dmi 4.5
|
||||
pair_coeff * * spin/exchange exchange 6.0 -0.01575 0.0 1.965
|
||||
#pair_coeff * * spin/magelec magelec 4.5 0.000109 1.0 1.0 1.0
|
||||
pair_coeff * * spin/magelec magelec 4.5 0.00109 1.0 1.0 1.0
|
||||
pair_coeff * * spin/dmi dmi 4.5 0.00005 1.0 1.0 1.0
|
||||
|
||||
neighbor 0.1 bin
|
||||
neigh_modify every 10 check yes delay 20
|
||||
|
||||
fix 1 all precession/spin anisotropy 0.0000033 0.0 0.0 1.0
|
||||
fix_modify 1 energy yes
|
||||
|
||||
timestep 0.0001
|
||||
|
||||
compute out_mag all spin
|
||||
compute out_pe all pe
|
||||
compute out_ke all ke
|
||||
compute out_temp all temp
|
||||
|
||||
variable magz equal c_out_mag[3]
|
||||
variable magnorm equal c_out_mag[4]
|
||||
variable emag equal c_out_mag[5]
|
||||
variable tmag equal c_out_mag[6]
|
||||
|
||||
thermo 50
|
||||
thermo_style custom step time v_magnorm v_emag v_tmag temp etotal
|
||||
thermo_modify format float %20.15g
|
||||
|
||||
compute outsp all property/atom spx spy spz sp fmx fmy fmz
|
||||
dump 1 all custom 50 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7]
|
||||
|
||||
min_style spin/lbfgs
|
||||
# min_modify line spin_cubic discrete_factor 10.0
|
||||
min_modify norm max
|
||||
minimize 1.0e-15 1.0e-10 10000 1000
|
||||
54
examples/UNITS/README
Normal file
@ -0,0 +1,54 @@
|
||||
This directory has 3 scripts which show how to run the same problem
|
||||
using the 3 most common units system used in LAMMPS: lj, real, and
|
||||
metal units. As stated on the units command doc page:
|
||||
|
||||
"Any simulation you perform for one choice of units can be duplicated
|
||||
with any other unit setting LAMMPS supports. ... To perform the same
|
||||
simulation in a different set of units you must change all the
|
||||
unit-based input parameters in your input script and other input files
|
||||
(data file, potential files, etc) correctly to the new units. And you
|
||||
must correctly convert all output from the new units to the old units
|
||||
when comparing to the original results. That is often not simple to
|
||||
do."
|
||||
|
||||
These examples are meant to illustrate how to do this for a simple
|
||||
Lennard-Jones liquid (argon). All of the scripts have a set of
|
||||
variables defined at the top which can be changed as command line
|
||||
arguments (e.g. -v cutoff 3.0). All 3 scripts give identical output,
|
||||
modulo round-offs due to the finite precision of the conversion
|
||||
factors used, either internally in LAMMPS or in the scripts. If there
|
||||
were run for a long time, the trajectories would diverge, but they
|
||||
would still give statistically identical results.
|
||||
|
||||
The LJ script is the simplest; it is similar to the bench/in.lj
|
||||
script.
|
||||
|
||||
The real and metal scripts each have a set of variables at the top
|
||||
which define scale factors for converting quantities like distance,
|
||||
energy, pressure from reduced LJ units to real or metal units. Once
|
||||
these are defined the rest of the input script is very similar to the
|
||||
LJ script. The approprate scale factor is applied to every input.
|
||||
Output quantities are printed in both the native real/metal units and
|
||||
unscaled back to LJ units. So that you can see the outputs are the
|
||||
same if you examine the log files. Comments about this comparison
|
||||
are at the bottom of the real and metal scripts.
|
||||
|
||||
These 3 scripts are provided, because converting from lj reduced units
|
||||
to physical units (e.g. real or metal) or vice versa is the trickiest
|
||||
case. Converting input scripts between 2 sets of physical units
|
||||
(e.g. reak <--> metal) is much easier. But you can use the same ideas
|
||||
as in these scripts; just define a set of scale/unscale factors.
|
||||
|
||||
See Allen & Tildesley's Computer Simulation of Liquids, Appendix B for
|
||||
a nice discussion of reduced units. It will explain the conversion
|
||||
formulas used in the real and metal scripts.
|
||||
|
||||
Hopefully, if you study these scripts, you should be able to convert
|
||||
an input script of your own, written in one set of units, to an
|
||||
identical input script in an alternate set of units. Where
|
||||
"identical" means it runs the same simulation in a statistical sense.
|
||||
|
||||
You can find the full set of scale factors LAMMPS uses internally for
|
||||
different unit systems it supports, at the top of the src/udpate.cpp
|
||||
file. A couple of those values are used in the real and metal
|
||||
scripts.
|
||||
43
examples/UNITS/in.ar.lj
Normal file
@ -0,0 +1,43 @@
|
||||
# Ar in lj units
|
||||
|
||||
# simulation params in reduced units
|
||||
# settable from command line
|
||||
# epsilon = sigma = mass = 1.0
|
||||
|
||||
variable x index 5
|
||||
variable y index 5
|
||||
variable z index 5
|
||||
variable rhostar index 0.8842
|
||||
variable dt index 0.005
|
||||
variable cutoff index 2.5
|
||||
variable skin index 0.3
|
||||
variable tinitial index 1.0
|
||||
variable nthermo index 10
|
||||
variable nsteps index 100
|
||||
|
||||
# script
|
||||
|
||||
units lj
|
||||
atom_style atomic
|
||||
|
||||
lattice fcc ${rhostar}
|
||||
region box block 0 $x 0 $y 0 $z
|
||||
create_box 1 box
|
||||
create_atoms 1 box
|
||||
mass 1 1.0
|
||||
|
||||
velocity all create ${tinitial} 12345
|
||||
|
||||
pair_style lj/cut ${cutoff}
|
||||
pair_coeff 1 1 1.0 1.0
|
||||
|
||||
neighbor ${skin} bin
|
||||
neigh_modify delay 0 every 20 check no
|
||||
|
||||
fix 1 all nve
|
||||
|
||||
timestep ${dt}
|
||||
|
||||
thermo 10
|
||||
|
||||
run 100
|
||||
98
examples/UNITS/in.ar.metal
Normal file
@ -0,0 +1,98 @@
|
||||
# Ar in metal units
|
||||
|
||||
# simulation params in reduced units
|
||||
# settable from command line
|
||||
# epsilon, sigma, mass set below
|
||||
|
||||
variable x index 5
|
||||
variable y index 5
|
||||
variable z index 5
|
||||
variable rhostar index 0.8842
|
||||
variable dt index 0.005
|
||||
variable cutoff index 2.5
|
||||
variable skin index 0.3
|
||||
variable tinitial index 1.0
|
||||
variable nthermo index 10
|
||||
variable nsteps index 100
|
||||
|
||||
# physical constants from update.cpp
|
||||
|
||||
variable kb index 8.617343e-5 # kB in eV/K
|
||||
variable avogadro index 6.02214129e23 # Avogadro's number
|
||||
|
||||
# Ar properties in metal units
|
||||
|
||||
variable epskb index 117.7 # LJ epsilon/kB in degrees K
|
||||
variable sigma index 3.504 # LJ sigma in Angstroms
|
||||
variable epsilon equal ${epskb}*${kb} # LJ epsilon in eV
|
||||
variable mass index 39.95 # mass in g/mole
|
||||
|
||||
# scale factors
|
||||
|
||||
# sigma = scale factor on distance, converts reduced distance to Angs
|
||||
# epsilon = scale factor on energy, converts reduced energy to eV
|
||||
# tmpscale = scale factor on temperature, converts reduced temp to degrees K
|
||||
# tscale = scale factor on time, converts reduced time to ps
|
||||
# formula is t = t* / sqrt(epsilon/mass/sigma^2), but need t in fs
|
||||
# use epsilon (Joule), mass (kg/atom), sigma (meter) to get t in seconds
|
||||
# pscale = scale factor on pressure, converts reduced pressure to bars
|
||||
# formula is P = P* / (sigma^3/epsilon), but need P in atmospheres
|
||||
# use sigma (meter), epsilon (Joule) to get P in nt/meter^2, convert to bars
|
||||
|
||||
variable eVtoJoule index 1.602e-19 # convert eV to Joules
|
||||
variable NtMtoAtm equal 1.0e-5 # convert Nt/meter^2 to bars
|
||||
|
||||
variable tmpscale equal ${epskb}
|
||||
variable epsilonJ equal ${epsilon}*${eVtoJoule}
|
||||
variable massKgAtom equal ${mass}/1000.0/${avogadro}
|
||||
variable sigmaM equal ${sigma}/1.0e10
|
||||
variable sigmaMsq equal ${sigmaM}*${sigmaM}
|
||||
variable tscale equal 1.0e12/sqrt(${epsilonJ}/${massKgAtom}/${sigmaMsq})
|
||||
variable sigmaM3 equal ${sigmaM}*${sigmaM}*${sigmaM}
|
||||
variable pscale equal ${NtMtoAtm}/(${sigmaM3}/(${epsilonJ}))
|
||||
|
||||
# variables
|
||||
# alat = lattice constant in Angs (at reduced density rhostar)
|
||||
# temp = reduced temperature for output
|
||||
# epair,emol,etotal = reduced epair,emol,etotal energies for output
|
||||
# press = reduced pressure for output
|
||||
|
||||
variable alat equal (4.0*${sigma}*${sigma}*${sigma}/${rhostar})^(1.0/3.0)
|
||||
variable temp equal temp/${tmpscale}
|
||||
variable epair equal epair/${epsilon}
|
||||
variable emol equal emol/${epsilon}
|
||||
variable etotal equal etotal/${epsilon}
|
||||
variable press equal press/${pscale}
|
||||
|
||||
# same script as in.ar.lj
|
||||
|
||||
units metal
|
||||
atom_style atomic
|
||||
|
||||
lattice fcc ${alat}
|
||||
region box block 0 $x 0 $y 0 $z
|
||||
create_box 1 box
|
||||
create_atoms 1 box
|
||||
mass 1 ${mass}
|
||||
|
||||
velocity all create $(v_tinitial*v_epskb) 12345
|
||||
|
||||
pair_style lj/cut $(v_cutoff*v_sigma)
|
||||
pair_coeff 1 1 ${epsilon} ${sigma}
|
||||
|
||||
neighbor $(v_skin*v_sigma) bin
|
||||
neigh_modify delay 0 every 20 check no
|
||||
|
||||
fix 1 all nve
|
||||
|
||||
timestep $(v_dt*v_tscale)
|
||||
|
||||
# columns 2,3,4 = temp,pe,press in metal units
|
||||
# columns 5-9 = temp,energy.press in reduced units, compare to in.ar.lj
|
||||
# need to include metal unit output to enable use of reduced variables
|
||||
|
||||
thermo_style custom step temp pe press v_temp v_epair v_emol v_etotal v_press
|
||||
thermo_modify norm yes
|
||||
thermo ${nthermo}
|
||||
|
||||
run ${nsteps}
|
||||
98
examples/UNITS/in.ar.real
Normal file
@ -0,0 +1,98 @@
|
||||
# Ar in real units
|
||||
|
||||
# simulation params in reduced units
|
||||
# settable from command line
|
||||
# epsilon, sigma, mass set below
|
||||
|
||||
variable x index 5
|
||||
variable y index 5
|
||||
variable z index 5
|
||||
variable rhostar index 0.8842
|
||||
variable dt index 0.005
|
||||
variable cutoff index 2.5
|
||||
variable skin index 0.3
|
||||
variable tinitial index 1.0
|
||||
variable nthermo index 10
|
||||
variable nsteps index 100
|
||||
|
||||
# physical constants from update.cpp
|
||||
|
||||
variable kb index 0.0019872067 # kB in Kcal/mole/K
|
||||
variable avogadro index 6.02214129e23 # Avogadro's number
|
||||
|
||||
# Ar properties in real units
|
||||
|
||||
variable epskb index 117.7 # LJ epsilon/kB in degrees K
|
||||
variable sigma index 3.504 # LJ sigma in Angstroms
|
||||
variable epsilon equal ${epskb}*${kb} # LJ epsilon in Kcal/mole
|
||||
variable mass index 39.95 # mass in g/mole
|
||||
|
||||
# scale factors
|
||||
|
||||
# sigma = scale factor on distance, converts reduced distance to Angs
|
||||
# epsilon = scale factor on energy, converts reduced energy to Kcal/mole
|
||||
# tmpscale = scale factor on temperature, converts reduced temp to degrees K
|
||||
# tscale = scale factor on time, converts reduced time to fs
|
||||
# formula is t = t* / sqrt(epsilon/mass/sigma^2), but need t in fs
|
||||
# use epsilon (Joule/mole), mass (kg/mole), sigma (meter) to get t in seconds
|
||||
# pscale = scale factor on pressure, converts reduced pressure to atmospheres
|
||||
# formula is P = P* / (sigma^3/epsilon), but need P in atmospheres
|
||||
# use sigma (meter), epsilon (Joule) to get P in nt/meter^2, convert to atms
|
||||
|
||||
variable KcaltoJoule index 4.1868e3 # convert Kcals to Joules
|
||||
variable NtMtoAtm equal 1.0/1.0135e5 # convert Nt/meter^2 to Atmospheres
|
||||
|
||||
variable tmpscale equal ${epskb}
|
||||
variable epsJmole equal ${epsilon}*${KcaltoJoule}
|
||||
variable massKgmole equal ${mass}/1000.0
|
||||
variable sigmaM equal ${sigma}/1.0e10
|
||||
variable sigmaMsq equal ${sigmaM}*${sigmaM}
|
||||
variable tscale equal 1.0e15/sqrt(${epsJmole}/${massKgmole}/${sigmaMsq})
|
||||
variable sigmaM3 equal ${sigmaM}*${sigmaM}*${sigmaM}
|
||||
variable pscale equal ${NtMtoAtm}/(${sigmaM3}/(${epsJmole}/${avogadro}))
|
||||
|
||||
# variables
|
||||
# alat = lattice constant in Angs (at reduced density rhostar)
|
||||
# temp = reduced temperature for output
|
||||
# epair,emol,etotal = reduced epair,emol,etotal energies for output
|
||||
# press = reduced pressure for output
|
||||
|
||||
variable alat equal (4.0*${sigma}*${sigma}*${sigma}/${rhostar})^(1.0/3.0)
|
||||
variable temp equal temp/${tmpscale}
|
||||
variable epair equal epair/${epsilon}
|
||||
variable emol equal emol/${epsilon}
|
||||
variable etotal equal etotal/${epsilon}
|
||||
variable press equal press/${pscale}
|
||||
|
||||
# same script as in.ar.lj
|
||||
|
||||
units real
|
||||
atom_style atomic
|
||||
|
||||
lattice fcc ${alat}
|
||||
region box block 0 $x 0 $y 0 $z
|
||||
create_box 1 box
|
||||
create_atoms 1 box
|
||||
mass 1 ${mass}
|
||||
|
||||
velocity all create $(v_tinitial*v_epskb) 12345
|
||||
|
||||
pair_style lj/cut $(v_cutoff*v_sigma)
|
||||
pair_coeff 1 1 ${epsilon} ${sigma}
|
||||
|
||||
neighbor $(v_skin*v_sigma) bin
|
||||
neigh_modify delay 0 every 20 check no
|
||||
|
||||
fix 1 all nve
|
||||
|
||||
timestep $(v_dt*v_tscale)
|
||||
|
||||
# columns 2,3,4 = temp,pe,press in real units
|
||||
# columns 5-9 = temp,energy.press in reduced units, compare to in.ar.lj
|
||||
# need to include real unit output to enable use of reduced variables
|
||||
|
||||
thermo_style custom step temp pe press v_temp v_epair v_emol v_etotal v_press
|
||||
thermo_modify norm yes
|
||||
thermo ${nthermo}
|
||||
|
||||
run ${nsteps}
|
||||
109
examples/UNITS/log.ar.lj.8Oct19.g++.1
Normal file
@ -0,0 +1,109 @@
|
||||
LAMMPS (19 Sep 2019)
|
||||
# Ar in lj units
|
||||
|
||||
# simulation params in reduced units
|
||||
# settable from command line
|
||||
# epsilon = sigma = mass = 1.0
|
||||
|
||||
variable x index 5
|
||||
variable y index 5
|
||||
variable z index 5
|
||||
variable rhostar index 0.8842
|
||||
variable dt index 0.005
|
||||
variable cutoff index 2.5
|
||||
variable skin index 0.3
|
||||
variable tinitial index 1.0
|
||||
variable nthermo index 10
|
||||
variable nsteps index 100
|
||||
|
||||
# script
|
||||
|
||||
units lj
|
||||
atom_style atomic
|
||||
|
||||
lattice fcc ${rhostar}
|
||||
lattice fcc 0.8842
|
||||
Lattice spacing in x,y,z = 1.65388 1.65388 1.65388
|
||||
region box block 0 $x 0 $y 0 $z
|
||||
region box block 0 5 0 $y 0 $z
|
||||
region box block 0 5 0 5 0 $z
|
||||
region box block 0 5 0 5 0 5
|
||||
create_box 1 box
|
||||
Created orthogonal box = (0 0 0) to (8.26938 8.26938 8.26938)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
create_atoms 1 box
|
||||
Created 500 atoms
|
||||
create_atoms CPU = 0.000547171 secs
|
||||
mass 1 1.0
|
||||
|
||||
velocity all create ${tinitial} 12345
|
||||
velocity all create 1.0 12345
|
||||
|
||||
pair_style lj/cut ${cutoff}
|
||||
pair_style lj/cut 2.5
|
||||
pair_coeff 1 1 1.0 1.0
|
||||
|
||||
neighbor ${skin} bin
|
||||
neighbor 0.3 bin
|
||||
neigh_modify delay 0 every 20 check no
|
||||
|
||||
fix 1 all nve
|
||||
|
||||
timestep ${dt}
|
||||
timestep 0.005
|
||||
|
||||
thermo 10
|
||||
|
||||
run 100
|
||||
Neighbor list info ...
|
||||
update every 20 steps, delay 0 steps, check no
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 2.8
|
||||
ghost atom cutoff = 2.8
|
||||
binsize = 1.4, bins = 6 6 6
|
||||
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||
(1) pair lj/cut, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/atomonly/newton
|
||||
stencil: half/bin/3d/newton
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 2.644 | 2.644 | 2.644 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 1 -7.1026383 0 -5.6056383 -5.1224757
|
||||
10 0.74213042 -6.7245488 0 -5.6135795 -3.1363153
|
||||
20 0.36167746 -6.1681704 0 -5.6267393 -0.40461854
|
||||
30 0.4684512 -6.3315744 0 -5.630303 -1.0390065
|
||||
40 0.46774191 -6.3308002 0 -5.6305906 -1.077533
|
||||
50 0.48323399 -6.3533122 0 -5.6299109 -1.1506287
|
||||
60 0.49569105 -6.3711644 0 -5.6291149 -1.2296104
|
||||
70 0.5208333 -6.4096336 0 -5.6299462 -1.4483636
|
||||
80 0.53708431 -6.4345933 0 -5.6305781 -1.5945708
|
||||
90 0.52618946 -6.4185937 0 -5.6308881 -1.5264055
|
||||
100 0.52862701 -6.4231724 0 -5.6318178 -1.5714077
|
||||
Loop time of 0.065218 on 1 procs for 100 steps with 500 atoms
|
||||
|
||||
Performance: 662394.104 tau/day, 1533.320 timesteps/s
|
||||
99.9% CPU use with 1 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 0.053584 | 0.053584 | 0.053584 | 0.0 | 82.16
|
||||
Neigh | 0.0075939 | 0.0075939 | 0.0075939 | 0.0 | 11.64
|
||||
Comm | 0.0022638 | 0.0022638 | 0.0022638 | 0.0 | 3.47
|
||||
Output | 0.00021172 | 0.00021172 | 0.00021172 | 0.0 | 0.32
|
||||
Modify | 0.0011077 | 0.0011077 | 0.0011077 | 0.0 | 1.70
|
||||
Other | | 0.0004568 | | | 0.70
|
||||
|
||||
Nlocal: 500 ave 500 max 500 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 1946 ave 1946 max 1946 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 19572 ave 19572 max 19572 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 19572
|
||||
Ave neighs/atom = 39.144
|
||||
Neighbor list builds = 5
|
||||
Dangerous builds not checked
|
||||
Total wall time: 0:00:00
|
||||
109
examples/UNITS/log.ar.lj.8Oct19.g++.4
Normal file
@ -0,0 +1,109 @@
|
||||
LAMMPS (19 Sep 2019)
|
||||
# Ar in lj units
|
||||
|
||||
# simulation params in reduced units
|
||||
# settable from command line
|
||||
# epsilon = sigma = mass = 1.0
|
||||
|
||||
variable x index 5
|
||||
variable y index 5
|
||||
variable z index 5
|
||||
variable rhostar index 0.8842
|
||||
variable dt index 0.005
|
||||
variable cutoff index 2.5
|
||||
variable skin index 0.3
|
||||
variable tinitial index 1.0
|
||||
variable nthermo index 10
|
||||
variable nsteps index 100
|
||||
|
||||
# script
|
||||
|
||||
units lj
|
||||
atom_style atomic
|
||||
|
||||
lattice fcc ${rhostar}
|
||||
lattice fcc 0.8842
|
||||
Lattice spacing in x,y,z = 1.65388 1.65388 1.65388
|
||||
region box block 0 $x 0 $y 0 $z
|
||||
region box block 0 5 0 $y 0 $z
|
||||
region box block 0 5 0 5 0 $z
|
||||
region box block 0 5 0 5 0 5
|
||||
create_box 1 box
|
||||
Created orthogonal box = (0 0 0) to (8.26938 8.26938 8.26938)
|
||||
1 by 2 by 2 MPI processor grid
|
||||
create_atoms 1 box
|
||||
Created 500 atoms
|
||||
create_atoms CPU = 0.000570774 secs
|
||||
mass 1 1.0
|
||||
|
||||
velocity all create ${tinitial} 12345
|
||||
velocity all create 1.0 12345
|
||||
|
||||
pair_style lj/cut ${cutoff}
|
||||
pair_style lj/cut 2.5
|
||||
pair_coeff 1 1 1.0 1.0
|
||||
|
||||
neighbor ${skin} bin
|
||||
neighbor 0.3 bin
|
||||
neigh_modify delay 0 every 20 check no
|
||||
|
||||
fix 1 all nve
|
||||
|
||||
timestep ${dt}
|
||||
timestep 0.005
|
||||
|
||||
thermo 10
|
||||
|
||||
run 100
|
||||
Neighbor list info ...
|
||||
update every 20 steps, delay 0 steps, check no
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 2.8
|
||||
ghost atom cutoff = 2.8
|
||||
binsize = 1.4, bins = 6 6 6
|
||||
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||
(1) pair lj/cut, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/atomonly/newton
|
||||
stencil: half/bin/3d/newton
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 2.609 | 2.609 | 2.609 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 1 -7.1026383 0 -5.6056383 -5.1224757
|
||||
10 0.73621446 -6.7154544 0 -5.6133413 -3.089257
|
||||
20 0.35775263 -6.1618707 0 -5.626315 -0.37875949
|
||||
30 0.47139877 -6.3359656 0 -5.6302816 -1.1018761
|
||||
40 0.46337135 -6.3247084 0 -5.6310415 -1.0985336
|
||||
50 0.48738877 -6.360393 0 -5.630772 -1.2274707
|
||||
60 0.50832261 -6.3913892 0 -5.6304302 -1.374293
|
||||
70 0.50988271 -6.3936997 0 -5.6304053 -1.4112286
|
||||
80 0.53931444 -6.4367444 0 -5.6293906 -1.6484686
|
||||
90 0.55277272 -6.4563334 0 -5.6288326 -1.760598
|
||||
100 0.54916776 -6.4507537 0 -5.6286495 -1.728837
|
||||
Loop time of 0.0237499 on 4 procs for 100 steps with 500 atoms
|
||||
|
||||
Performance: 1818955.951 tau/day, 4210.546 timesteps/s
|
||||
97.1% CPU use with 4 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 0.0098808 | 0.011585 | 0.015043 | 1.9 | 48.78
|
||||
Neigh | 0.0015168 | 0.0017335 | 0.001997 | 0.4 | 7.30
|
||||
Comm | 0.005949 | 0.0097297 | 0.011739 | 2.3 | 40.97
|
||||
Output | 0.00019789 | 0.0002324 | 0.00032282 | 0.0 | 0.98
|
||||
Modify | 0.00021482 | 0.00025994 | 0.00031853 | 0.0 | 1.09
|
||||
Other | | 0.0002095 | | | 0.88
|
||||
|
||||
Nlocal: 125 ave 133 max 117 min
|
||||
Histogram: 1 0 0 1 0 0 1 0 0 1
|
||||
Nghost: 1099 ave 1107 max 1091 min
|
||||
Histogram: 1 0 0 1 0 0 1 0 0 1
|
||||
Neighs: 4909 ave 5493 max 4644 min
|
||||
Histogram: 1 2 0 0 0 0 0 0 0 1
|
||||
|
||||
Total # of neighbors = 19636
|
||||
Ave neighs/atom = 39.272
|
||||
Neighbor list builds = 5
|
||||
Dangerous builds not checked
|
||||
Total wall time: 0:00:00
|
||||
197
examples/UNITS/log.ar.metal.8Oct19.g++.1
Normal file
@ -0,0 +1,197 @@
|
||||
LAMMPS (19 Sep 2019)
|
||||
# Ar in metal units
|
||||
|
||||
# simulation params in reduced units
|
||||
# settable from command line
|
||||
# epsilon, sigma, mass set below
|
||||
|
||||
variable x index 5
|
||||
variable y index 5
|
||||
variable z index 5
|
||||
variable rhostar index 0.8842
|
||||
variable dt index 0.005
|
||||
variable cutoff index 2.5
|
||||
variable skin index 0.3
|
||||
variable tinitial index 1.0
|
||||
variable nthermo index 10
|
||||
variable nsteps index 100
|
||||
|
||||
# physical constants from update.cpp
|
||||
|
||||
variable kb index 8.617343e-5 # kB in eV/K
|
||||
variable avogadro index 6.02214129e23 # Avogadro's number
|
||||
|
||||
# Ar properties in metal units
|
||||
|
||||
variable epskb index 117.7 # LJ epsilon/kB in degrees K
|
||||
variable sigma index 3.504 # LJ sigma in Angstroms
|
||||
variable epsilon equal ${epskb}*${kb} # LJ epsilon in eV
|
||||
variable epsilon equal 117.7*${kb}
|
||||
variable epsilon equal 117.7*8.617343e-5
|
||||
variable mass index 39.95 # mass in g/mole
|
||||
|
||||
# scale factors
|
||||
|
||||
# sigma = scale factor on distance, converts reduced distance to Angs
|
||||
# epsilon = scale factor on energy, converts reduced energy to eV
|
||||
# tmpscale = scale factor on temperature, converts reduced temp to degrees K
|
||||
# tscale = scale factor on time, converts reduced time to ps
|
||||
# formula is t = t* / sqrt(epsilon/mass/sigma^2), but need t in fs
|
||||
# use epsilon (Joule), mass (kg/atom), sigma (meter) to get t in seconds
|
||||
# pscale = scale factor on pressure, converts reduced pressure to bars
|
||||
# formula is P = P* / (sigma^3/epsilon), but need P in atmospheres
|
||||
# use sigma (meter), epsilon (Joule) to get P in nt/meter^2, convert to bars
|
||||
|
||||
variable eVtoJoule index 1.602e-19 # convert eV to Joules
|
||||
variable NtMtoAtm equal 1.0e-5 # convert Nt/meter^2 to bars
|
||||
|
||||
variable tmpscale equal ${epskb}
|
||||
variable tmpscale equal 117.7
|
||||
variable epsilonJ equal ${epsilon}*${eVtoJoule}
|
||||
variable epsilonJ equal 0.010142612711*${eVtoJoule}
|
||||
variable epsilonJ equal 0.010142612711*1.602e-19
|
||||
variable massKgAtom equal ${mass}/1000.0/${avogadro}
|
||||
variable massKgAtom equal 39.95/1000.0/${avogadro}
|
||||
variable massKgAtom equal 39.95/1000.0/6.02214129e23
|
||||
variable sigmaM equal ${sigma}/1.0e10
|
||||
variable sigmaM equal 3.504/1.0e10
|
||||
variable sigmaMsq equal ${sigmaM}*${sigmaM}
|
||||
variable sigmaMsq equal 3.504e-10*${sigmaM}
|
||||
variable sigmaMsq equal 3.504e-10*3.504e-10
|
||||
variable tscale equal 1.0e12/sqrt(${epsilonJ}/${massKgAtom}/${sigmaMsq})
|
||||
variable tscale equal 1.0e12/sqrt(1.6248465563022e-21/${massKgAtom}/${sigmaMsq})
|
||||
variable tscale equal 1.0e12/sqrt(1.6248465563022e-21/6.6338529895236e-26/${sigmaMsq})
|
||||
variable tscale equal 1.0e12/sqrt(1.6248465563022e-21/6.6338529895236e-26/1.2278016e-19)
|
||||
variable sigmaM3 equal ${sigmaM}*${sigmaM}*${sigmaM}
|
||||
variable sigmaM3 equal 3.504e-10*${sigmaM}*${sigmaM}
|
||||
variable sigmaM3 equal 3.504e-10*3.504e-10*${sigmaM}
|
||||
variable sigmaM3 equal 3.504e-10*3.504e-10*3.504e-10
|
||||
variable pscale equal ${NtMtoAtm}/(${sigmaM3}/(${epsilonJ}))
|
||||
variable pscale equal 1e-05/(${sigmaM3}/(${epsilonJ}))
|
||||
variable pscale equal 1e-05/(4.3022168064e-29/(${epsilonJ}))
|
||||
variable pscale equal 1e-05/(4.3022168064e-29/(1.6248465563022e-21))
|
||||
|
||||
# variables
|
||||
# alat = lattice constant in Angs (at reduced density rhostar)
|
||||
# temp = reduced temperature for output
|
||||
# epair,emol,etotal = reduced epair,emol,etotal energies for output
|
||||
# press = reduced pressure for output
|
||||
|
||||
variable alat equal (4.0*${sigma}*${sigma}*${sigma}/${rhostar})^(1.0/3.0)
|
||||
variable alat equal (4.0*3.504*${sigma}*${sigma}/${rhostar})^(1.0/3.0)
|
||||
variable alat equal (4.0*3.504*3.504*${sigma}/${rhostar})^(1.0/3.0)
|
||||
variable alat equal (4.0*3.504*3.504*3.504/${rhostar})^(1.0/3.0)
|
||||
variable alat equal (4.0*3.504*3.504*3.504/0.8842)^(1.0/3.0)
|
||||
variable temp equal temp/${tmpscale}
|
||||
variable temp equal temp/117.7
|
||||
variable epair equal epair/${epsilon}
|
||||
variable epair equal epair/0.010142612711
|
||||
variable emol equal emol/${epsilon}
|
||||
variable emol equal emol/0.010142612711
|
||||
variable etotal equal etotal/${epsilon}
|
||||
variable etotal equal etotal/0.010142612711
|
||||
variable press equal press/${pscale}
|
||||
variable press equal press/377.676586146256
|
||||
|
||||
# same script as in.ar.lj
|
||||
|
||||
units metal
|
||||
atom_style atomic
|
||||
|
||||
lattice fcc ${alat}
|
||||
lattice fcc 5.79518437579763
|
||||
Lattice spacing in x,y,z = 5.79518 5.79518 5.79518
|
||||
region box block 0 $x 0 $y 0 $z
|
||||
region box block 0 5 0 $y 0 $z
|
||||
region box block 0 5 0 5 0 $z
|
||||
region box block 0 5 0 5 0 5
|
||||
create_box 1 box
|
||||
Created orthogonal box = (0 0 0) to (28.9759 28.9759 28.9759)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
create_atoms 1 box
|
||||
Created 500 atoms
|
||||
create_atoms CPU = 0.000549078 secs
|
||||
mass 1 ${mass}
|
||||
mass 1 39.95
|
||||
|
||||
velocity all create $(v_tinitial*v_epskb) 12345
|
||||
velocity all create 117.70000000000000284 12345
|
||||
|
||||
pair_style lj/cut $(v_cutoff*v_sigma)
|
||||
pair_style lj/cut 8.7599999999999997868
|
||||
pair_coeff 1 1 ${epsilon} ${sigma}
|
||||
pair_coeff 1 1 0.010142612711 ${sigma}
|
||||
pair_coeff 1 1 0.010142612711 3.504
|
||||
|
||||
neighbor $(v_skin*v_sigma) bin
|
||||
neighbor 1.0511999999999999122 bin
|
||||
neigh_modify delay 0 every 20 check no
|
||||
|
||||
fix 1 all nve
|
||||
|
||||
timestep $(v_dt*v_tscale)
|
||||
timestep 0.011194658410003900315
|
||||
|
||||
# columns 2,3,4 = temp,pe,press in metal units
|
||||
# columns 5-9 = temp,energy.press in reduced units, compare to in.ar.lj
|
||||
# need to include metal unit output to enable use of reduced variables
|
||||
|
||||
thermo_style custom step temp pe press v_temp v_epair v_emol v_etotal v_press
|
||||
thermo_modify norm yes
|
||||
thermo ${nthermo}
|
||||
thermo 10
|
||||
|
||||
run ${nsteps}
|
||||
run 100
|
||||
Neighbor list info ...
|
||||
update every 20 steps, delay 0 steps, check no
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 9.8112
|
||||
ghost atom cutoff = 9.8112
|
||||
binsize = 4.9056, bins = 6 6 6
|
||||
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||
(1) pair lj/cut, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/atomonly/newton
|
||||
stencil: half/bin/3d/newton
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 2.644 | 2.644 | 2.644 Mbytes
|
||||
Step Temp PotEng Press v_temp v_epair v_emol v_etotal v_press
|
||||
0 117.7 -0.07203931 -1934.8523 1 -7.1026383 0 -5.6056383 -5.12304
|
||||
10 87.345225 -0.06820404 -1184.5618 0.74210047 -6.724504 0 -5.6135796 -3.1364449
|
||||
20 42.569809 -0.062561408 -152.82812 0.36168062 -6.1681748 0 -5.6267389 -0.40465341
|
||||
30 55.137637 -0.064219154 -392.49645 0.46845911 -6.3316185 0 -5.6303352 -1.0392396
|
||||
40 55.053014 -0.064210828 -406.99941 0.46774014 -6.3307976 0 -5.6305906 -1.07764
|
||||
50 56.87723 -0.064439241 -434.61958 0.483239 -6.3533177 0 -5.6299089 -1.1507718
|
||||
60 58.344019 -0.064620383 -464.4684 0.4957011 -6.3711772 0 -5.6291126 -1.2298046
|
||||
70 61.30301 -0.065010529 -547.09852 0.5208412 -6.4096433 0 -5.629944 -1.44859
|
||||
80 63.214836 -0.065263563 -602.29599 0.53708442 -6.4345909 0 -5.6305755 -1.5947401
|
||||
90 61.931826 -0.065101194 -576.5342 0.52618374 -6.4185823 0 -5.6308852 -1.5265288
|
||||
100 62.221816 -0.065148028 -593.59878 0.52864755 -6.4231998 0 -5.6318144 -1.5717119
|
||||
Loop time of 0.04864 on 1 procs for 100 steps with 500 atoms
|
||||
|
||||
Performance: 1988.524 ns/day, 0.012 hours/ns, 2055.921 timesteps/s
|
||||
99.8% CPU use with 1 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 0.039802 | 0.039802 | 0.039802 | 0.0 | 81.83
|
||||
Neigh | 0.0057771 | 0.0057771 | 0.0057771 | 0.0 | 11.88
|
||||
Comm | 0.0015905 | 0.0015905 | 0.0015905 | 0.0 | 3.27
|
||||
Output | 0.00033736 | 0.00033736 | 0.00033736 | 0.0 | 0.69
|
||||
Modify | 0.00077343 | 0.00077343 | 0.00077343 | 0.0 | 1.59
|
||||
Other | | 0.0003595 | | | 0.74
|
||||
|
||||
Nlocal: 500 ave 500 max 500 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 1946 ave 1946 max 1946 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 19572 ave 19572 max 19572 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 19572
|
||||
Ave neighs/atom = 39.144
|
||||
Neighbor list builds = 5
|
||||
Dangerous builds not checked
|
||||
Total wall time: 0:00:00
|
||||
197
examples/UNITS/log.ar.metal.8Oct19.g++.4
Normal file
@ -0,0 +1,197 @@
|
||||
LAMMPS (19 Sep 2019)
|
||||
# Ar in metal units
|
||||
|
||||
# simulation params in reduced units
|
||||
# settable from command line
|
||||
# epsilon, sigma, mass set below
|
||||
|
||||
variable x index 5
|
||||
variable y index 5
|
||||
variable z index 5
|
||||
variable rhostar index 0.8842
|
||||
variable dt index 0.005
|
||||
variable cutoff index 2.5
|
||||
variable skin index 0.3
|
||||
variable tinitial index 1.0
|
||||
variable nthermo index 10
|
||||
variable nsteps index 100
|
||||
|
||||
# physical constants from update.cpp
|
||||
|
||||
variable kb index 8.617343e-5 # kB in eV/K
|
||||
variable avogadro index 6.02214129e23 # Avogadro's number
|
||||
|
||||
# Ar properties in metal units
|
||||
|
||||
variable epskb index 117.7 # LJ epsilon/kB in degrees K
|
||||
variable sigma index 3.504 # LJ sigma in Angstroms
|
||||
variable epsilon equal ${epskb}*${kb} # LJ epsilon in eV
|
||||
variable epsilon equal 117.7*${kb}
|
||||
variable epsilon equal 117.7*8.617343e-5
|
||||
variable mass index 39.95 # mass in g/mole
|
||||
|
||||
# scale factors
|
||||
|
||||
# sigma = scale factor on distance, converts reduced distance to Angs
|
||||
# epsilon = scale factor on energy, converts reduced energy to eV
|
||||
# tmpscale = scale factor on temperature, converts reduced temp to degrees K
|
||||
# tscale = scale factor on time, converts reduced time to ps
|
||||
# formula is t = t* / sqrt(epsilon/mass/sigma^2), but need t in fs
|
||||
# use epsilon (Joule), mass (kg/atom), sigma (meter) to get t in seconds
|
||||
# pscale = scale factor on pressure, converts reduced pressure to bars
|
||||
# formula is P = P* / (sigma^3/epsilon), but need P in atmospheres
|
||||
# use sigma (meter), epsilon (Joule) to get P in nt/meter^2, convert to bars
|
||||
|
||||
variable eVtoJoule index 1.602e-19 # convert eV to Joules
|
||||
variable NtMtoAtm equal 1.0e-5 # convert Nt/meter^2 to bars
|
||||
|
||||
variable tmpscale equal ${epskb}
|
||||
variable tmpscale equal 117.7
|
||||
variable epsilonJ equal ${epsilon}*${eVtoJoule}
|
||||
variable epsilonJ equal 0.010142612711*${eVtoJoule}
|
||||
variable epsilonJ equal 0.010142612711*1.602e-19
|
||||
variable massKgAtom equal ${mass}/1000.0/${avogadro}
|
||||
variable massKgAtom equal 39.95/1000.0/${avogadro}
|
||||
variable massKgAtom equal 39.95/1000.0/6.02214129e23
|
||||
variable sigmaM equal ${sigma}/1.0e10
|
||||
variable sigmaM equal 3.504/1.0e10
|
||||
variable sigmaMsq equal ${sigmaM}*${sigmaM}
|
||||
variable sigmaMsq equal 3.504e-10*${sigmaM}
|
||||
variable sigmaMsq equal 3.504e-10*3.504e-10
|
||||
variable tscale equal 1.0e12/sqrt(${epsilonJ}/${massKgAtom}/${sigmaMsq})
|
||||
variable tscale equal 1.0e12/sqrt(1.6248465563022e-21/${massKgAtom}/${sigmaMsq})
|
||||
variable tscale equal 1.0e12/sqrt(1.6248465563022e-21/6.6338529895236e-26/${sigmaMsq})
|
||||
variable tscale equal 1.0e12/sqrt(1.6248465563022e-21/6.6338529895236e-26/1.2278016e-19)
|
||||
variable sigmaM3 equal ${sigmaM}*${sigmaM}*${sigmaM}
|
||||
variable sigmaM3 equal 3.504e-10*${sigmaM}*${sigmaM}
|
||||
variable sigmaM3 equal 3.504e-10*3.504e-10*${sigmaM}
|
||||
variable sigmaM3 equal 3.504e-10*3.504e-10*3.504e-10
|
||||
variable pscale equal ${NtMtoAtm}/(${sigmaM3}/(${epsilonJ}))
|
||||
variable pscale equal 1e-05/(${sigmaM3}/(${epsilonJ}))
|
||||
variable pscale equal 1e-05/(4.3022168064e-29/(${epsilonJ}))
|
||||
variable pscale equal 1e-05/(4.3022168064e-29/(1.6248465563022e-21))
|
||||
|
||||
# variables
|
||||
# alat = lattice constant in Angs (at reduced density rhostar)
|
||||
# temp = reduced temperature for output
|
||||
# epair,emol,etotal = reduced epair,emol,etotal energies for output
|
||||
# press = reduced pressure for output
|
||||
|
||||
variable alat equal (4.0*${sigma}*${sigma}*${sigma}/${rhostar})^(1.0/3.0)
|
||||
variable alat equal (4.0*3.504*${sigma}*${sigma}/${rhostar})^(1.0/3.0)
|
||||
variable alat equal (4.0*3.504*3.504*${sigma}/${rhostar})^(1.0/3.0)
|
||||
variable alat equal (4.0*3.504*3.504*3.504/${rhostar})^(1.0/3.0)
|
||||
variable alat equal (4.0*3.504*3.504*3.504/0.8842)^(1.0/3.0)
|
||||
variable temp equal temp/${tmpscale}
|
||||
variable temp equal temp/117.7
|
||||
variable epair equal epair/${epsilon}
|
||||
variable epair equal epair/0.010142612711
|
||||
variable emol equal emol/${epsilon}
|
||||
variable emol equal emol/0.010142612711
|
||||
variable etotal equal etotal/${epsilon}
|
||||
variable etotal equal etotal/0.010142612711
|
||||
variable press equal press/${pscale}
|
||||
variable press equal press/377.676586146256
|
||||
|
||||
# same script as in.ar.lj
|
||||
|
||||
units metal
|
||||
atom_style atomic
|
||||
|
||||
lattice fcc ${alat}
|
||||
lattice fcc 5.79518437579763
|
||||
Lattice spacing in x,y,z = 5.79518 5.79518 5.79518
|
||||
region box block 0 $x 0 $y 0 $z
|
||||
region box block 0 5 0 $y 0 $z
|
||||
region box block 0 5 0 5 0 $z
|
||||
region box block 0 5 0 5 0 5
|
||||
create_box 1 box
|
||||
Created orthogonal box = (0 0 0) to (28.9759 28.9759 28.9759)
|
||||
1 by 2 by 2 MPI processor grid
|
||||
create_atoms 1 box
|
||||
Created 500 atoms
|
||||
create_atoms CPU = 0.000674009 secs
|
||||
mass 1 ${mass}
|
||||
mass 1 39.95
|
||||
|
||||
velocity all create $(v_tinitial*v_epskb) 12345
|
||||
velocity all create 117.70000000000000284 12345
|
||||
|
||||
pair_style lj/cut $(v_cutoff*v_sigma)
|
||||
pair_style lj/cut 8.7599999999999997868
|
||||
pair_coeff 1 1 ${epsilon} ${sigma}
|
||||
pair_coeff 1 1 0.010142612711 ${sigma}
|
||||
pair_coeff 1 1 0.010142612711 3.504
|
||||
|
||||
neighbor $(v_skin*v_sigma) bin
|
||||
neighbor 1.0511999999999999122 bin
|
||||
neigh_modify delay 0 every 20 check no
|
||||
|
||||
fix 1 all nve
|
||||
|
||||
timestep $(v_dt*v_tscale)
|
||||
timestep 0.011194658410003900315
|
||||
|
||||
# columns 2,3,4 = temp,pe,press in metal units
|
||||
# columns 5-9 = temp,energy.press in reduced units, compare to in.ar.lj
|
||||
# need to include metal unit output to enable use of reduced variables
|
||||
|
||||
thermo_style custom step temp pe press v_temp v_epair v_emol v_etotal v_press
|
||||
thermo_modify norm yes
|
||||
thermo ${nthermo}
|
||||
thermo 10
|
||||
|
||||
run ${nsteps}
|
||||
run 100
|
||||
Neighbor list info ...
|
||||
update every 20 steps, delay 0 steps, check no
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 9.8112
|
||||
ghost atom cutoff = 9.8112
|
||||
binsize = 4.9056, bins = 6 6 6
|
||||
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||
(1) pair lj/cut, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/atomonly/newton
|
||||
stencil: half/bin/3d/newton
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 2.609 | 2.609 | 2.609 Mbytes
|
||||
Step Temp PotEng Press v_temp v_epair v_emol v_etotal v_press
|
||||
0 117.7 -0.07203931 -1934.8523 1 -7.1026383 0 -5.6056383 -5.12304
|
||||
10 86.648851 -0.06811179 -1166.7855 0.73618395 -6.7154088 0 -5.6133414 -3.0893774
|
||||
20 42.107954 -0.062497536 -143.06615 0.35775662 -6.1618774 0 -5.6263157 -0.37880598
|
||||
30 55.484504 -0.064263032 -416.20245 0.47140615 -6.3359445 0 -5.6302495 -1.1020075
|
||||
40 54.538222 -0.064148334 -414.88071 0.46336637 -6.3246361 0 -5.6309766 -1.0985079
|
||||
50 57.367693 -0.064511259 -463.67683 0.48740606 -6.3604182 0 -5.6307714 -1.2277087
|
||||
60 59.828794 -0.064824938 -519.05997 0.50831601 -6.3913451 0 -5.630396 -1.3743504
|
||||
70 60.014616 -0.064848979 -533.07604 0.50989478 -6.3937154 0 -5.6304029 -1.4114617
|
||||
80 63.47861 -0.065285885 -622.71073 0.53932549 -6.4367917 0 -5.6294215 -1.6487936
|
||||
90 65.060881 -0.065484011 -664.99883 0.55276874 -6.4563257 0 -5.6288309 -1.7607627
|
||||
100 64.637033 -0.065427467 -653.00765 0.54916765 -6.4507508 0 -5.6286468 -1.7290128
|
||||
Loop time of 0.0258265 on 4 procs for 100 steps with 500 atoms
|
||||
|
||||
Performance: 3745.060 ns/day, 0.006 hours/ns, 3871.990 timesteps/s
|
||||
99.6% CPU use with 4 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 0.0090213 | 0.012419 | 0.015494 | 2.1 | 48.09
|
||||
Neigh | 0.0013709 | 0.0018765 | 0.0022483 | 0.7 | 7.27
|
||||
Comm | 0.0071132 | 0.010597 | 0.014538 | 2.6 | 41.03
|
||||
Output | 0.00039983 | 0.00042897 | 0.00049567 | 0.0 | 1.66
|
||||
Modify | 0.00024104 | 0.00028801 | 0.00031543 | 0.0 | 1.12
|
||||
Other | | 0.0002173 | | | 0.84
|
||||
|
||||
Nlocal: 125 ave 133 max 117 min
|
||||
Histogram: 1 0 0 1 0 0 1 0 0 1
|
||||
Nghost: 1099 ave 1107 max 1091 min
|
||||
Histogram: 1 0 0 1 0 0 1 0 0 1
|
||||
Neighs: 4908.75 ave 5492 max 4644 min
|
||||
Histogram: 1 2 0 0 0 0 0 0 0 1
|
||||
|
||||
Total # of neighbors = 19635
|
||||
Ave neighs/atom = 39.27
|
||||
Neighbor list builds = 5
|
||||
Dangerous builds not checked
|
||||
Total wall time: 0:00:00
|
||||
197
examples/UNITS/log.ar.real.8Oct19.g++.1
Normal file
@ -0,0 +1,197 @@
|
||||
LAMMPS (19 Sep 2019)
|
||||
# Ar in real units
|
||||
|
||||
# simulation params in reduced units
|
||||
# settable from command line
|
||||
# epsilon, sigma, mass set below
|
||||
|
||||
variable x index 5
|
||||
variable y index 5
|
||||
variable z index 5
|
||||
variable rhostar index 0.8842
|
||||
variable dt index 0.005
|
||||
variable cutoff index 2.5
|
||||
variable skin index 0.3
|
||||
variable tinitial index 1.0
|
||||
variable nthermo index 10
|
||||
variable nsteps index 100
|
||||
|
||||
# physical constants from update.cpp
|
||||
|
||||
variable kb index 0.0019872067 # kB in Kcal/mole/K
|
||||
variable avogadro index 6.02214129e23 # Avogadro's number
|
||||
|
||||
# Ar properties in real units
|
||||
|
||||
variable epskb index 117.7 # LJ epsilon/kB in degrees K
|
||||
variable sigma index 3.504 # LJ sigma in Angstroms
|
||||
variable epsilon equal ${epskb}*${kb} # LJ epsilon in Kcal/mole
|
||||
variable epsilon equal 117.7*${kb}
|
||||
variable epsilon equal 117.7*0.0019872067
|
||||
variable mass index 39.95 # mass in g/mole
|
||||
|
||||
# scale factors
|
||||
|
||||
# sigma = scale factor on distance, converts reduced distance to Angs
|
||||
# epsilon = scale factor on energy, converts reduced energy to Kcal/mole
|
||||
# tmpscale = scale factor on temperature, converts reduced temp to degrees K
|
||||
# tscale = scale factor on time, converts reduced time to fs
|
||||
# formula is t = t* / sqrt(epsilon/mass/sigma^2), but need t in fs
|
||||
# use epsilon (Joule/mole), mass (kg/mole), sigma (meter) to get t in seconds
|
||||
# pscale = scale factor on pressure, converts reduced pressure to atmospheres
|
||||
# formula is P = P* / (sigma^3/epsilon), but need P in atmospheres
|
||||
# use sigma (meter), epsilon (Joule) to get P in nt/meter^2, convert to atms
|
||||
|
||||
variable KcaltoJoule index 4.1868e3 # convert Kcals to Joules
|
||||
variable NtMtoAtm equal 1.0/1.0135e5 # convert Nt/meter^2 to Atmospheres
|
||||
|
||||
variable tmpscale equal ${epskb}
|
||||
variable tmpscale equal 117.7
|
||||
variable epsJmole equal ${epsilon}*${KcaltoJoule}
|
||||
variable epsJmole equal 0.23389422859*${KcaltoJoule}
|
||||
variable epsJmole equal 0.23389422859*4.1868e3
|
||||
variable massKgmole equal ${mass}/1000.0
|
||||
variable massKgmole equal 39.95/1000.0
|
||||
variable sigmaM equal ${sigma}/1.0e10
|
||||
variable sigmaM equal 3.504/1.0e10
|
||||
variable sigmaMsq equal ${sigmaM}*${sigmaM}
|
||||
variable sigmaMsq equal 3.504e-10*${sigmaM}
|
||||
variable sigmaMsq equal 3.504e-10*3.504e-10
|
||||
variable tscale equal 1.0e15/sqrt(${epsJmole}/${massKgmole}/${sigmaMsq})
|
||||
variable tscale equal 1.0e15/sqrt(979.268356260612/${massKgmole}/${sigmaMsq})
|
||||
variable tscale equal 1.0e15/sqrt(979.268356260612/0.03995/${sigmaMsq})
|
||||
variable tscale equal 1.0e15/sqrt(979.268356260612/0.03995/1.2278016e-19)
|
||||
variable sigmaM3 equal ${sigmaM}*${sigmaM}*${sigmaM}
|
||||
variable sigmaM3 equal 3.504e-10*${sigmaM}*${sigmaM}
|
||||
variable sigmaM3 equal 3.504e-10*3.504e-10*${sigmaM}
|
||||
variable sigmaM3 equal 3.504e-10*3.504e-10*3.504e-10
|
||||
variable pscale equal ${NtMtoAtm}/(${sigmaM3}/(${epsJmole}/${avogadro}))
|
||||
variable pscale equal 9.86679822397632e-06/(${sigmaM3}/(${epsJmole}/${avogadro}))
|
||||
variable pscale equal 9.86679822397632e-06/(4.3022168064e-29/(${epsJmole}/${avogadro}))
|
||||
variable pscale equal 9.86679822397632e-06/(4.3022168064e-29/(979.268356260612/${avogadro}))
|
||||
variable pscale equal 9.86679822397632e-06/(4.3022168064e-29/(979.268356260612/6.02214129e23))
|
||||
|
||||
# variables
|
||||
# alat = lattice constant in Angs (at reduced density rhostar)
|
||||
# temp = reduced temperature for output
|
||||
# epair,emol,etotal = reduced epair,emol,etotal energies for output
|
||||
# press = reduced pressure for output
|
||||
|
||||
variable alat equal (4.0*${sigma}*${sigma}*${sigma}/${rhostar})^(1.0/3.0)
|
||||
variable alat equal (4.0*3.504*${sigma}*${sigma}/${rhostar})^(1.0/3.0)
|
||||
variable alat equal (4.0*3.504*3.504*${sigma}/${rhostar})^(1.0/3.0)
|
||||
variable alat equal (4.0*3.504*3.504*3.504/${rhostar})^(1.0/3.0)
|
||||
variable alat equal (4.0*3.504*3.504*3.504/0.8842)^(1.0/3.0)
|
||||
variable temp equal temp/${tmpscale}
|
||||
variable temp equal temp/117.7
|
||||
variable epair equal epair/${epsilon}
|
||||
variable epair equal epair/0.23389422859
|
||||
variable emol equal emol/${epsilon}
|
||||
variable emol equal emol/0.23389422859
|
||||
variable etotal equal etotal/${epsilon}
|
||||
variable etotal equal etotal/0.23389422859
|
||||
variable press equal press/${pscale}
|
||||
variable press equal press/372.936366301003
|
||||
|
||||
# same script as in.ar.lj
|
||||
|
||||
units real
|
||||
atom_style atomic
|
||||
|
||||
lattice fcc ${alat}
|
||||
lattice fcc 5.79518437579763
|
||||
Lattice spacing in x,y,z = 5.79518 5.79518 5.79518
|
||||
region box block 0 $x 0 $y 0 $z
|
||||
region box block 0 5 0 $y 0 $z
|
||||
region box block 0 5 0 5 0 $z
|
||||
region box block 0 5 0 5 0 5
|
||||
create_box 1 box
|
||||
Created orthogonal box = (0 0 0) to (28.9759 28.9759 28.9759)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
create_atoms 1 box
|
||||
Created 500 atoms
|
||||
create_atoms CPU = 0.000550985 secs
|
||||
mass 1 ${mass}
|
||||
mass 1 39.95
|
||||
|
||||
velocity all create $(v_tinitial*v_epskb) 12345
|
||||
velocity all create 117.70000000000000284 12345
|
||||
|
||||
pair_style lj/cut $(v_cutoff*v_sigma)
|
||||
pair_style lj/cut 8.7599999999999997868
|
||||
pair_coeff 1 1 ${epsilon} ${sigma}
|
||||
pair_coeff 1 1 0.23389422859 ${sigma}
|
||||
pair_coeff 1 1 0.23389422859 3.504
|
||||
|
||||
neighbor $(v_skin*v_sigma) bin
|
||||
neighbor 1.0511999999999999122 bin
|
||||
neigh_modify delay 0 every 20 check no
|
||||
|
||||
fix 1 all nve
|
||||
|
||||
timestep $(v_dt*v_tscale)
|
||||
timestep 11.190297512378050371
|
||||
|
||||
# columns 2,3,4 = temp,pe,press in real units
|
||||
# columns 5-9 = temp,energy.press in reduced units, compare to in.ar.lj
|
||||
# need to include real unit output to enable use of reduced variables
|
||||
|
||||
thermo_style custom step temp pe press v_temp v_epair v_emol v_etotal v_press
|
||||
thermo_modify norm yes
|
||||
thermo ${nthermo}
|
||||
thermo 10
|
||||
|
||||
run ${nsteps}
|
||||
run 100
|
||||
Neighbor list info ...
|
||||
update every 20 steps, delay 0 steps, check no
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 9.8112
|
||||
ghost atom cutoff = 9.8112
|
||||
binsize = 4.9056, bins = 6 6 6
|
||||
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||
(1) pair lj/cut, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/atomonly/newton
|
||||
stencil: half/bin/3d/newton
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 2.644 | 2.644 | 2.644 Mbytes
|
||||
Step Temp PotEng Press v_temp v_epair v_emol v_etotal v_press
|
||||
0 117.7 -1.6612661 -1909.5509 1 -7.1026383 0 -5.6056383 -5.1203128
|
||||
10 87.369977 -1.5728967 -1169.6414 0.74231077 -6.7248204 0 -5.6135812 -3.1363029
|
||||
20 42.567295 -1.4427006 -150.87379 0.36165926 -6.1681752 0 -5.6267713 -0.40455638
|
||||
30 55.130978 -1.480902 -387.17817 0.46840253 -6.3315028 0 -5.6303042 -1.0381883
|
||||
40 55.054202 -1.4807485 -401.72653 0.46775023 -6.3308469 0 -5.6306248 -1.0771986
|
||||
50 56.873955 -1.4860029 -428.9126 0.48321117 -6.3533113 0 -5.6299442 -1.1500959
|
||||
60 58.33701 -1.490161 -458.23636 0.49564154 -6.3710892 0 -5.6291138 -1.2287253
|
||||
70 61.29671 -1.4991528 -539.72484 0.52078768 -6.4095331 0 -5.629914 -1.4472304
|
||||
80 63.214984 -1.504992 -594.34987 0.53708567 -6.4344983 0 -5.630481 -1.5937032
|
||||
90 61.936907 -1.5013008 -569.13985 0.5262269 -6.4187169 0 -5.6309552 -1.5261045
|
||||
100 62.20662 -1.5023046 -585.49121 0.52851844 -6.4230083 0 -5.6318162 -1.5699494
|
||||
Loop time of 0.047307 on 1 procs for 100 steps with 500 atoms
|
||||
|
||||
Performance: 2043.760 ns/day, 0.012 hours/ns, 2113.851 timesteps/s
|
||||
98.0% CPU use with 1 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 0.038646 | 0.038646 | 0.038646 | 0.0 | 81.69
|
||||
Neigh | 0.0056832 | 0.0056832 | 0.0056832 | 0.0 | 12.01
|
||||
Comm | 0.0015347 | 0.0015347 | 0.0015347 | 0.0 | 3.24
|
||||
Output | 0.0003581 | 0.0003581 | 0.0003581 | 0.0 | 0.76
|
||||
Modify | 0.00075364 | 0.00075364 | 0.00075364 | 0.0 | 1.59
|
||||
Other | | 0.0003314 | | | 0.70
|
||||
|
||||
Nlocal: 500 ave 500 max 500 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 1946 ave 1946 max 1946 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 19572 ave 19572 max 19572 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 19572
|
||||
Ave neighs/atom = 39.144
|
||||
Neighbor list builds = 5
|
||||
Dangerous builds not checked
|
||||
Total wall time: 0:00:00
|
||||
197
examples/UNITS/log.ar.real.8Oct19.g++.4
Normal file
@ -0,0 +1,197 @@
|
||||
LAMMPS (19 Sep 2019)
|
||||
# Ar in real units
|
||||
|
||||
# simulation params in reduced units
|
||||
# settable from command line
|
||||
# epsilon, sigma, mass set below
|
||||
|
||||
variable x index 5
|
||||
variable y index 5
|
||||
variable z index 5
|
||||
variable rhostar index 0.8842
|
||||
variable dt index 0.005
|
||||
variable cutoff index 2.5
|
||||
variable skin index 0.3
|
||||
variable tinitial index 1.0
|
||||
variable nthermo index 10
|
||||
variable nsteps index 100
|
||||
|
||||
# physical constants from update.cpp
|
||||
|
||||
variable kb index 0.0019872067 # kB in Kcal/mole/K
|
||||
variable avogadro index 6.02214129e23 # Avogadro's number
|
||||
|
||||
# Ar properties in real units
|
||||
|
||||
variable epskb index 117.7 # LJ epsilon/kB in degrees K
|
||||
variable sigma index 3.504 # LJ sigma in Angstroms
|
||||
variable epsilon equal ${epskb}*${kb} # LJ epsilon in Kcal/mole
|
||||
variable epsilon equal 117.7*${kb}
|
||||
variable epsilon equal 117.7*0.0019872067
|
||||
variable mass index 39.95 # mass in g/mole
|
||||
|
||||
# scale factors
|
||||
|
||||
# sigma = scale factor on distance, converts reduced distance to Angs
|
||||
# epsilon = scale factor on energy, converts reduced energy to Kcal/mole
|
||||
# tmpscale = scale factor on temperature, converts reduced temp to degrees K
|
||||
# tscale = scale factor on time, converts reduced time to fs
|
||||
# formula is t = t* / sqrt(epsilon/mass/sigma^2), but need t in fs
|
||||
# use epsilon (Joule/mole), mass (kg/mole), sigma (meter) to get t in seconds
|
||||
# pscale = scale factor on pressure, converts reduced pressure to atmospheres
|
||||
# formula is P = P* / (sigma^3/epsilon), but need P in atmospheres
|
||||
# use sigma (meter), epsilon (Joule) to get P in nt/meter^2, convert to atms
|
||||
|
||||
variable KcaltoJoule index 4.1868e3 # convert Kcals to Joules
|
||||
variable NtMtoAtm equal 1.0/1.0135e5 # convert Nt/meter^2 to Atmospheres
|
||||
|
||||
variable tmpscale equal ${epskb}
|
||||
variable tmpscale equal 117.7
|
||||
variable epsJmole equal ${epsilon}*${KcaltoJoule}
|
||||
variable epsJmole equal 0.23389422859*${KcaltoJoule}
|
||||
variable epsJmole equal 0.23389422859*4.1868e3
|
||||
variable massKgmole equal ${mass}/1000.0
|
||||
variable massKgmole equal 39.95/1000.0
|
||||
variable sigmaM equal ${sigma}/1.0e10
|
||||
variable sigmaM equal 3.504/1.0e10
|
||||
variable sigmaMsq equal ${sigmaM}*${sigmaM}
|
||||
variable sigmaMsq equal 3.504e-10*${sigmaM}
|
||||
variable sigmaMsq equal 3.504e-10*3.504e-10
|
||||
variable tscale equal 1.0e15/sqrt(${epsJmole}/${massKgmole}/${sigmaMsq})
|
||||
variable tscale equal 1.0e15/sqrt(979.268356260612/${massKgmole}/${sigmaMsq})
|
||||
variable tscale equal 1.0e15/sqrt(979.268356260612/0.03995/${sigmaMsq})
|
||||
variable tscale equal 1.0e15/sqrt(979.268356260612/0.03995/1.2278016e-19)
|
||||
variable sigmaM3 equal ${sigmaM}*${sigmaM}*${sigmaM}
|
||||
variable sigmaM3 equal 3.504e-10*${sigmaM}*${sigmaM}
|
||||
variable sigmaM3 equal 3.504e-10*3.504e-10*${sigmaM}
|
||||
variable sigmaM3 equal 3.504e-10*3.504e-10*3.504e-10
|
||||
variable pscale equal ${NtMtoAtm}/(${sigmaM3}/(${epsJmole}/${avogadro}))
|
||||
variable pscale equal 9.86679822397632e-06/(${sigmaM3}/(${epsJmole}/${avogadro}))
|
||||
variable pscale equal 9.86679822397632e-06/(4.3022168064e-29/(${epsJmole}/${avogadro}))
|
||||
variable pscale equal 9.86679822397632e-06/(4.3022168064e-29/(979.268356260612/${avogadro}))
|
||||
variable pscale equal 9.86679822397632e-06/(4.3022168064e-29/(979.268356260612/6.02214129e23))
|
||||
|
||||
# variables
|
||||
# alat = lattice constant in Angs (at reduced density rhostar)
|
||||
# temp = reduced temperature for output
|
||||
# epair,emol,etotal = reduced epair,emol,etotal energies for output
|
||||
# press = reduced pressure for output
|
||||
|
||||
variable alat equal (4.0*${sigma}*${sigma}*${sigma}/${rhostar})^(1.0/3.0)
|
||||
variable alat equal (4.0*3.504*${sigma}*${sigma}/${rhostar})^(1.0/3.0)
|
||||
variable alat equal (4.0*3.504*3.504*${sigma}/${rhostar})^(1.0/3.0)
|
||||
variable alat equal (4.0*3.504*3.504*3.504/${rhostar})^(1.0/3.0)
|
||||
variable alat equal (4.0*3.504*3.504*3.504/0.8842)^(1.0/3.0)
|
||||
variable temp equal temp/${tmpscale}
|
||||
variable temp equal temp/117.7
|
||||
variable epair equal epair/${epsilon}
|
||||
variable epair equal epair/0.23389422859
|
||||
variable emol equal emol/${epsilon}
|
||||
variable emol equal emol/0.23389422859
|
||||
variable etotal equal etotal/${epsilon}
|
||||
variable etotal equal etotal/0.23389422859
|
||||
variable press equal press/${pscale}
|
||||
variable press equal press/372.936366301003
|
||||
|
||||
# same script as in.ar.lj
|
||||
|
||||
units real
|
||||
atom_style atomic
|
||||
|
||||
lattice fcc ${alat}
|
||||
lattice fcc 5.79518437579763
|
||||
Lattice spacing in x,y,z = 5.79518 5.79518 5.79518
|
||||
region box block 0 $x 0 $y 0 $z
|
||||
region box block 0 5 0 $y 0 $z
|
||||
region box block 0 5 0 5 0 $z
|
||||
region box block 0 5 0 5 0 5
|
||||
create_box 1 box
|
||||
Created orthogonal box = (0 0 0) to (28.9759 28.9759 28.9759)
|
||||
1 by 2 by 2 MPI processor grid
|
||||
create_atoms 1 box
|
||||
Created 500 atoms
|
||||
create_atoms CPU = 0.000664949 secs
|
||||
mass 1 ${mass}
|
||||
mass 1 39.95
|
||||
|
||||
velocity all create $(v_tinitial*v_epskb) 12345
|
||||
velocity all create 117.70000000000000284 12345
|
||||
|
||||
pair_style lj/cut $(v_cutoff*v_sigma)
|
||||
pair_style lj/cut 8.7599999999999997868
|
||||
pair_coeff 1 1 ${epsilon} ${sigma}
|
||||
pair_coeff 1 1 0.23389422859 ${sigma}
|
||||
pair_coeff 1 1 0.23389422859 3.504
|
||||
|
||||
neighbor $(v_skin*v_sigma) bin
|
||||
neighbor 1.0511999999999999122 bin
|
||||
neigh_modify delay 0 every 20 check no
|
||||
|
||||
fix 1 all nve
|
||||
|
||||
timestep $(v_dt*v_tscale)
|
||||
timestep 11.190297512378050371
|
||||
|
||||
# columns 2,3,4 = temp,pe,press in real units
|
||||
# columns 5-9 = temp,energy.press in reduced units, compare to in.ar.lj
|
||||
# need to include real unit output to enable use of reduced variables
|
||||
|
||||
thermo_style custom step temp pe press v_temp v_epair v_emol v_etotal v_press
|
||||
thermo_modify norm yes
|
||||
thermo ${nthermo}
|
||||
thermo 10
|
||||
|
||||
run ${nsteps}
|
||||
run 100
|
||||
Neighbor list info ...
|
||||
update every 20 steps, delay 0 steps, check no
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 9.8112
|
||||
ghost atom cutoff = 9.8112
|
||||
binsize = 4.9056, bins = 6 6 6
|
||||
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||
(1) pair lj/cut, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/atomonly/newton
|
||||
stencil: half/bin/3d/newton
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 2.609 | 2.609 | 2.609 Mbytes
|
||||
Step Temp PotEng Press v_temp v_epair v_emol v_etotal v_press
|
||||
0 117.7 -1.6612661 -1909.5509 1 -7.1026383 0 -5.6056383 -5.1203128
|
||||
10 86.674156 -1.5707707 -1152.1077 0.73639895 -6.715731 0 -5.6133417 -3.0892877
|
||||
20 42.104452 -1.4412091 -141.16344 0.35772687 -6.1617986 0 -5.6262815 -0.37851883
|
||||
30 55.478223 -1.4819221 -410.58592 0.47135278 -6.3358644 0 -5.6302493 -1.1009544
|
||||
40 54.54231 -1.4793231 -409.58446 0.4634011 -6.3247524 0 -5.631041 -1.098269
|
||||
50 57.354168 -1.4876242 -457.34719 0.48729115 -6.3602431 0 -5.6307682 -1.2263411
|
||||
60 59.835295 -1.4949249 -512.38519 0.50837124 -6.391457 0 -5.6304252 -1.3739212
|
||||
70 60.005554 -1.4954174 -525.858 0.50981779 -6.3935625 0 -5.6303653 -1.4100475
|
||||
80 63.469566 -1.505493 -614.29111 0.53924865 -6.4366403 0 -5.6293851 -1.6471741
|
||||
90 65.064012 -1.5100983 -656.32951 0.55279535 -6.4563301 0 -5.6287955 -1.7598968
|
||||
100 64.63774 -1.5088033 -644.51211 0.54917366 -6.4507932 0 -5.6286803 -1.7282093
|
||||
Loop time of 0.0285767 on 4 procs for 100 steps with 500 atoms
|
||||
|
||||
Performance: 3383.318 ns/day, 0.007 hours/ns, 3499.350 timesteps/s
|
||||
99.7% CPU use with 4 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 0.012398 | 0.014826 | 0.016774 | 1.6 | 51.88
|
||||
Neigh | 0.001797 | 0.0021547 | 0.0025899 | 0.6 | 7.54
|
||||
Comm | 0.0079622 | 0.010444 | 0.013427 | 2.3 | 36.55
|
||||
Output | 0.00042987 | 0.00047708 | 0.00059676 | 0.0 | 1.67
|
||||
Modify | 0.00028896 | 0.00038844 | 0.00049448 | 0.0 | 1.36
|
||||
Other | | 0.0002864 | | | 1.00
|
||||
|
||||
Nlocal: 125 ave 133 max 117 min
|
||||
Histogram: 1 0 0 1 0 0 1 0 0 1
|
||||
Nghost: 1099 ave 1107 max 1091 min
|
||||
Histogram: 1 0 0 1 0 0 1 0 0 1
|
||||
Neighs: 4908.75 ave 5493 max 4644 min
|
||||
Histogram: 1 2 0 0 0 0 0 0 0 1
|
||||
|
||||
Total # of neighbors = 19635
|
||||
Ave neighs/atom = 39.27
|
||||
Neighbor list builds = 5
|
||||
Dangerous builds not checked
|
||||
Total wall time: 0:00:00
|
||||
@ -79,10 +79,10 @@ Dihedral Coeffs
|
||||
|
||||
Improper Coeffs
|
||||
|
||||
1 0.0000 2.1999 0.0000 0.0000 # CAO-CAO-CAT-CTT
|
||||
2 0.0000 2.1999 0.0000 0.0000 # CAT-CAM-CAO-HAT
|
||||
3 0.0000 2.1999 0.0000 0.0000 # CAO-CAP-CAM-HAT
|
||||
4 0.0000 2.1999 0.0000 0.0000 # CAM-CAM-CAP-HAT
|
||||
1 2.1999 0.0000 0.0000 -1.0000 0 # CAO-CAO-CAT-CTT
|
||||
2 2.1999 0.0000 0.0000 -1.0000 0 # CAT-CAM-CAO-HAT
|
||||
3 2.1999 0.0000 0.0000 -1.0000 0 # CAO-CAP-CAM-HAT
|
||||
4 2.1999 0.0000 0.0000 -1.0000 0 # CAM-CAM-CAP-HAT
|
||||
|
||||
Atoms
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@ atom_style full
|
||||
bond_style harmonic
|
||||
angle_style harmonic
|
||||
dihedral_style opls
|
||||
improper_style opls
|
||||
improper_style fourier
|
||||
special_bonds lj/coul 0.0 0.0 0.5
|
||||
|
||||
pair_style lj/cut/thole/long 2.600 8.0 8.0
|
||||
@ -109,7 +109,7 @@ fix fNPH all nve
|
||||
|
||||
compute cTEMP all temp/drude
|
||||
|
||||
thermo_style custom step cpu etotal ke temp pe ebond eangle edihed eimp evdwl ecoul elong press vol c_cTEMP[1] c_cTEMP[2]
|
||||
thermo_style custom step etotal ke temp pe ebond eangle edihed eimp evdwl ecoul elong press vol c_cTEMP[1] c_cTEMP[2]
|
||||
thermo 50
|
||||
|
||||
timestep 0.5
|
||||
|
||||
@ -7,7 +7,7 @@ atom_style full
|
||||
bond_style harmonic
|
||||
angle_style harmonic
|
||||
dihedral_style opls
|
||||
improper_style opls
|
||||
improper_style fourier
|
||||
special_bonds lj/coul 0.0 0.0 0.5
|
||||
|
||||
pair_style lj/cut/thole/long 2.600 8.0 8.0
|
||||
@ -115,7 +115,7 @@ fix fINVERSE all drude/transform/inverse
|
||||
|
||||
fix fMOMENTUM all momentum 100 linear 1 1 1
|
||||
|
||||
thermo_style custom step cpu etotal ke temp pe ebond eangle edihed eimp evdwl ecoul elong press vol c_cTEMP[1] c_cTEMP[2]
|
||||
thermo_style custom step etotal ke temp pe ebond eangle edihed eimp evdwl ecoul elong press vol c_cTEMP[1] c_cTEMP[2]
|
||||
thermo 50
|
||||
|
||||
timestep 0.5
|
||||
|
||||
@ -1,14 +0,0 @@
|
||||
LAMMPS (27 Nov 2018)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
# 250 toluene system for drude polarizability example (Langevin)
|
||||
|
||||
units real
|
||||
boundary p p p
|
||||
|
||||
atom_style full
|
||||
bond_style harmonic
|
||||
angle_style harmonic
|
||||
dihedral_style opls
|
||||
improper_style opls
|
||||
ERROR: Unknown improper style opls (src/force.cpp:634)
|
||||
Last command: improper_style opls
|
||||
@ -1,14 +0,0 @@
|
||||
LAMMPS (27 Nov 2018)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
# 250 toluene system for drude polarizability example (Langevin)
|
||||
|
||||
units real
|
||||
boundary p p p
|
||||
|
||||
atom_style full
|
||||
bond_style harmonic
|
||||
angle_style harmonic
|
||||
dihedral_style opls
|
||||
improper_style opls
|
||||
ERROR: Unknown improper style opls (src/force.cpp:634)
|
||||
Last command: improper_style opls
|
||||
@ -1,14 +0,0 @@
|
||||
LAMMPS (27 Nov 2018)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
# 250 toluene system for drude polarizability example (Nose-Hoover)
|
||||
|
||||
units real
|
||||
boundary p p p
|
||||
|
||||
atom_style full
|
||||
bond_style harmonic
|
||||
angle_style harmonic
|
||||
dihedral_style opls
|
||||
improper_style opls
|
||||
ERROR: Unknown improper style opls (src/force.cpp:634)
|
||||
Last command: improper_style opls
|
||||