Merge branch 'clean-master2' of github.com:julient31/lammps into pppm_spin
Conflicts: src/SPIN/fix_nve_spin.h
@ -247,7 +247,10 @@ Maxwell50 = NVIDIA Maxwell generation CC 5.0
|
||||
Maxwell52 = NVIDIA Maxwell generation CC 5.2
|
||||
Maxwell53 = NVIDIA Maxwell generation CC 5.3
|
||||
Pascal60 = NVIDIA Pascal generation CC 6.0
|
||||
Pascal61 = NVIDIA Pascal generation CC 6.1 :ul
|
||||
Pascal61 = NVIDIA Pascal generation CC 6.1
|
||||
Volta70 = NVIDIA Volta generation CC 7.0
|
||||
Volta72 = NVIDIA Volta generation CC 7.2
|
||||
Turing75 = NVIDIA Turing generation CC 7.5 :ul
|
||||
|
||||
[CMake build]:
|
||||
|
||||
|
||||
@ -83,6 +83,7 @@ An alphabetic list of all general LAMMPS commands.
|
||||
"molecule"_molecule.html,
|
||||
"ndx2group"_group2ndx.html,
|
||||
"neb"_neb.html,
|
||||
"neb/spin"_neb_spin.html,
|
||||
"neigh_modify"_neigh_modify.html,
|
||||
"neighbor"_neighbor.html,
|
||||
"newton"_newton.html,
|
||||
|
||||
@ -116,6 +116,7 @@ Actions:
|
||||
|
||||
"minimize"_minimize.html,
|
||||
"neb"_neb.html,
|
||||
"neb_spin"_neb_spin.html,
|
||||
"prd"_prd.html,
|
||||
"rerun"_rerun.html,
|
||||
"run"_run.html,
|
||||
|
||||
@ -107,6 +107,7 @@ OPT.
|
||||
"mvv/edpd"_fix_mvv_dpd.html,
|
||||
"mvv/tdpd"_fix_mvv_dpd.html,
|
||||
"neb"_fix_neb.html,
|
||||
"neb_spin"_fix_neb_spin.html,
|
||||
"nph (ko)"_fix_nh.html,
|
||||
"nph/asphere (o)"_fix_nph_asphere.html,
|
||||
"nph/body"_fix_nph_body.html,
|
||||
|
||||
@ -80,6 +80,8 @@ OPT.
|
||||
"dpd/fdt/energy (k)"_pair_dpd_fdt.html,
|
||||
"dpd/tstat (go)"_pair_dpd.html,
|
||||
"dsmc"_pair_dsmc.html,
|
||||
"e3b"_pair_e3b.html,
|
||||
"drip"_pair_drip.html,
|
||||
"eam (gikot)"_pair_eam.html,
|
||||
"eam/alloy (gikot)"_pair_eam.html,
|
||||
"eam/cd (o)"_pair_eam.html,
|
||||
|
||||
BIN
doc/src/Eqs/e3b.jpg
Normal file
|
After Width: | Height: | Size: 28 KiB |
15
doc/src/Eqs/e3b.tex
Normal file
@ -0,0 +1,15 @@
|
||||
\documentclass[12pt]{article}
|
||||
\usepackage{amsmath}
|
||||
\begin{document}
|
||||
|
||||
\begin{align*}
|
||||
E =& E_2 \sum_{i,j}e^{-k_2 r_{ij}} + E_A \sum_{\substack{i,j,k,\ell \\\in \textrm{type A}}} f(r_{ij})f(r_{k\ell}) + E_B \sum_{\substack{i,j,k,\ell \\\in \textrm{type B}}} f(r_{ij})f(r_{k\ell}) + E_C \sum_{\substack{i,j,k,\ell \\\in \textrm{type C}}} f(r_{ij})f(r_{k\ell}) \\
|
||||
f(r) =& e^{-k_3 r}s(r) \\
|
||||
s(r) =& \begin{cases}
|
||||
1 & r<R_s \\
|
||||
\displaystyle\frac{(R_f-r)^2(R_f-3R_s+2r)}{(R_f-R_s)^3} & R_s\leq r\leq R_f \\
|
||||
0 & r>R_f\\
|
||||
\end{cases}
|
||||
\end{align*}
|
||||
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/fix_spin_cubic.jpg
Normal file
|
After Width: | Height: | Size: 25 KiB |
21
doc/src/Eqs/fix_spin_cubic.tex
Normal file
@ -0,0 +1,21 @@
|
||||
\documentclass[preview]{standalone}
|
||||
\usepackage{varwidth}
|
||||
\usepackage[utf8x]{inputenc}
|
||||
\usepackage{amsmath,amssymb,amsthm,bm}
|
||||
\begin{document}
|
||||
\begin{varwidth}{50in}
|
||||
\begin{equation}
|
||||
\bm{H}_{cubic} = -\sum_{{ i}=1}^{N} K_{1}
|
||||
\Big[
|
||||
\left(\vec{s}_{i} \cdot \vec{n1} \right)^2
|
||||
\left(\vec{s}_{i} \cdot \vec{n2} \right)^2 +
|
||||
\left(\vec{s}_{i} \cdot \vec{n2} \right)^2
|
||||
\left(\vec{s}_{i} \cdot \vec{n3} \right)^2 +
|
||||
\left(\vec{s}_{i} \cdot \vec{n1} \right)^2
|
||||
\left(\vec{s}_{i} \cdot \vec{n3} \right)^2 \Big]
|
||||
+K_{2}^{(c)} \left(\vec{s}_{i} \cdot \vec{n1} \right)^2
|
||||
\left(\vec{s}_{i} \cdot \vec{n2} \right)^2
|
||||
\left(\vec{s}_{i} \cdot \vec{n3} \right)^2 \nonumber
|
||||
\end{equation}
|
||||
\end{varwidth}
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/neb_spin_angle.jpg
Normal file
|
After Width: | Height: | Size: 9.4 KiB |
15
doc/src/Eqs/neb_spin_angle.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}
|
||||
\omega_i^{\nu} =
|
||||
(\nu - 1) \Delta \omega_i
|
||||
{\rm ~~and~~} \Delta \omega_i = \frac{\omega_i}{Q-1}
|
||||
, \nonumber
|
||||
\end{equation}
|
||||
\end{varwidth}
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/neb_spin_k.jpg
Normal file
|
After Width: | Height: | Size: 8.2 KiB |
16
doc/src/Eqs/neb_spin_k.tex
Normal file
@ -0,0 +1,16 @@
|
||||
\documentclass[preview]{standalone}
|
||||
\usepackage{varwidth}
|
||||
\usepackage[utf8x]{inputenc}
|
||||
\usepackage{amsmath, amssymb, graphics, setspace}
|
||||
|
||||
\begin{document}
|
||||
\begin{varwidth}{50in}
|
||||
\begin{equation}
|
||||
\vec{k}_i =
|
||||
\frac{\vec{m}_i^I \times \vec{m}_i^F}{\left|\vec{m}_i^I
|
||||
\times \vec{m}_i^F\right|}
|
||||
%&{\rm ~if~}& \vec{m}_i^I \times \vec{m}_i^F
|
||||
, \nonumber
|
||||
\end{equation}
|
||||
\end{varwidth}
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/neb_spin_rodrigues_formula.jpg
Normal file
|
After Width: | Height: | Size: 20 KiB |
16
doc/src/Eqs/neb_spin_rodrigues_formula.tex
Normal file
@ -0,0 +1,16 @@
|
||||
\documentclass[preview]{standalone}
|
||||
\usepackage{varwidth}
|
||||
\usepackage[utf8x]{inputenc}
|
||||
\usepackage{amsmath, amssymb, graphics, setspace}
|
||||
|
||||
\begin{document}
|
||||
\begin{varwidth}{50in}
|
||||
\begin{equation}
|
||||
\vec{m}_i^{\nu} = \vec{m}_i^{I} \cos(\omega_i^{\nu})
|
||||
+ (\vec{k}_i \times \vec{m}_i^{I}) \sin(\omega_i^{\nu})
|
||||
+ (1.0-\cos(\omega_i^{\nu})) \vec{k}_i (\vec{k}_i\cdot
|
||||
\vec{m}_i^{I})
|
||||
, \nonumber
|
||||
\end{equation}
|
||||
\end{varwidth}
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/pair_drip.jpg
Normal file
|
After Width: | Height: | Size: 58 KiB |
14
doc/src/Eqs/pair_drip.tex
Normal file
@ -0,0 +1,14 @@
|
||||
\documentclass[12pt]{article}
|
||||
\usepackage{amsmath}
|
||||
\usepackage{bm}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\begin{eqnarray*}
|
||||
E &=& \frac{1}{2} \sum_{i} \sum_{j\notin\text{layer}\,i} \phi_{ij} \\\phi_{ij} &=& f_\text{c}(x_r) \left[ e^{-\lambda(r_{ij} - z_0 )} \left[C+f(\rho_{ij})+ g(\rho_{ij}, \{\alpha_{ij}^{(m)}\}) \right]- A\left (\frac{z_0}{r_{ij}} \right)^6 \right] \\
|
||||
\end{eqnarray*}
|
||||
|
||||
|
||||
|
||||
|
||||
\end{document}
|
||||
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.5 KiB |
@ -1,9 +1,9 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\pagestyle{empty}
|
||||
\begin{document}
|
||||
|
||||
$$
|
||||
E(r) = \frac{A}{r^{12}} - \frac{A}{r^{6}}
|
||||
E(r) = \frac{A}{r^{12}} - \frac{B}{r^{6}}
|
||||
$$
|
||||
|
||||
\end{document}
|
||||
|
||||
@ -56,7 +56,7 @@ COMPASS is a general force field for atomistic simulation of common
|
||||
organic molecules, inorganic small molecules, and polymers which was
|
||||
developed using ab initio and empirical parameterization techniques.
|
||||
See the "Tools"_Tools.html doc page for the msi2lmp tool for creating
|
||||
LAMMPS template input and data files from BIOVIA’s Materials Studio
|
||||
LAMMPS template input and data files from BIOVIA's Materials Studio
|
||||
files. Please note that the msi2lmp tool is very old and largely
|
||||
unmaintained, so it does not support all features of Materials Studio
|
||||
provided force field files, especially additions during the last decade.
|
||||
@ -129,7 +129,7 @@ Fischer, Gao, Guo, Ha, et al, J Phys Chem, 102, 3586 (1998).
|
||||
Spellmeyer, Fox, Caldwell, Kollman, JACS 117, 5179-5197 (1995).
|
||||
|
||||
:link(howto-Sun)
|
||||
[(Sun)] Sun, J. Phys. Chem. B, 102, 7338–7364 (1998).
|
||||
[(Sun)] Sun, J. Phys. Chem. B, 102, 7338-7364 (1998).
|
||||
|
||||
:link(howto-Mayo)
|
||||
[(Mayo)] Mayo, Olfason, Goddard III, J Phys Chem, 94, 8897-8909
|
||||
|
||||
@ -29,3 +29,5 @@ diffusion coefficient. The instantaneous VACF values can be
|
||||
accumulated in a vector via the "fix vector"_fix_vector.html command,
|
||||
and time integrated via the "variable trap"_variable.html function,
|
||||
and thus extract D.
|
||||
|
||||
:line
|
||||
|
||||
@ -17,6 +17,7 @@ periodically.
|
||||
These are the relevant commands:
|
||||
|
||||
"neb"_neb.html for nudged elastic band calculations
|
||||
"neb_spin"_neb_spin.html for magnetic nudged elastic band calculations
|
||||
"prd"_prd.html for parallel replica dynamics
|
||||
"tad"_tad.html for temperature accelerated dynamics
|
||||
"temper"_temper.html for parallel tempering
|
||||
|
||||
@ -10,7 +10,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
Magnetic spins :h3
|
||||
|
||||
The magnetic spin simulations are enabled by the SPIN package, whose
|
||||
implementation is detailed in "Tranchida"_#Tranchida7.
|
||||
implementation is detailed in "Tranchida"_#Tranchida.
|
||||
|
||||
The model represents the simulation of atomic magnetic spins coupled
|
||||
to lattice vibrations. The dynamics of those magnetic spins can be used
|
||||
@ -36,13 +36,28 @@ A Langevin thermostat can be applied to those magnetic spins using
|
||||
"fix langevin/spin"_fix_langevin_spin.html. Typically, this thermostat
|
||||
can be coupled to another Langevin thermostat applied to the atoms
|
||||
using "fix langevin"_fix_langevin.html in order to simulate
|
||||
thermostatted spin-lattice system.
|
||||
thermostatted spin-lattice systems.
|
||||
|
||||
The magnetic Gilbert damping can also be applied using "fix
|
||||
langevin/spin"_fix_langevin_spin.html. It allows to either dissipate
|
||||
the thermal energy of the Langevin thermostat, or to perform a
|
||||
relaxation of the magnetic configuration toward an equilibrium state.
|
||||
|
||||
The command "fix setforce/spin"_fix_setforce.html allows to set the
|
||||
components of the magnetic precession vectors (while erasing and
|
||||
replacing the previously computed magnetic precession vectors on
|
||||
the atom).
|
||||
This command can be used to freeze the magnetic moment of certain
|
||||
atoms in the simulation by zeroing their precession vector.
|
||||
|
||||
The command "fix nve/spin"_fix_nve_spin.html can be used to
|
||||
perform a symplectic integration of the combined dynamics of spins
|
||||
and atomic motions.
|
||||
|
||||
The minimization style "min/spin"_min_spin.html can be applied
|
||||
to the spins to perform a minimization of the spin configuration.
|
||||
|
||||
|
||||
All the computed magnetic properties can be output by two main
|
||||
commands. The first one is "compute spin"_compute_spin.html, that
|
||||
enables to evaluate magnetic averaged quantities, such as the total
|
||||
@ -54,6 +69,6 @@ magnetic spin, or the magnetic force acting on this spin.
|
||||
|
||||
:line
|
||||
|
||||
:link(Tranchida7)
|
||||
:link(Tranchida)
|
||||
[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson,
|
||||
arXiv preprint arXiv:1801.10233, (2018).
|
||||
Journal of Computational Physics, 372, 406-425, (2018).
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<!-- HTML_ONLY -->
|
||||
<HEAD>
|
||||
<TITLE>LAMMPS Users Manual</TITLE>
|
||||
<META NAME="docnumber" CONTENT="29 Mar 2019 version">
|
||||
<META NAME="docnumber" CONTENT="30 Apr 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
|
||||
29 Mar 2019 version :c,h2
|
||||
30 Apr 2019 version :c,h2
|
||||
|
||||
"What is a LAMMPS version?"_Manual_version.html
|
||||
|
||||
|
||||
@ -905,7 +905,7 @@ SPIN package :link(PKG-SPIN),h4
|
||||
Model atomic magnetic spins classically, coupled to atoms moving in
|
||||
the usual manner via MD. Various pair, fix, and compute styles.
|
||||
|
||||
[Author:] Julian Tranchida (Sandia).
|
||||
[Author:] Julien Tranchida (Sandia).
|
||||
|
||||
[Supporting info:]
|
||||
|
||||
@ -918,6 +918,7 @@ src/SPIN: filenames -> commands
|
||||
"fix nve/spin"_fix_nve_spin.html
|
||||
"fix precession/spin"_fix_precession_spin.html
|
||||
"compute spin"_compute_spin.html
|
||||
"neb/spin"_neb_spin.html
|
||||
examples/SPIN :ul
|
||||
|
||||
:line
|
||||
|
||||
@ -111,16 +111,10 @@ Makefile.kokkos_mpi_only) will give better performance than the OpenMP
|
||||
back end (i.e. Makefile.kokkos_omp) because some of the overhead to make
|
||||
the code thread-safe is removed.
|
||||
|
||||
NOTE: The default for the "package kokkos"_package.html command is to
|
||||
use "full" neighbor lists and set the Newton flag to "off" for both
|
||||
pairwise and bonded interactions. However, when running on CPUs, it
|
||||
will typically be faster to use "half" neighbor lists and set the
|
||||
Newton flag to "on", just as is the case for non-accelerated pair
|
||||
styles. It can also be faster to use non-threaded communication. Use
|
||||
the "-pk kokkos" "command-line switch"_Run_options.html to change the
|
||||
default "package kokkos"_package.html options. See its doc page for
|
||||
details and default settings. Experimenting with its options can
|
||||
provide a speed-up for specific calculations. For example:
|
||||
NOTE: Use the "-pk kokkos" "command-line switch"_Run_options.html to
|
||||
change the default "package kokkos"_package.html options. See its doc
|
||||
page for details and default settings. Experimenting with its options
|
||||
can provide a speed-up for specific calculations. For example:
|
||||
|
||||
mpirun -np 16 lmp_kokkos_mpi_only -k on -sf kk -pk kokkos newton on neigh half comm no -in in.lj # Newton on, Half neighbor list, non-threaded comm :pre
|
||||
|
||||
@ -190,19 +184,18 @@ tasks/node. The "-k on t Nt" command-line switch sets the number of
|
||||
threads/task as Nt. The product of these two values should be N, i.e.
|
||||
256 or 264.
|
||||
|
||||
NOTE: The default for the "package kokkos"_package.html command is to
|
||||
use "full" neighbor lists and set the Newton flag to "off" for both
|
||||
pairwise and bonded interactions. When running on KNL, this will
|
||||
typically be best for pair-wise potentials. For many-body potentials,
|
||||
using "half" neighbor lists and setting the Newton flag to "on" may be
|
||||
faster. It can also be faster to use non-threaded communication. Use
|
||||
the "-pk kokkos" "command-line switch"_Run_options.html to change the
|
||||
default "package kokkos"_package.html options. See its doc page for
|
||||
details and default settings. Experimenting with its options can
|
||||
provide a speed-up for specific calculations. For example:
|
||||
NOTE: The default for the "package kokkos"_package.html command when
|
||||
running on KNL is to use "half" neighbor lists and set the Newton flag
|
||||
to "on" for both pairwise and bonded interactions. This will typically
|
||||
be best for many-body potentials. For simpler pair-wise potentials, it
|
||||
may be faster to use a "full" neighbor list with Newton flag to "off".
|
||||
Use the "-pk kokkos" "command-line switch"_Run_options.html to change
|
||||
the default "package kokkos"_package.html options. See its doc page for
|
||||
details and default settings. Experimenting with its options can provide
|
||||
a speed-up for specific calculations. For example:
|
||||
|
||||
mpirun -np 64 lmp_kokkos_phi -k on t 4 -sf kk -pk kokkos comm no -in in.lj # Newton off, full neighbor list, non-threaded comm
|
||||
mpirun -np 64 lmp_kokkos_phi -k on t 4 -sf kk -pk kokkos newton on neigh half comm no -in in.reax # Newton on, half neighbor list, non-threaded comm :pre
|
||||
mpirun -np 64 lmp_kokkos_phi -k on t 4 -sf kk -pk kokkos comm host -in in.reax # Newton on, half neighbor list, threaded comm
|
||||
mpirun -np 64 lmp_kokkos_phi -k on t 4 -sf kk -pk kokkos newton off neigh full comm no -in in.lj # Newton off, full neighbor list, non-threaded comm :pre
|
||||
|
||||
NOTE: MPI tasks and threads should be bound to cores as described
|
||||
above for CPUs.
|
||||
@ -236,19 +229,19 @@ one or more nodes, each with two GPUs:
|
||||
mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -in in.lj # 1 node, 2 MPI tasks/node, 2 GPUs/node
|
||||
mpirun -np 32 -ppn 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -in in.lj # 16 nodes, 2 MPI tasks/node, 2 GPUs/node (32 GPUs total) :pre
|
||||
|
||||
NOTE: The default for the "package kokkos"_package.html command is to
|
||||
use "full" neighbor lists and set the Newton flag to "off" for both
|
||||
pairwise and bonded interactions, along with threaded communication.
|
||||
When running on Maxwell or Kepler GPUs, this will typically be
|
||||
best. For Pascal GPUs, using "half" neighbor lists and setting the
|
||||
Newton flag to "on" may be faster. For many pair styles, setting the
|
||||
neighbor binsize equal to the ghost atom cutoff will give speedup.
|
||||
Use the "-pk kokkos" "command-line switch"_Run_options.html to change
|
||||
the default "package kokkos"_package.html options. See its doc page
|
||||
for details and default settings. Experimenting with its options can
|
||||
provide a speed-up for specific calculations. For example:
|
||||
NOTE: The default for the "package kokkos"_package.html command when
|
||||
running on GPUs is to use "full" neighbor lists and set the Newton flag
|
||||
to "off" for both pairwise and bonded interactions, along with threaded
|
||||
communication. When running on Maxwell or Kepler GPUs, this will
|
||||
typically be best. For Pascal GPUs, using "half" neighbor lists and
|
||||
setting the Newton flag to "on" may be faster. For many pair styles,
|
||||
setting the neighbor binsize equal to twice the CPU default value will
|
||||
give speedup, which is the default when running on GPUs. Use the "-pk
|
||||
kokkos" "command-line switch"_Run_options.html to change the default
|
||||
"package kokkos"_package.html options. See its doc page for details and
|
||||
default settings. Experimenting with its options can provide a speed-up
|
||||
for specific calculations. For example:
|
||||
|
||||
mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -pk kokkos binsize 2.8 -in in.lj # Set binsize = neighbor ghost cutoff
|
||||
mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -pk kokkos newton on neigh half binsize 2.8 -in in.lj # Newton on, half neighbor list, set binsize = neighbor ghost cutoff :pre
|
||||
|
||||
NOTE: For good performance of the KOKKOS package on GPUs, you must
|
||||
|
||||
@ -77,6 +77,7 @@ Post-processing tools :h3
|
||||
"python"_#pythontools,
|
||||
"reax"_#reax_tool,
|
||||
"smd"_#smd,
|
||||
"spin"_#spin,
|
||||
"xmgrace"_#xmgrace :tb(c=6,ea=c,a=l)
|
||||
|
||||
Miscellaneous tools :h3
|
||||
@ -511,6 +512,20 @@ Ernst Mach Institute in Germany (georg.ganzenmueller at emi.fhg.de).
|
||||
|
||||
:line
|
||||
|
||||
spin tool :h4,link(spin)
|
||||
|
||||
The spin sub-directory contains a C file interpolate.c which can
|
||||
be compiled and used to perform a cubic polynomial interpolation of
|
||||
the MEP following a GNEB calculation.
|
||||
|
||||
See the README file in tools/spin/interpolate_gneb for more details.
|
||||
|
||||
This tool was written by the SPIN package author, Julien
|
||||
Tranchida at Sandia National Labs (jtranch at sandia.gov, and by Aleksei
|
||||
Ivanov, at University of Iceland (ali5 at hi.is).
|
||||
|
||||
:line
|
||||
|
||||
vim tool :h4,link(vim)
|
||||
|
||||
The files in the tools/vim directory are add-ons to the VIM editor
|
||||
|
||||
@ -67,6 +67,7 @@ Commands :h1
|
||||
minimize
|
||||
molecule
|
||||
neb
|
||||
neb_spin
|
||||
neigh_modify
|
||||
neighbor
|
||||
newton
|
||||
|
||||
@ -321,20 +321,16 @@ accelerated styles exist.
|
||||
"restrain"_fix_restrain.html - constrain a bond, angle, dihedral
|
||||
"rhok"_fix_rhok.html -
|
||||
"rigid"_fix_rigid.html - constrain one or more clusters of atoms to move as a rigid body with NVE integration
|
||||
"rigid/nph"_fix_rigid.html - constrain one or more clusters of atoms to move as a rigid body with NPH integration
|
||||
"rigid/nph/small"_fix_rigid.html -
|
||||
"rigid/npt"_fix_rigid.html - constrain one or more clusters of atoms to move as a rigid body with NPT integration
|
||||
"rigid/npt/small"_fix_rigid.html -
|
||||
"rigid/nve"_fix_rigid.html - constrain one or more clusters of atoms to move as a rigid body with alternate NVE integration
|
||||
"rigid/nve/small"_fix_rigid.html -
|
||||
"rigid/nvt"_fix_rigid.html - constrain one or more clusters of atoms to move as a rigid body with NVT integration
|
||||
"rigid/nvt/small"_fix_rigid.html -
|
||||
"rigid/small"_fix_rigid.html - constrain many small clusters of atoms to move as a rigid body with NVE integration
|
||||
"rigid/small/nph"_fix_rigid.html - constrain many small clusters of atoms to move as a rigid body with NPH integration
|
||||
"rigid/small/npt"_fix_rigid.html - constrain many small clusters of atoms to move as a rigid body with NPT integration
|
||||
"rigid/small/nve"_fix_rigid.html - constrain many small clusters of atoms to move as a rigid body with alternate NVE integration
|
||||
"rigid/small/nvt"_fix_rigid.html - constrain many small clusters of atoms to move as a rigid body with NVT integration
|
||||
"rigid/meso"_fix_rigid_meso.html - constrain clusters of mesoscopic SPH/SDPD particles to move as a rigid body
|
||||
"rigid/nph"_fix_rigid.html - constrain one or more clusters of atoms to move as a rigid body with NPH integration
|
||||
"rigid/nph/small"_fix_rigid.html - constrain many small clusters of atoms to move as a rigid body with NPH integration
|
||||
"rigid/npt"_fix_rigid.html - constrain one or more clusters of atoms to move as a rigid body with NPT integration
|
||||
"rigid/npt/small"_fix_rigid.html - constrain many small clusters of atoms to move as a rigid body with NPT integration
|
||||
"rigid/nve"_fix_rigid.html - constrain one or more clusters of atoms to move as a rigid body with alternate NVE integration
|
||||
"rigid/nve/small"_fix_rigid.html - constrain many small clusters of atoms to move as a rigid body with alternate NVE integration
|
||||
"rigid/nvt"_fix_rigid.html - constrain one or more clusters of atoms to move as a rigid body with NVT integration
|
||||
"rigid/nvt/small"_fix_rigid.html - constrain many small clusters of atoms to move as a rigid body with NVT integration
|
||||
"rigid/small"_fix_rigid.html - constrain many small clusters of atoms to move as a rigid body with NVE integration
|
||||
"rx"_fix_rx.html -
|
||||
"saed/vtk"_fix_saed_vtk.html -
|
||||
"setforce"_fix_setforce.html - set the force on each atom
|
||||
|
||||
@ -98,6 +98,16 @@ fix to add the energy change from the biasing force added by the fix
|
||||
to the system's potential energy as part of "thermodynamic
|
||||
output"_thermo_style.html.
|
||||
|
||||
The {fix_modify configfile <config file>} option allows to add settings
|
||||
from an additional config file to the colvars module. This option can
|
||||
only be used, after the system has been initialized with a "run"_run.html
|
||||
command.
|
||||
|
||||
The {fix_modify config <quoted string>} option allows to add settings
|
||||
from inline strings. Those have to fit on a single line when enclosed
|
||||
in a pair of double quotes ("), or can span multiple lines when bracketed
|
||||
by a pair of triple double quotes (""", like python embedded documentation).
|
||||
|
||||
This fix computes a global scalar which can be accessed by various
|
||||
"output commands"_Howto_output.html. The scalar is the cumulative
|
||||
energy change due to this fix. The scalar value calculated by this
|
||||
|
||||
@ -322,13 +322,13 @@ vector stores the following quantities:
|
||||
9 = fraction of biased bonds with negative strain during this run
|
||||
10 = average bias coeff for all bonds during this run (unitless)
|
||||
11 = min bias coeff for any bond during this run (unitless)
|
||||
12 = max bias coeff for any bond during this run (unitless)
|
||||
12 = max bias coeff for any bond during this run (unitless) :ul
|
||||
|
||||
13 = max drift distance of any bond atom during this run (distance units)
|
||||
14 = max distance from proc subbox of any ghost atom with maxstrain < qfactor during this run (distance units)
|
||||
15 = max distance outside my box of any ghost atom with any maxstrain during this run (distance units)
|
||||
16 = count of ghost atoms that could not be found on reneighbor steps during this run
|
||||
17 = count of bias overlaps (< Dcut) found during this run
|
||||
17 = count of bias overlaps (< Dcut) found during this run :ul
|
||||
|
||||
18 = cumulative hyper time since fix created (time units)
|
||||
19 = cumulative count of event timesteps since fix created
|
||||
|
||||
@ -99,4 +99,4 @@ integration fix (e.g. {fix nve/spin}).
|
||||
|
||||
:link(Tranchida2)
|
||||
[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson,
|
||||
Journal of Computational Physics, (2018).
|
||||
Journal of Computational Physics, 372, 406-425, (2018).
|
||||
|
||||
@ -97,7 +97,7 @@ Note that in this case the specified {Kspring} is in force/distance
|
||||
units.
|
||||
|
||||
With a value of {ideal}, the spring force is computed as suggested in
|
||||
"(WeinenE)"_#WeinenE :
|
||||
"(WeinanE)"_#WeinanE :
|
||||
|
||||
Fnudge_parallel = -{Kspring} * (RD-RDideal) / (2 * meanDist) :pre
|
||||
|
||||
@ -224,8 +224,8 @@ specified (no inter-replica force on the end replicas).
|
||||
[(Henkelman2)] Henkelman, Uberuaga, Jonsson, J Chem Phys, 113,
|
||||
9901-9904 (2000).
|
||||
|
||||
:link(WeinenE)
|
||||
[(WeinenE)] E, Ren, Vanden-Eijnden, Phys Rev B, 66, 052301 (2002).
|
||||
:link(WeinanE)
|
||||
[(WeinanE)] E, Ren, Vanden-Eijnden, Phys Rev B, 66, 052301 (2002).
|
||||
|
||||
:link(Jonsson)
|
||||
[(Jonsson)] Jonsson, Mills and Jacobsen, in Classical and Quantum
|
||||
|
||||
76
doc/src/fix_neb_spin.txt
Normal file
@ -0,0 +1,76 @@
|
||||
"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
|
||||
|
||||
fix neb/spin command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
fix ID group-ID neb/spin Kspring :pre
|
||||
|
||||
ID, group-ID are documented in "fix"_fix.html command :ulb,l
|
||||
neb/spin = style name of this fix command :l
|
||||
Kspring = spring constant for parallel nudging force
|
||||
(force/distance units or force units, see parallel keyword) :pre,ule
|
||||
|
||||
[Examples:]
|
||||
|
||||
fix 1 active neb/spin 1.0
|
||||
|
||||
[Description:]
|
||||
|
||||
Add nudging forces to spins in the group for a multi-replica
|
||||
simulation run via the "neb/spin"_neb_spin.html command to perform a
|
||||
geodesic nudged elastic band (GNEB) calculation for finding the
|
||||
transition state.
|
||||
Hi-level explanations of GNEB are given with the
|
||||
"neb/spin"_neb_spin.html command and on the
|
||||
"Howto replica"_Howto_replica.html doc page.
|
||||
The fix neb/spin command must be used with the "neb/spin" command and
|
||||
defines how inter-replica nudging forces are computed. A GNEB
|
||||
calculation is divided in two stages. In the first stage n replicas
|
||||
are relaxed toward a MEP until convergence. In the second stage, the
|
||||
climbing image scheme is enabled, so that the replica having the highest
|
||||
energy relaxes toward the saddle point (i.e. the point of highest energy
|
||||
along the MEP), and a second relaxation is performed.
|
||||
|
||||
The nudging forces are calculated as explained in
|
||||
"(BessarabB)"_#BessarabB).
|
||||
See this reference for more explanation about their expression.
|
||||
|
||||
[Restart, fix_modify, output, run start/stop, minimize info:]
|
||||
|
||||
No information about this fix is written to "binary restart
|
||||
files"_restart.html. None of the "fix_modify"_fix_modify.html options
|
||||
are relevant to this fix. No global or per-atom quantities are stored
|
||||
by this fix for access by various "output commands"_Howto_output.html.
|
||||
No parameter of this fix can be used with the {start/stop} keywords of
|
||||
the "run"_run.html command.
|
||||
|
||||
The forces due to this fix are imposed during an energy minimization,
|
||||
as invoked by the "minimize"_minimize.html command via the
|
||||
"neb/spin"_neb_spin.html command.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
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.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"neb_spin"_neb_spin.html
|
||||
|
||||
[Default:]
|
||||
|
||||
none
|
||||
|
||||
:line
|
||||
|
||||
:link(BessarabB)
|
||||
[(BessarabB)] Bessarab, Uzdin, Jonsson, Comp Phys Comm, 196,
|
||||
335-347 (2015).
|
||||
@ -73,4 +73,4 @@ instead of "array" is also valid.
|
||||
|
||||
:link(Tranchida1)
|
||||
[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson,
|
||||
Journal of Computational Physics, (2018).
|
||||
Journal of Computational Physics, 372, 406-425, (2018).
|
||||
|
||||
@ -14,24 +14,28 @@ fix ID group precession/spin style args :pre
|
||||
|
||||
ID, group are documented in "fix"_fix.html command :ulb,l
|
||||
precession/spin = style name of this fix command :l
|
||||
style = {zeeman} or {anisotropy} :l
|
||||
style = {zeeman} or {anisotropy} or {cubic} :l
|
||||
{zeeman} args = H x y z
|
||||
H = intensity of the magnetic field (in Tesla)
|
||||
x y z = vector direction of the field
|
||||
{anisotropy} args = K x y z
|
||||
K = intensity of the magnetic anisotropy (in eV)
|
||||
x y z = vector direction of the anisotropy :pre
|
||||
{cubic} args = K1 K2c n1x n1y n1x n2x n2y n2z n3x n3y n3z
|
||||
K1 and K2c = intensity of the magnetic anisotropy (in eV)
|
||||
n1x to n3z = three direction vectors of the cubic anisotropy :pre
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
|
||||
fix 1 all precession/spin zeeman 0.1 0.0 0.0 1.0
|
||||
fix 1 all precession/spin anisotropy 0.001 0.0 0.0 1.0
|
||||
fix 1 3 precession/spin anisotropy 0.001 0.0 0.0 1.0
|
||||
fix 1 iron precession/spin cubic 0.001 0.0005 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0
|
||||
fix 1 all precession/spin zeeman 0.1 0.0 0.0 1.0 anisotropy 0.001 0.0 0.0 1.0 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Impose a force torque to each magnetic spin in the group.
|
||||
This fix applies a precession torque to each magnetic spin in the group.
|
||||
|
||||
Style {zeeman} is used for the simulation of the interaction
|
||||
between the magnetic spins in the defined group and an external
|
||||
@ -50,10 +54,29 @@ for the magnetic spins in the defined group:
|
||||
with n defining the direction of the anisotropy, and K (in eV) its intensity.
|
||||
If K>0, an easy axis is defined, and if K<0, an easy plane is defined.
|
||||
|
||||
In both cases, the choice of (x y z) imposes the vector direction for the force.
|
||||
Only the direction of the vector is important; it's length is ignored.
|
||||
Style {cubic} is used to simulate a cubic anisotropy, with three
|
||||
possible easy axis for the magnetic spins in the defined group:
|
||||
|
||||
Both styles can be combined within one single command line.
|
||||
:c,image(Eqs/fix_spin_cubic.jpg)
|
||||
|
||||
with K1 and K2c (in eV) the intensity coefficients and
|
||||
n1, n2 and n3 defining the three anisotropic directions
|
||||
defined by the command (from n1x to n3z).
|
||||
For n1 = (100), n2 = (010), and n3 = (001), K1 < 0 defines an
|
||||
iron type anisotropy (easy axis along the (001)-type cube
|
||||
edges), and K1 > 0 defines a nickel type anisotropy (easy axis
|
||||
along the (111)-type cube diagonals).
|
||||
K2^c > 0 also defines easy axis along the (111)-type cube
|
||||
diagonals.
|
||||
See chapter 2 of "(Skomski)"_#Skomski1 for more details on cubic
|
||||
anisotropies.
|
||||
|
||||
In all cases, the choice of (x y z) only imposes the vector
|
||||
directions for the forces. Only the direction of the vector is
|
||||
important; it's length is ignored (the entered vectors are
|
||||
normalized).
|
||||
|
||||
Those styles can be combined within one single command line.
|
||||
|
||||
:line
|
||||
|
||||
@ -85,3 +108,9 @@ package"_Build_package.html doc page for more info.
|
||||
"atom_style spin"_atom_style.html
|
||||
|
||||
[Default:] none
|
||||
|
||||
:line
|
||||
|
||||
:link(Skomski1)
|
||||
[(Skomski)] Skomski, R. (2008). Simple models of magnetism.
|
||||
Oxford University Press.
|
||||
|
||||
@ -14,7 +14,7 @@ fix ID group-ID print N string keyword value ... :pre
|
||||
|
||||
ID, group-ID are documented in "fix"_fix.html command :ulb,l
|
||||
print = style name of this fix command :l
|
||||
N = print every N steps :l
|
||||
N = print every N steps; N can be a variable (see below) :l
|
||||
string = text string to print with optional variable names :l
|
||||
zero or more keyword/value pairs may be appended :l
|
||||
keyword = {file} or {append} or {screen} or {title} :l
|
||||
@ -40,6 +40,21 @@ If it contains variables it must be enclosed in double quotes to
|
||||
insure they are not evaluated when the input script line is read, but
|
||||
will instead be evaluated each time the string is printed.
|
||||
|
||||
Instead of a numeric value, N can be specified as an "equal-style
|
||||
variable"_variable.html, which should be specified as v_name, where
|
||||
name is the variable name. In this case, the variable is evaluated at
|
||||
the beginning of a run to determine the [next] timestep at which the
|
||||
string will be written out. On that timestep, the variable will be
|
||||
evaluated again to determine the next timestep, etc.
|
||||
Thus the variable should return timestep values. See the stagger()
|
||||
and logfreq() and stride() math functions for "equal-style
|
||||
variables"_variable.html, as examples of useful functions to use in
|
||||
this context. For example, the following commands will print output at
|
||||
timesteps 10,20,30,100,200,300,1000,2000,etc:
|
||||
|
||||
variable s equal logfreq(10,3,10)
|
||||
fix extra all print v_s "Coords of marker atom = $x $y $z" :pre
|
||||
|
||||
The specified group-ID is ignored by this fix.
|
||||
|
||||
See the "variable"_variable.html command for a description of {equal}
|
||||
|
||||
@ -8,6 +8,7 @@
|
||||
|
||||
fix setforce command :h3
|
||||
fix setforce/kk command :h3
|
||||
fix setforce/spin command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
@ -27,6 +28,7 @@ keyword = {region} :l
|
||||
|
||||
fix freeze indenter setforce 0.0 0.0 0.0
|
||||
fix 2 edge setforce NULL 0.0 0.0
|
||||
fix 1 edge setforce/spin 0.0 0.0 0.0
|
||||
fix 2 edge setforce NULL 0.0 v_oscillate :pre
|
||||
|
||||
[Description:]
|
||||
@ -65,6 +67,19 @@ to it.
|
||||
|
||||
:line
|
||||
|
||||
Style {spin} suffix sets the components of the magnetic precession
|
||||
vectors instead of the mechanical forces. This also erases all
|
||||
previously computed magnetic precession vectors on the atom, though
|
||||
additional magnetic fixes could add new forces.
|
||||
|
||||
This command can be used to freeze the magnetic moment of certain
|
||||
atoms in the simulation by zeroing their precession vector.
|
||||
|
||||
All options defined above remain valid, they just apply to the magnetic
|
||||
precession vectors instead of the forces.
|
||||
|
||||
:line
|
||||
|
||||
Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are
|
||||
functionally the same as the corresponding style without the suffix.
|
||||
They have been optimized to run faster, depending on your available
|
||||
@ -117,7 +132,10 @@ forces to any value besides zero when performing a minimization. Use
|
||||
the "fix addforce"_fix_addforce.html command if you want to apply a
|
||||
non-zero force to atoms during a minimization.
|
||||
|
||||
[Restrictions:] none
|
||||
[Restrictions:]
|
||||
|
||||
The fix {setforce/spin} only makes sense when LAMMPS was built with the
|
||||
SPIN package.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
|
||||
@ -17,13 +17,13 @@ wall/gran = style name of this fix command :l
|
||||
fstyle = style of force interactions between particles and wall :l
|
||||
possible choices: hooke, hooke/history, hertz/history, granular :pre
|
||||
fstyle_params = parameters associated with force interaction style :l
|
||||
For {hooke}, {hooke/history}, and {hertz/history}, {fstyle_params} are:
|
||||
Kn = elastic constant for normal particle repulsion (force/distance units or pressure units - see discussion below)
|
||||
Kt = elastic constant for tangential contact (force/distance units or pressure units - see discussion below)
|
||||
gamma_n = damping coefficient for collisions in normal direction (1/time units or 1/time-distance units - see discussion below)
|
||||
gamma_t = damping coefficient for collisions in tangential direction (1/time units or 1/time-distance units - see discussion below)
|
||||
xmu = static yield criterion (unitless value between 0.0 and 1.0e4)
|
||||
dampflag = 0 or 1 if tangential damping force is excluded or included :pre
|
||||
For {hooke}, {hooke/history}, and {hertz/history}, {fstyle_params} are:
|
||||
Kn = elastic constant for normal particle repulsion (force/distance units or pressure units - see discussion below)
|
||||
Kt = elastic constant for tangential contact (force/distance units or pressure units - see discussion below)
|
||||
gamma_n = damping coefficient for collisions in normal direction (1/time units or 1/time-distance units - see discussion below)
|
||||
gamma_t = damping coefficient for collisions in tangential direction (1/time units or 1/time-distance units - see discussion below)
|
||||
xmu = static yield criterion (unitless value between 0.0 and 1.0e4)
|
||||
dampflag = 0 or 1 if tangential damping force is excluded or included :pre
|
||||
For {granular}, {fstyle_params} are set using the same syntax as for the {pair_coeff} command of "pair_style granular"_pair_granular.html :pre
|
||||
wallstyle = {xplane} or {yplane} or {zplane} or {zcylinder} :l
|
||||
args = list of arguments for a particular style :l
|
||||
@ -46,10 +46,10 @@ keyword = {wiggle} or {shear} :l
|
||||
|
||||
fix 1 all wall/gran hooke 200000.0 NULL 50.0 NULL 0.5 0 xplane -10.0 10.0
|
||||
fix 1 all wall/gran hooke/history 200000.0 NULL 50.0 NULL 0.5 0 zplane 0.0 NULL
|
||||
fix 2 all wall/gran hooke 100000.0 20000.0 50.0 30.0 0.5 1 zcylinder 15.0 wiggle z 3.0 2.0
|
||||
fix 3 all wall/gran granular hooke 1000.0 50.0 tangential linear_nohistory 1.0 0.4 zplane 0.0 NULL
|
||||
fix 4 all wall/gran granular jkr 1000.0 50.0 0.3 5.0 tangential mindlin 800.0 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall zcylinder 15.0 wiggle z 3.0 2.0
|
||||
fix 5 all wall/gran granular dmt 1000.0 50.0 0.3 10.0 tangential mindlin 800.0 0.5 0.1 roll sds 500.0 200.0 0.1 twisting marshall zplane 0.0 NULL :pre
|
||||
fix 2 all wall/gran hooke 100000.0 20000.0 50.0 30.0 0.5 1 zcylinder 15.0 wiggle z 3.0 2.0
|
||||
fix 3 all wall/gran/region granular hooke 1000.0 50.0 tangential linear_nohistory 1.0 0.4 damping velocity region myBox
|
||||
fix 4 all wall/gran/region granular jkr 1e5 1500.0 0.3 10.0 tangential mindlin NULL 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall region myCone
|
||||
fix 5 all wall/gran/region granular dmt 1e5 0.2 0.3 10.0 tangential mindlin NULL 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall damping tsuji region myCone :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
|
||||
@ -17,23 +17,23 @@ wall/region = style name of this fix command :l
|
||||
fstyle = style of force interactions between particles and wall :l
|
||||
possible choices: hooke, hooke/history, hertz/history, granular :pre
|
||||
fstyle_params = parameters associated with force interaction style :l
|
||||
For {hooke}, {hooke/history}, and {hertz/history}, {fstyle_params} are:
|
||||
Kn = elastic constant for normal particle repulsion (force/distance units or pressure units - see discussion below)
|
||||
Kt = elastic constant for tangential contact (force/distance units or pressure units - see discussion below)
|
||||
gamma_n = damping coefficient for collisions in normal direction (1/time units or 1/time-distance units - see discussion below)
|
||||
gamma_t = damping coefficient for collisions in tangential direction (1/time units or 1/time-distance units - see discussion below)
|
||||
xmu = static yield criterion (unitless value between 0.0 and 1.0e4)
|
||||
dampflag = 0 or 1 if tangential damping force is excluded or included :pre
|
||||
For {hooke}, {hooke/history}, and {hertz/history}, {fstyle_params} are:
|
||||
Kn = elastic constant for normal particle repulsion (force/distance units or pressure units - see discussion below)
|
||||
Kt = elastic constant for tangential contact (force/distance units or pressure units - see discussion below)
|
||||
gamma_n = damping coefficient for collisions in normal direction (1/time units or 1/time-distance units - see discussion below)
|
||||
gamma_t = damping coefficient for collisions in tangential direction (1/time units or 1/time-distance units - see discussion below)
|
||||
xmu = static yield criterion (unitless value between 0.0 and 1.0e4)
|
||||
dampflag = 0 or 1 if tangential damping force is excluded or included :pre
|
||||
For {granular}, {fstyle_params} are set using the same syntax as for the {pair_coeff} command of "pair_style granular"_pair_granular.html :pre
|
||||
wallstyle = region (see "fix wall/gran"_fix_wall_gran.html for options for other kinds of walls) :l
|
||||
region-ID = region whose boundary will act as wall :l,ule
|
||||
|
||||
[Examples:]
|
||||
|
||||
fix wall all wall/gran/region hooke/history 1000.0 200.0 200.0 100.0 0.5 1 region myCone
|
||||
fix 3 all wall/gran/region granular hooke 1000.0 50.0 tangential linear_nohistory 1.0 0.4 region myBox
|
||||
fix 4 all wall/gran/region granular jkr 1000.0 50.0 tangential linear_history 800.0 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall region myCone
|
||||
fix 5 all wall/gran/region granular dmt 1000.0 50.0 0.3 10.0 tangential linear_history 800.0 0.5 0.1 roll sds 500.0 200.0 0.1 twisting marshall region myCone :pre
|
||||
fix wall all wall/gran/region hooke/history 1000.0 200.0 200.0 100.0 0.5 1 region myCone
|
||||
fix 3 all wall/gran/region granular hooke 1000.0 50.0 tangential linear_nohistory 1.0 0.4 damping velocity region myBox
|
||||
fix 4 all wall/gran/region granular jkr 1e5 1500.0 0.3 10.0 tangential mindlin NULL 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall region myCone
|
||||
fix 5 all wall/gran/region granular dmt 1e5 0.2 0.3 10.0 tangential mindlin NULL 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall damping tsuji region myCone :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
|
||||
@ -84,6 +84,7 @@ Fixes :h1
|
||||
fix_msst
|
||||
fix_mvv_dpd
|
||||
fix_neb
|
||||
fix_neb_spin
|
||||
fix_nh
|
||||
fix_nh_eff
|
||||
fix_nh_uef
|
||||
|
||||
@ -179,6 +179,7 @@ min_spin.html
|
||||
minimize.html
|
||||
molecule.html
|
||||
neb.html
|
||||
neb_spin.html
|
||||
neigh_modify.html
|
||||
neighbor.html
|
||||
newton.html
|
||||
@ -309,6 +310,7 @@ fix_mscg.html
|
||||
fix_msst.html
|
||||
fix_mvv_dpd.html
|
||||
fix_neb.html
|
||||
fix_neb_spin.html
|
||||
fix_nh.html
|
||||
fix_nh_eff.html
|
||||
fix_nph_asphere.html
|
||||
@ -572,6 +574,8 @@ pair_dipole.html
|
||||
pair_dpd.html
|
||||
pair_dpd_fdt.html
|
||||
pair_dsmc.html
|
||||
pair_e3b.html
|
||||
pair_drip.html
|
||||
pair_eam.html
|
||||
pair_edip.html
|
||||
pair_eff.html
|
||||
|
||||
375
doc/src/neb_spin.txt
Normal file
@ -0,0 +1,375 @@
|
||||
"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
|
||||
|
||||
neb/spin command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
neb/spin etol ttol N1 N2 Nevery file-style arg keyword :pre
|
||||
|
||||
etol = stopping tolerance for energy (energy units) :ulb,l
|
||||
ttol = stopping tolerance for torque ( units) :l
|
||||
N1 = max # of iterations (timesteps) to run initial NEB :l
|
||||
N2 = max # of iterations (timesteps) to run barrier-climbing NEB :l
|
||||
Nevery = print replica energies and reaction coordinates every this many timesteps :l
|
||||
file-style = {final} or {each} or {none} :l
|
||||
{final} arg = filename
|
||||
filename = file with initial coords for final replica
|
||||
coords for intermediate replicas are linearly interpolated
|
||||
between first and last replica
|
||||
{each} arg = filename
|
||||
filename = unique filename for each replica (except first)
|
||||
with its initial coords
|
||||
{none} arg = no argument all replicas assumed to already have
|
||||
their initial coords :pre
|
||||
keyword = {verbose}
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
|
||||
neb/spin 0.1 0.0 1000 500 50 final coords.final
|
||||
neb/spin 0.0 0.001 1000 500 50 each coords.initial.$i
|
||||
neb/spin 0.0 0.001 1000 500 50 none verbose :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Perform a geodesic nudged elastic band (GNEB) calculation using multiple
|
||||
replicas of a system. Two or more replicas must be used; the first
|
||||
and last are the end points of the transition path.
|
||||
|
||||
GNEB is a method for finding both the spin configurations and height
|
||||
of the energy barrier associated with a transition state, e.g.
|
||||
spins to perform a collective rotation from one energy basin to
|
||||
another.
|
||||
The implementation in LAMMPS follows the discussion in the
|
||||
following paper: "(BessarabA)"_#BessarabA.
|
||||
|
||||
Each replica runs on a partition of one or more processors. Processor
|
||||
partitions are defined at run-time using the "-partition command-line
|
||||
switch"_Run_options.html. Note that if you have MPI installed, you
|
||||
can run a multi-replica simulation with more replicas (partitions)
|
||||
than you have physical processors, e.g you can run a 10-replica
|
||||
simulation on just one or two processors. You will simply not get the
|
||||
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.
|
||||
|
||||
When a GNEB calculation is performed, it is assumed that each replica
|
||||
is running the same system, though LAMMPS does not check for this.
|
||||
I.e. the simulation domain, the number of magnetic atoms, the
|
||||
interaction potentials, and the starting configuration when the neb
|
||||
command is issued should be the same for every replica.
|
||||
|
||||
In a GNEB calculation each replica is connected to other replicas by
|
||||
inter-replica nudging forces. These forces are imposed by the "fix
|
||||
neb/spin"_fix_neb_spin.html command, which must be used in conjunction
|
||||
with the neb command.
|
||||
The group used to define the fix neb/spin command defines the
|
||||
GNEB magnetic atoms which are the only ones that inter-replica springs
|
||||
are applied to.
|
||||
If the group does not include all magnetic atoms, then non-GNEB
|
||||
magnetic atoms have no inter-replica springs and the torques they feel
|
||||
and their precession motion is computed in the usual way due only
|
||||
to other magnetic atoms within their replica.
|
||||
Conceptually, the non-GNEB atoms provide a background force field for
|
||||
the GNEB atoms.
|
||||
Their magnetic spins can be allowed to evolve during the GNEB
|
||||
minimization procedure.
|
||||
|
||||
The initial spin configuration for each of the replicas can be
|
||||
specified in different manners via the {file-style} setting, as
|
||||
discussed below. Only atomic spins whose initial coordinates should
|
||||
differ from the current configuration need to be specified.
|
||||
|
||||
Conceptually, the initial and final configurations for the first
|
||||
replica should be states on either side of an energy barrier.
|
||||
|
||||
As explained below, the initial configurations of intermediate
|
||||
replicas can be spin coordinates interpolated in a linear fashion
|
||||
between the first and last replicas. This is often adequate for
|
||||
simple transitions. For more complex transitions, it may lead to slow
|
||||
convergence or even bad results if the minimum energy path (MEP, see
|
||||
below) of states over the barrier cannot be correctly converged to
|
||||
from such an initial path. In this case, you will want to generate
|
||||
initial states for the intermediate replicas that are geometrically
|
||||
closer to the MEP and read them in.
|
||||
|
||||
:line
|
||||
|
||||
For a {file-style} setting of {final}, a filename is specified which
|
||||
contains atomic and spin coordinates for zero or more atoms, in the
|
||||
format described below.
|
||||
For each atom that appears in the file, the new coordinates are
|
||||
assigned to that atom in the final replica. Each intermediate replica
|
||||
also assigns a new spin to that atom in an interpolated manner.
|
||||
This is done by using the current direction of the spin at the starting
|
||||
point and the read-in direction as the final point.
|
||||
The "angular distance" between them is calculated, and the new direction
|
||||
is assigned to be a fraction of the angular distance.
|
||||
|
||||
NOTE: The "angular distance" between the starting and final point is
|
||||
evaluated in the geodesic sense, as described in
|
||||
"(BessarabA)"_#BessarabA.
|
||||
|
||||
NOTE: The angular interpolation between the starting and final point
|
||||
is achieved using Rodrigues formula:
|
||||
|
||||
:c,image(Eqs/neb_spin_rodrigues_formula.jpg)
|
||||
|
||||
where m_i^I is the initial spin configuration for the spin i,
|
||||
omega_i^nu is a rotation angle defined as:
|
||||
|
||||
:c,image(Eqs/neb_spin_angle.jpg)
|
||||
|
||||
with nu the image number, Q the total number of images, and
|
||||
omega_i the total rotation between the initial and final spins.
|
||||
k_i defines a rotation axis such as:
|
||||
|
||||
:c,image(Eqs/neb_spin_k.jpg)
|
||||
|
||||
if the initial and final spins are not aligned.
|
||||
If the initial and final spins are aligned, then their cross
|
||||
product is null, and the expression above does not apply.
|
||||
If they point toward the same direction, the intermediate images
|
||||
conserve the same orientation.
|
||||
If the initial and final spins are aligned, but point toward
|
||||
opposite directions, an arbitrary rotation vector belonging to
|
||||
the plane perpendicular to initial and final spins is chosen.
|
||||
In this case, a warning message is displayed.
|
||||
|
||||
For a {file-style} setting of {each}, a filename is specified which is
|
||||
assumed to be unique to each replica.
|
||||
See the "neb"_neb.html documentation page for more information about this
|
||||
option.
|
||||
|
||||
For a {file-style} setting of {none}, no filename is specified. Each
|
||||
replica is assumed to already be in its initial configuration at the
|
||||
time the neb command is issued. This allows each replica to define
|
||||
its own configuration by reading a replica-specific data or restart or
|
||||
dump file, via the "read_data"_read_data.html,
|
||||
"read_restart"_read_restart.html, or "read_dump"_read_dump.html
|
||||
commands. The replica-specific names of these files can be specified
|
||||
as in the discussion above for the {each} file-style. Also see the
|
||||
section below for how a NEB calculation can produce restart files, so
|
||||
that a long calculation can be restarted if needed.
|
||||
|
||||
NOTE: None of the {file-style} settings change the initial
|
||||
configuration of any atom in the first replica. The first replica
|
||||
must thus be in the correct initial configuration at the time the neb
|
||||
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
|
||||
"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.
|
||||
|
||||
The minimizer tolerances for energy and force are set by {etol} and
|
||||
{ttol}, the same as for the "minimize"_minimize.html command.
|
||||
|
||||
A non-zero {etol} means that the GNEB calculation will terminate if the
|
||||
energy criterion is met by every replica. The energies being compared
|
||||
to {etol} do not include any contribution from the inter-replica
|
||||
nudging forces, since these are non-conservative. A non-zero {ttol}
|
||||
means that the GNEB calculation will terminate if the torque criterion
|
||||
is met by every replica. The torques being compared to {ttol} include
|
||||
the inter-replica nudging forces.
|
||||
|
||||
The maximum number of iterations in each stage is set by {N1} and
|
||||
{N2}. These are effectively timestep counts since each iteration of
|
||||
damped dynamics is like a single timestep in a dynamics
|
||||
"run"_run.html. During both stages, the potential energy of each
|
||||
replica and its normalized distance along the reaction path (reaction
|
||||
coordinate RD) will be printed to the screen and log file every
|
||||
{Nevery} timesteps. The RD is 0 and 1 for the first and last replica.
|
||||
For intermediate replicas, it is the cumulative angular distance
|
||||
(normalized by the total cumulative angular distance) between adjacent
|
||||
replicas, where "distance" is defined as the length of the 3N-vector of
|
||||
the geodesic distances in spin coordinates, with N the number of
|
||||
GNEB spins involved (see equation (13) in "(BessarabA)"_#BessarabA).
|
||||
These outputs allow you to monitor NEB's progress in
|
||||
finding a good energy barrier. {N1} and {N2} must both be multiples
|
||||
of {Nevery}.
|
||||
|
||||
In the first stage of GNEB, the set of replicas should converge toward
|
||||
a minimum energy path (MEP) of conformational states that transition
|
||||
over a barrier. The MEP for a transition is defined as a sequence of
|
||||
3N-dimensional spin states, each of which has a potential energy
|
||||
gradient parallel to the MEP itself.
|
||||
The configuration of highest energy along a MEP corresponds to a saddle
|
||||
point. The replica states will also be roughly equally spaced along
|
||||
the MEP due to the inter-replica nudging force added by the
|
||||
"fix neb"_fix_neb.html command.
|
||||
|
||||
In the second stage of GNEB, the replica with the highest energy is
|
||||
selected and the inter-replica forces on it are converted to a force
|
||||
that drives its spin coordinates to the top or saddle point of the
|
||||
barrier, via the barrier-climbing calculation described in
|
||||
"(BessarabA)"_#BessarabA. As before, the other replicas rearrange
|
||||
themselves along the MEP so as to be roughly equally spaced.
|
||||
|
||||
When both stages are complete, if the GNEB calculation was successful,
|
||||
the configurations of the replicas should be along (close to) the MEP
|
||||
and the replica with the highest energy should be a spin
|
||||
configuration at (close to) the saddle point of the transition. The
|
||||
potential energies for the set of replicas represents the energy
|
||||
profile of the transition along the MEP.
|
||||
|
||||
:line
|
||||
|
||||
An atom map must be defined which it is not by default for "atom_style
|
||||
atomic"_atom_style.html problems. The "atom_modify
|
||||
map"_atom_modify.html command can be used to do this.
|
||||
|
||||
An initial value can be defined for the timestep. Although, the {spin}
|
||||
minimization algorithm is an adaptive timestep methodology, so that
|
||||
this timestep is likely to evolve during the calculation.
|
||||
|
||||
The minimizers in LAMMPS operate on all spins in your system, even
|
||||
non-GNEB atoms, as defined above.
|
||||
|
||||
:line
|
||||
|
||||
Each file read by the neb/spin command containing spin coordinates used
|
||||
to initialize one or more replicas must be formatted as follows.
|
||||
|
||||
The file can be ASCII text or a gzipped text file (detected by a .gz
|
||||
suffix). The file can contain initial blank lines or comment lines
|
||||
starting with "#" which are ignored. The first non-blank, non-comment
|
||||
line should list N = the number of lines to follow. The N successive
|
||||
lines contain the following information:
|
||||
|
||||
ID1 g1 x1 y1 z1 sx1 sy1 sz1
|
||||
ID2 g2 x2 y2 z2 sx2 sy2 sz2
|
||||
...
|
||||
IDN gN yN zN sxN syN szN :pre
|
||||
|
||||
The fields are the atom ID, the norm of the associated magnetic spin,
|
||||
followed by the {x,y,z} coordinates and the {sx,sy,sz} spin coordinates.
|
||||
The lines can be listed in any order. Additional trailing information on
|
||||
the line is OK, such as a comment.
|
||||
|
||||
Note that for a typical GNEB calculation you do not need to specify
|
||||
initial spin coordinates for very many atoms to produce differing starting
|
||||
and final replicas whose intermediate replicas will converge to the
|
||||
energy barrier. Typically only new spin coordinates for atoms
|
||||
geometrically near the barrier need be specified.
|
||||
|
||||
Also note there is no requirement that the atoms in the file
|
||||
correspond to the GNEB atoms in the group defined by the "fix
|
||||
neb"_fix_neb.html command. Not every GNEB atom need be in the file,
|
||||
and non-GNEB atoms can be listed in the file.
|
||||
|
||||
:line
|
||||
|
||||
Four kinds of output can be generated during a GNEB calculation: energy
|
||||
barrier statistics, thermodynamic output by each replica, dump files,
|
||||
and restart files.
|
||||
|
||||
When running with multiple partitions (each of which is a replica in
|
||||
this case), the print-out to the screen and master log.lammps file
|
||||
contains a line of output, printed once every {Nevery} timesteps. It
|
||||
contains the timestep, the maximum torque per replica, the maximum
|
||||
torque per atom (in any replica), potential gradients in the initial,
|
||||
final, and climbing replicas, the forward and backward energy
|
||||
barriers, the total reaction coordinate (RDT), and the normalized
|
||||
reaction coordinate and potential energy of each replica.
|
||||
|
||||
The "maximum torque per replica" is the two-norm of the
|
||||
3N-length vector given by the cross product of a spin by its
|
||||
precession vector omega, in each replica, maximized across replicas,
|
||||
which is what the {ttol} setting is checking against. In this case, N is
|
||||
all the atoms in each replica. The "maximum torque per atom" is the
|
||||
maximum torque component of any atom in any replica. The potential
|
||||
gradients are the two-norm of the 3N-length magnetic precession vector
|
||||
solely due to the interaction potential i.e. without adding in
|
||||
inter-replica forces, and projected along the path tangent (as detailed
|
||||
in Appendix D of "(BessarabA)"_#BessarabA).
|
||||
|
||||
The "reaction coordinate" (RD) for each replica is the two-norm of the
|
||||
3N-length vector of geodesic distances between its spins and the preceding
|
||||
replica's spins (see equation (13) of "(BessarabA)"_#BessarabA), added to
|
||||
the RD of the preceding replica. The RD of the first replica RD1 = 0.0;
|
||||
the RD of the final replica RDN = RDT, the total reaction coordinate.
|
||||
The normalized RDs are divided by RDT, so that they form a monotonically
|
||||
increasing sequence from zero to one. When computing RD, N only includes
|
||||
the spins being operated on by the fix neb/spin command.
|
||||
|
||||
The forward (reverse) energy barrier is the potential energy of the
|
||||
highest replica minus the energy of the first (last) replica.
|
||||
|
||||
Supplementary information for all replicas can be printed out to the
|
||||
screen and master log.lammps file by adding the verbose keyword. This
|
||||
information include the following.
|
||||
The "GradVidottan" are the projections of the potential gradient for
|
||||
the replica i on its tangent vector (as detailed in Appendix D of
|
||||
"(BessarabA)"_#BessarabA).
|
||||
The "DNi" are the non normalized geodesic distances (see equation (13)
|
||||
of "(BessarabA)"_#BessarabA), between a replica i and the next replica
|
||||
i+1. For the last replica, this distance is not defined and a "NAN"
|
||||
value is the corresponding output.
|
||||
|
||||
When a NEB calculation does not converge properly, the supplementary
|
||||
information can help understanding what is going wrong.
|
||||
|
||||
When running on multiple partitions, LAMMPS produces additional log
|
||||
files for each partition, e.g. log.lammps.0, log.lammps.1, etc. For a
|
||||
GNEB calculation, these contain the thermodynamic output for each
|
||||
replica.
|
||||
|
||||
If "dump"_dump.html commands in the input script define a filename
|
||||
that includes a {universe} or {uloop} style "variable"_variable.html,
|
||||
then one dump file (per dump command) will be created for each
|
||||
replica. At the end of the GNEB calculation, the final snapshot in
|
||||
each file will contain the sequence of snapshots that transition the
|
||||
system over the energy barrier. Earlier snapshots will show the
|
||||
convergence of the replicas to the MEP.
|
||||
|
||||
Likewise, "restart"_restart.html filenames can be specified with a
|
||||
{universe} or {uloop} style "variable"_variable.html, to generate
|
||||
restart files for each replica. These may be useful if the GNEB
|
||||
calculation fails to converge properly to the MEP, and you wish to
|
||||
restart the calculation from an intermediate point with altered
|
||||
parameters.
|
||||
|
||||
A c file script in provided in the tool/spin/interpolate_gneb
|
||||
directory, that interpolates the MEP given the information provided
|
||||
by the verbose output option (as detailed in Appendix D of
|
||||
"(BessarabA)"_#BessarabA).
|
||||
|
||||
:line
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
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.
|
||||
|
||||
:line
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"min/spin"_min_spin.html, "fix neb/spin"_fix_neb_spin.html
|
||||
|
||||
[Default:]
|
||||
|
||||
none
|
||||
|
||||
:line
|
||||
|
||||
:link(BessarabA)
|
||||
[(BessarabA)] Bessarab, Uzdin, Jonsson, Comp Phys Comm, 196,
|
||||
335-347 (2015).
|
||||
@ -64,7 +64,7 @@ args = arguments specific to the style :l
|
||||
{no_affinity} values = none
|
||||
{kokkos} args = keyword value ...
|
||||
zero or more keyword/value pairs may be appended
|
||||
keywords = {neigh} or {neigh/qeq} or {newton} or {binsize} or {comm} or {comm/exchange} or {comm/forward} or {comm/reverse}
|
||||
keywords = {neigh} or {neigh/qeq} or {newton} or {binsize} or {comm} or {comm/exchange} or {comm/forward} or {comm/reverse} or {gpu/direct}
|
||||
{neigh} value = {full} or {half}
|
||||
full = full neighbor list
|
||||
half = half neighbor list built in thread-safe manner
|
||||
@ -72,7 +72,7 @@ args = arguments specific to the style :l
|
||||
full = full neighbor list
|
||||
half = half neighbor list built in thread-safe manner
|
||||
{newton} = {off} or {on}
|
||||
off = set Newton pairwise and bonded flags off (default)
|
||||
off = set Newton pairwise and bonded flags off
|
||||
on = set Newton pairwise and bonded flags on
|
||||
{binsize} value = size
|
||||
size = bin size for neighbor list construction (distance units)
|
||||
@ -422,101 +422,103 @@ processes/threads used for LAMMPS.
|
||||
|
||||
:line
|
||||
|
||||
The {kokkos} style invokes settings associated with the use of the
|
||||
KOKKOS package.
|
||||
The {kokkos} style invokes settings associated with the use of the
|
||||
KOKKOS package.
|
||||
|
||||
All of the settings are optional keyword/value pairs. Each has a
|
||||
default value as listed below.
|
||||
All of the settings are optional keyword/value pairs. Each has a default
|
||||
value as listed below.
|
||||
|
||||
The {neigh} keyword determines how neighbor lists are built. A value
|
||||
of {half} uses a thread-safe variant of half-neighbor lists,
|
||||
the same as used by most pair styles in LAMMPS.
|
||||
The {neigh} keyword determines how neighbor lists are built. A value of
|
||||
{half} uses a thread-safe variant of half-neighbor lists, the same as
|
||||
used by most pair styles in LAMMPS, which is the default when running on
|
||||
CPUs (i.e. the Kokkos CUDA back end is not enabled).
|
||||
|
||||
A value of {full} uses a full neighbor lists and is the default. This
|
||||
performs twice as much computation as the {half} option, however that
|
||||
is often a win because it is thread-safe and doesn't require atomic
|
||||
operations in the calculation of pair forces. For that reason, {full}
|
||||
is the default setting. However, when running in MPI-only mode with 1
|
||||
thread per MPI task, {half} neighbor lists will typically be faster,
|
||||
just as it is for non-accelerated pair styles. Similarly, the {neigh/qeq}
|
||||
keyword determines how neighbor lists are built for "fix qeq/reax/kk"_fix_qeq_reax.html.
|
||||
If not explicitly set, the value of {neigh/qeq} will match {neigh}.
|
||||
A value of {full} uses a full neighbor lists and is the default when
|
||||
running on GPUs. This performs twice as much computation as the {half}
|
||||
option, however that is often a win because it is thread-safe and
|
||||
doesn't require atomic operations in the calculation of pair forces. For
|
||||
that reason, {full} is the default setting for GPUs. However, when
|
||||
running on CPUs, a {half} neighbor list is the default because it are
|
||||
often faster, just as it is for non-accelerated pair styles. Similarly,
|
||||
the {neigh/qeq} keyword determines how neighbor lists are built for "fix
|
||||
qeq/reax/kk"_fix_qeq_reax.html. If not explicitly set, the value of
|
||||
{neigh/qeq} will match {neigh}.
|
||||
|
||||
The {newton} keyword sets the Newton flags for pairwise and bonded
|
||||
interactions to {off} or {on}, the same as the "newton"_newton.html
|
||||
command allows. The default is {off} because this will almost always
|
||||
give better performance for the KOKKOS package. This means more
|
||||
computation is done, but less communication. However, when running in
|
||||
MPI-only mode with 1 thread per MPI task, a value of {on} will
|
||||
typically be faster, just as it is for non-accelerated pair styles.
|
||||
The {newton} keyword sets the Newton flags for pairwise and bonded
|
||||
interactions to {off} or {on}, the same as the "newton"_newton.html
|
||||
command allows. The default for GPUs is {off} because this will almost
|
||||
always give better performance for the KOKKOS package. This means more
|
||||
computation is done, but less communication. However, when running on
|
||||
CPUs a value of {on} is the default since it can often be faster, just
|
||||
as it is for non-accelerated pair styles
|
||||
|
||||
The {binsize} keyword sets the size of bins used to bin atoms in
|
||||
neighbor list builds. The same value can be set by the "neigh_modify
|
||||
binsize"_neigh_modify.html command. Making it an option in the
|
||||
package kokkos command allows it to be set from the command line. The
|
||||
default value is 0.0, which means the LAMMPS default will be used,
|
||||
which is bins = 1/2 the size of the pairwise cutoff + neighbor skin
|
||||
distance. This is fine when neighbor lists are built on the CPU. For
|
||||
GPU builds, a 2x larger binsize equal to the pairwise cutoff +
|
||||
neighbor skin, is often faster, which can be set by this keyword.
|
||||
Note that if you use a longer-than-usual pairwise cutoff, e.g. to
|
||||
allow for a smaller fraction of KSpace work with a "long-range
|
||||
Coulombic solver"_kspace_style.html because the GPU is faster at
|
||||
performing pairwise interactions, then this rule of thumb may give too
|
||||
large a binsize.
|
||||
The {binsize} keyword sets the size of bins used to bin atoms in
|
||||
neighbor list builds. The same value can be set by the "neigh_modify
|
||||
binsize"_neigh_modify.html command. Making it an option in the package
|
||||
kokkos command allows it to be set from the command line. The default
|
||||
value for CPUs is 0.0, which means the LAMMPS default will be used,
|
||||
which is bins = 1/2 the size of the pairwise cutoff + neighbor skin
|
||||
distance. This is fine when neighbor lists are built on the CPU. For GPU
|
||||
builds, a 2x larger binsize equal to the pairwise cutoff + neighbor skin
|
||||
is often faster, which is the default. Note that if you use a
|
||||
longer-than-usual pairwise cutoff, e.g. to allow for a smaller fraction
|
||||
of KSpace work with a "long-range Coulombic solver"_kspace_style.html
|
||||
because the GPU is faster at performing pairwise interactions, then this
|
||||
rule of thumb may give too large a binsize and the default should be
|
||||
overridden with a smaller value.
|
||||
|
||||
The {comm} and {comm/exchange} and {comm/forward} and {comm/reverse} keywords determine
|
||||
whether the host or device performs the packing and unpacking of data
|
||||
when communicating per-atom data between processors. "Exchange"
|
||||
communication happens only on timesteps that neighbor lists are
|
||||
rebuilt. The data is only for atoms that migrate to new processors.
|
||||
"Forward" communication happens every timestep. "Reverse" communication
|
||||
happens every timestep if the {newton} option is on. The data is for atom
|
||||
coordinates and any other atom properties that needs to be updated for
|
||||
ghost atoms owned by each processor.
|
||||
The {comm} and {comm/exchange} and {comm/forward} and {comm/reverse}
|
||||
keywords determine whether the host or device performs the packing and
|
||||
unpacking of data when communicating per-atom data between processors.
|
||||
"Exchange" communication happens only on timesteps that neighbor lists
|
||||
are rebuilt. The data is only for atoms that migrate to new processors.
|
||||
"Forward" communication happens every timestep. "Reverse" communication
|
||||
happens every timestep if the {newton} option is on. The data is for
|
||||
atom coordinates and any other atom properties that needs to be updated
|
||||
for ghost atoms owned by each processor.
|
||||
|
||||
The {comm} keyword is simply a short-cut to set the same value
|
||||
for both the {comm/exchange} and {comm/forward} and {comm/reverse} keywords.
|
||||
The {comm} keyword is simply a short-cut to set the same value for both
|
||||
the {comm/exchange} and {comm/forward} and {comm/reverse} keywords.
|
||||
|
||||
The value options for all 3 keywords are {no} or {host} or {device}.
|
||||
A value of {no} means to use the standard non-KOKKOS method of
|
||||
packing/unpacking data for the communication. A value of {host} means
|
||||
to use the host, typically a multi-core CPU, and perform the
|
||||
packing/unpacking in parallel with threads. A value of {device}
|
||||
means to use the device, typically a GPU, to perform the
|
||||
packing/unpacking operation.
|
||||
The value options for all 3 keywords are {no} or {host} or {device}. A
|
||||
value of {no} means to use the standard non-KOKKOS method of
|
||||
packing/unpacking data for the communication. A value of {host} means to
|
||||
use the host, typically a multi-core CPU, and perform the
|
||||
packing/unpacking in parallel with threads. A value of {device} means to
|
||||
use the device, typically a GPU, to perform the packing/unpacking
|
||||
operation.
|
||||
|
||||
The optimal choice for these keywords depends on the input script and
|
||||
the hardware used. The {no} value is useful for verifying that the
|
||||
Kokkos-based {host} and {device} values are working correctly.
|
||||
It may also be the fastest choice when using Kokkos styles in
|
||||
MPI-only mode (i.e. with a thread count of 1).
|
||||
The optimal choice for these keywords depends on the input script and
|
||||
the hardware used. The {no} value is useful for verifying that the
|
||||
Kokkos-based {host} and {device} values are working correctly. It is the
|
||||
default when running on CPUs since it is usually the fastest.
|
||||
|
||||
When running on CPUs or Xeon Phi, the {host} and {device} values work
|
||||
identically. When using GPUs, the {device} value will typically be
|
||||
optimal if all of your styles used in your input script are supported
|
||||
by the KOKKOS package. In this case data can stay on the GPU for many
|
||||
timesteps without being moved between the host and GPU, if you use the
|
||||
{device} value. This requires that your MPI is able to access GPU
|
||||
memory directly. Currently that is true for OpenMPI 1.8 (or later
|
||||
versions), Mvapich2 1.9 (or later), and CrayMPI. If your script uses
|
||||
styles (e.g. fixes) which are not yet supported by the KOKKOS package,
|
||||
then data has to be move between the host and device anyway, so it is
|
||||
typically faster to let the host handle communication, by using the
|
||||
{host} value. Using {host} instead of {no} will enable use of
|
||||
multiple threads to pack/unpack communicated data.
|
||||
When running on CPUs or Xeon Phi, the {host} and {device} values work
|
||||
identically. When using GPUs, the {device} value is the default since it
|
||||
will typically be optimal if all of your styles used in your input
|
||||
script are supported by the KOKKOS package. In this case data can stay
|
||||
on the GPU for many timesteps without being moved between the host and
|
||||
GPU, if you use the {device} value. This requires that your MPI is able
|
||||
to access GPU memory directly. Currently that is true for OpenMPI 1.8
|
||||
(or later versions), Mvapich2 1.9 (or later), and CrayMPI. If your
|
||||
script uses styles (e.g. fixes) which are not yet supported by the
|
||||
KOKKOS package, then data has to be move between the host and device
|
||||
anyway, so it is typically faster to let the host handle communication,
|
||||
by using the {host} value. Using {host} instead of {no} will enable use
|
||||
of multiple threads to pack/unpack communicated data.
|
||||
|
||||
The {gpu/direct} keyword chooses whether GPU-direct will be used. When
|
||||
this keyword is set to {on}, buffers in GPU memory are passed directly
|
||||
through MPI send/receive calls. This reduces overhead of first copying
|
||||
the data to the host CPU. However GPU-direct is not supported on all
|
||||
systems, which can lead to segmentation faults and would require
|
||||
using a value of {off}. If LAMMPS can safely detect that GPU-direct is
|
||||
not available (currently only possible with OpenMPI v2.0.0 or later),
|
||||
then the {gpu/direct} keyword is automatically set to {off} by default.
|
||||
When the {gpu/direct} keyword is set to {off} while any of the {comm}
|
||||
keywords are set to {device}, the value for these {comm} keywords will
|
||||
be automatically changed to {host}.
|
||||
The {gpu/direct} keyword chooses whether GPU-direct will be used. When
|
||||
this keyword is set to {on}, buffers in GPU memory are passed directly
|
||||
through MPI send/receive calls. This reduces overhead of first copying
|
||||
the data to the host CPU. However GPU-direct is not supported on all
|
||||
systems, which can lead to segmentation faults and would require using a
|
||||
value of {off}. If LAMMPS can safely detect that GPU-direct is not
|
||||
available (currently only possible with OpenMPI v2.0.0 or later), then
|
||||
the {gpu/direct} keyword is automatically set to {off} by default. When
|
||||
the {gpu/direct} keyword is set to {off} while any of the {comm}
|
||||
keywords are set to {device}, the value for these {comm} keywords will
|
||||
be automatically changed to {host}. This setting has no effect if not
|
||||
running on GPUs.
|
||||
|
||||
:line
|
||||
|
||||
@ -623,14 +625,16 @@ not used, you must invoke the package intel command in your input
|
||||
script or or via the "-pk intel" "command-line
|
||||
switch"_Run_options.html.
|
||||
|
||||
For the KOKKOS package, the option defaults neigh = full, neigh/qeq =
|
||||
full, newton = off, binsize = 0.0, and comm = device, gpu/direct = on.
|
||||
When LAMMPS can safely detect, that GPU-direct is not available, the
|
||||
default value of gpu/direct becomes "off".
|
||||
These settings are made automatically by the required "-k on"
|
||||
"command-line switch"_Run_options.html. You can change them by
|
||||
using the package kokkos command in your input script or via the
|
||||
"-pk kokkos command-line switch"_Run_options.html.
|
||||
For the KOKKOS package, the option defaults for GPUs are neigh = full,
|
||||
neigh/qeq = full, newton = off, binsize for GPUs = 2x LAMMPS default
|
||||
value, comm = device, gpu/direct = on. When LAMMPS can safely detect
|
||||
that GPU-direct is not available, the default value of gpu/direct
|
||||
becomes "off". For CPUs or Xeon Phis, the option defaults are neigh =
|
||||
half, neigh/qeq = half, newton = on, binsize = 0.0, and comm = no. These
|
||||
settings are made automatically by the required "-k on" "command-line
|
||||
switch"_Run_options.html. You can change them by using the package
|
||||
kokkos command in your input script or via the "-pk kokkos command-line
|
||||
switch"_Run_options.html.
|
||||
|
||||
For the OMP package, the default is Nthreads = 0 and the option
|
||||
defaults are neigh = yes. These settings are made automatically if
|
||||
|
||||
@ -36,7 +36,7 @@ pair_style airebo/morse 3.0
|
||||
pair_coeff * * ../potentials/CH.airebo-m H C :pre
|
||||
|
||||
pair_style rebo
|
||||
pair_coeff * * ../potentials/CH.airebo H C :pre
|
||||
pair_coeff * * ../potentials/CH.rebo H C :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
@ -57,7 +57,8 @@ The {rebo} pair style computes the Reactive Empirical Bond Order (REBO)
|
||||
Potential of "(Brenner)"_#Brenner. Note that this is the so-called
|
||||
2nd generation REBO from 2002, not the original REBO from 1990.
|
||||
As discussed below, 2nd generation REBO is closely related to the
|
||||
initial AIREBO; it is just a subset of the potential energy terms.
|
||||
initial AIREBO; it is just a subset of the potential energy terms
|
||||
with a few slightly different parameters
|
||||
|
||||
The AIREBO potential consists of three terms:
|
||||
|
||||
@ -113,12 +114,12 @@ various dihedral angle preferences in hydrocarbon configurations.
|
||||
:line
|
||||
|
||||
Only a single pair_coeff command is used with the {airebo}, {airebo}
|
||||
or {rebo} style which specifies an AIREBO or AIREBO-M potential file
|
||||
with parameters for C and H. Note that the {rebo} style in LAMMPS
|
||||
uses the same AIREBO-formatted potential file. These are mapped to
|
||||
LAMMPS atom types by specifying N additional arguments after the
|
||||
filename in the pair_coeff command, where N is the number of LAMMPS
|
||||
atom types:
|
||||
or {rebo} style which specifies an AIREBO, REBO, or AIREBO-M potential
|
||||
file with parameters for C and H. Note that as of LAMMPS version
|
||||
15 May 2019 the {rebo} style in LAMMPS uses its own potential
|
||||
file (CH.rebo). These are mapped to LAMMPS atom types by specifying
|
||||
N additional arguments after the filename in the pair_coeff command,
|
||||
where N is the number of LAMMPS atom types:
|
||||
|
||||
filename
|
||||
N element names = mapping of AIREBO elements to atom types :ul
|
||||
|
||||
269
doc/src/pair_dipole_spin.txt
Normal file
@ -0,0 +1,269 @@
|
||||
"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 spin/dipole/cut command :h3
|
||||
pair_style spin/dipole/long command :h3
|
||||
pair_style spin/dipole/long/qsymp command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
pair_style lj/cut/dipole/cut cutoff (cutoff2)
|
||||
pair_style lj/sf/dipole/sf cutoff (cutoff2)
|
||||
pair_style lj/cut/dipole/long cutoff (cutoff2)
|
||||
pair_style lj/long/dipole/long flag_lj flag_coul cutoff (cutoff2) :pre
|
||||
|
||||
cutoff = global cutoff LJ (and Coulombic if only 1 arg) (distance units) :ulb,l
|
||||
cutoff2 = global cutoff for Coulombic and dipole (optional) (distance units) :l
|
||||
flag_lj = {long} or {cut} or {off} :l
|
||||
{long} = use long-range damping on dispersion 1/r^6 term
|
||||
{cut} = use a cutoff on dispersion 1/r^6 term
|
||||
{off} = omit disperion 1/r^6 term entirely :pre
|
||||
flag_coul = {long} or {off} :l
|
||||
{long} = use long-range damping on Coulombic 1/r and point-dipole terms
|
||||
{off} = omit Coulombic and point-dipole terms entirely :pre
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
|
||||
pair_style lj/cut/dipole/cut 10.0
|
||||
pair_coeff * * 1.0 1.0
|
||||
pair_coeff 2 3 1.0 1.0 2.5 4.0 :pre
|
||||
|
||||
pair_style lj/sf/dipole/sf 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_style lj/cut/dipole/long 10.0
|
||||
pair_coeff * * 1.0 1.0
|
||||
pair_coeff 2 3 1.0 1.0 2.5 4.0 :pre
|
||||
|
||||
pair_style lj/long/dipole/long long long 3.5 10.0
|
||||
pair_coeff * * 1.0 1.0
|
||||
pair_coeff 2 3 1.0 1.0 2.5 4.0 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Style {lj/cut/dipole/cut} computes interactions between pairs of particles
|
||||
that each have a charge and/or a point dipole moment. In addition to
|
||||
the usual Lennard-Jones interaction between the particles (Elj) the
|
||||
charge-charge (Eqq), charge-dipole (Eqp), and dipole-dipole (Epp)
|
||||
interactions are computed by these formulas for the energy (E), force
|
||||
(F), and torque (T) between particles I and J.
|
||||
|
||||
:c,image(Eqs/pair_dipole.jpg)
|
||||
|
||||
where qi and qj are the charges on the two particles, pi and pj are
|
||||
the dipole moment vectors of the two particles, r is their separation
|
||||
distance, and the vector r = Ri - Rj is the separation vector between
|
||||
the two particles. Note that Eqq and Fqq are simply Coulombic energy
|
||||
and force, Fij = -Fji as symmetric forces, and Tij != -Tji since the
|
||||
torques do not act symmetrically. These formulas are discussed in
|
||||
"(Allen)"_#Allen2 and in "(Toukmaji)"_#Toukmaji2.
|
||||
|
||||
Also note, that in the code, all of these terms (except Elj) have a
|
||||
C/epsilon prefactor, the same as the Coulombic term in the LJ +
|
||||
Coulombic pair styles discussed "here"_pair_lj.html. C is an
|
||||
energy-conversion constant and epsilon is the dielectric constant
|
||||
which can be set by the "dielectric"_dielectric.html command. The
|
||||
same is true of the equations that follow for other dipole pair
|
||||
styles.
|
||||
|
||||
Style {lj/sf/dipole/sf} computes "shifted-force" interactions between
|
||||
pairs of particles that each have a charge and/or a point dipole
|
||||
moment. In general, a shifted-force potential is a (slightly) modified
|
||||
potential containing extra terms that make both the energy and its
|
||||
derivative go to zero at the cutoff distance; this removes
|
||||
(cutoff-related) problems in energy conservation and any numerical
|
||||
instability in the equations of motion "(Allen)"_#Allen2. Shifted-force
|
||||
interactions for the Lennard-Jones (E_LJ), charge-charge (Eqq),
|
||||
charge-dipole (Eqp), dipole-charge (Epq) and dipole-dipole (Epp)
|
||||
potentials are computed by these formulas for the energy (E), force
|
||||
(F), and torque (T) between particles I and J:
|
||||
|
||||
:c,image(Eqs/pair_dipole_sf.jpg)
|
||||
:c,image(Eqs/pair_dipole_sf2.jpg)
|
||||
|
||||
where epsilon and sigma are the standard LJ parameters, r_c is the
|
||||
cutoff, qi and qj are the charges on the two particles, pi and pj are
|
||||
the dipole moment vectors of the two particles, r is their separation
|
||||
distance, and the vector r = Ri - Rj is the separation vector between
|
||||
the two particles. Note that Eqq and Fqq are simply Coulombic energy
|
||||
and force, Fij = -Fji as symmetric forces, and Tij != -Tji since the
|
||||
torques do not act symmetrically. The shifted-force formula for the
|
||||
Lennard-Jones potential is reported in "(Stoddard)"_#Stoddard. The
|
||||
original (non-shifted) formulas for the electrostatic potentials,
|
||||
forces and torques can be found in "(Price)"_#Price2. The shifted-force
|
||||
electrostatic potentials have been obtained by applying equation 5.13
|
||||
of "(Allen)"_#Allen2. The formulas for the corresponding forces and
|
||||
torques have been obtained by applying the 'chain rule' as in appendix
|
||||
C.3 of "(Allen)"_#Allen2.
|
||||
|
||||
If one cutoff is specified in the pair_style command, it is used for
|
||||
both the LJ and Coulombic (q,p) terms. If two cutoffs are specified,
|
||||
they are used as cutoffs for the LJ and Coulombic (q,p) terms
|
||||
respectively. This pair style also supports an optional {scale} keyword
|
||||
as part of a pair_coeff statement, where the interactions can be
|
||||
scaled according to this factor. This scale factor is also made available
|
||||
for use with fix adapt.
|
||||
|
||||
Style {lj/cut/dipole/long} computes long-range point-dipole
|
||||
interactions as discussed in "(Toukmaji)"_#Toukmaji2. Dipole-dipole,
|
||||
dipole-charge, and charge-charge interactions are all supported, along
|
||||
with the standard 12/6 Lennard-Jones interactions, which are computed
|
||||
with a cutoff. A "kspace_style"_kspace_style.html must be defined to
|
||||
use this pair style. Currently, only "kspace_style
|
||||
ewald/disp"_kspace_style.html support long-range point-dipole
|
||||
interactions.
|
||||
|
||||
Style {lj/long/dipole/long} also computes point-dipole interactions as
|
||||
discussed in "(Toukmaji)"_#Toukmaji2. Long-range dipole-dipole,
|
||||
dipole-charge, and charge-charge interactions are all supported, along
|
||||
with the standard 12/6 Lennard-Jones interactions. LJ interactions
|
||||
can be cutoff or long-ranged.
|
||||
|
||||
For style {lj/long/dipole/long}, if {flag_lj} is set to {long}, no
|
||||
cutoff is used on the LJ 1/r^6 dispersion term. The long-range
|
||||
portion is calculated by using the "kspace_style
|
||||
ewald_disp"_kspace_style.html command. The specified LJ cutoff then
|
||||
determines which portion of the LJ interactions are computed directly
|
||||
by the pair potential versus which part is computed in reciprocal
|
||||
space via the Kspace style. If {flag_lj} is set to {cut}, the LJ
|
||||
interactions are simply cutoff, as with "pair_style
|
||||
lj/cut"_pair_lj.html. If {flag_lj} is set to {off}, LJ interactions
|
||||
are not computed at all.
|
||||
|
||||
If {flag_coul} is set to {long}, no cutoff is used on the Coulombic or
|
||||
dipole interactions. The long-range portion is calculated by using
|
||||
{ewald_disp} of the "kspace_style"_kspace_style.html command. If
|
||||
{flag_coul} is set to {off}, Coulombic and dipole interactions are not
|
||||
computed at all.
|
||||
|
||||
Atoms with dipole moments should be integrated using the "fix
|
||||
nve/sphere update dipole"_fix_nve_sphere.html or the "fix
|
||||
nvt/sphere update dipole"_fix_nvt_sphere.html command to rotate the
|
||||
dipole moments. The {omega} option on the "fix
|
||||
langevin"_fix_langevin.html command can be used to thermostat the
|
||||
rotational motion. The "compute temp/sphere"_compute_temp_sphere.html
|
||||
command can be used to monitor the temperature, since it includes
|
||||
rotational degrees of freedom. The "atom_style
|
||||
hybrid dipole sphere"_atom_style.html command should be used since
|
||||
it defines the point dipoles and their rotational state.
|
||||
The magnitude and orientation of the dipole moment for each particle
|
||||
can be defined by the "set"_set.html command or in the "Atoms" section
|
||||
of the data file read in by the "read_data"_read_data.html command.
|
||||
|
||||
The following coefficients must be defined for each pair of atoms
|
||||
types via the "pair_coeff"_pair_coeff.html command as in the examples
|
||||
above, or in the data file or restart files read by the
|
||||
"read_data"_read_data.html or "read_restart"_read_restart.html
|
||||
commands, or by mixing as described below:
|
||||
|
||||
epsilon (energy units)
|
||||
sigma (distance units)
|
||||
cutoff1 (distance units)
|
||||
cutoff2 (distance units) :ul
|
||||
|
||||
The latter 2 coefficients are optional. If not specified, the global
|
||||
LJ and Coulombic cutoffs specified in the pair_style command are used.
|
||||
If only one cutoff is specified, it is used as the cutoff for both LJ
|
||||
and Coulombic interactions for this type pair. If both coefficients
|
||||
are specified, they are used as the LJ and Coulombic cutoffs for this
|
||||
type pair.
|
||||
|
||||
:line
|
||||
|
||||
Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are
|
||||
functionally the same as the corresponding style without the suffix.
|
||||
They have been optimized to run faster, depending on your available
|
||||
hardware, as discussed on the "Speed packages"_Speed_packages.html doc
|
||||
page. The accelerated styles take the same arguments and should
|
||||
produce the same results, except for round-off and precision issues.
|
||||
|
||||
These accelerated styles are part of the GPU, USER-INTEL, KOKKOS,
|
||||
USER-OMP and OPT packages, respectively. They are only enabled if
|
||||
LAMMPS was built with those packages. See the "Build
|
||||
package"_Build_package.html doc page for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Run_options.html when you invoke LAMMPS, or you can use the
|
||||
"suffix"_suffix.html command in your input script.
|
||||
|
||||
See the "Speed packages"_Speed_packages.html doc page for more
|
||||
instructions on how to use the accelerated styles effectively.
|
||||
|
||||
:line
|
||||
|
||||
[Mixing, shift, table, tail correction, restart, rRESPA info]:
|
||||
|
||||
For atom type pairs I,J and I != J, the epsilon and sigma coefficients
|
||||
and cutoff distances for this pair style can be mixed. The default
|
||||
mix value is {geometric}. See the "pair_modify" command for details.
|
||||
|
||||
For atom type pairs I,J and I != J, the A, sigma, d1, and d2
|
||||
coefficients and cutoff distance for this pair style can be mixed. A
|
||||
is an energy value mixed like a LJ epsilon. D1 and d2 are distance
|
||||
values and are mixed like sigma. The default mix value is
|
||||
{geometric}. See the "pair_modify" command for details.
|
||||
|
||||
This pair style does not support the "pair_modify"_pair_modify.html
|
||||
shift option for the energy of the Lennard-Jones portion of the pair
|
||||
interaction; such energy goes to zero at the cutoff by construction.
|
||||
|
||||
The "pair_modify"_pair_modify.html table option is not relevant
|
||||
for this pair style.
|
||||
|
||||
This pair style does not support the "pair_modify"_pair_modify.html
|
||||
tail option for adding long-range tail corrections to energy and
|
||||
pressure.
|
||||
|
||||
This pair style writes its information to "binary restart
|
||||
files"_restart.html, so pair_style and pair_coeff commands do not need
|
||||
to be specified in an input script that reads a restart file.
|
||||
|
||||
This pair style can only be used via the {pair} keyword of the
|
||||
"run_style respa"_run_style.html command. It does not support the
|
||||
{inner}, {middle}, {outer} keywords.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
The {lj/cut/dipole/cut}, {lj/cut/dipole/long}, and
|
||||
{lj/long/dipole/long} styles are part of the DIPOLE package. They are
|
||||
only enabled if LAMMPS was built with that package. See the "Build
|
||||
package"_Build_package.html doc page for more info.
|
||||
|
||||
The {lj/sf/dipole/sf} style 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.
|
||||
|
||||
Using dipole pair styles with {electron} "units"_units.html is not
|
||||
currently supported.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"pair_coeff"_pair_coeff.html, "set"_set.html, "read_data"_read_data.html,
|
||||
"fix nve/sphere"_fix_nve_sphere.html, "fix nvt/sphere"_fix_nvt_sphere.html
|
||||
|
||||
[Default:] none
|
||||
|
||||
:line
|
||||
|
||||
:link(Allen2)
|
||||
[(Allen)] Allen and Tildesley, Computer Simulation of Liquids,
|
||||
Clarendon Press, Oxford, 1987.
|
||||
|
||||
:link(Toukmaji2)
|
||||
[(Toukmaji)] Toukmaji, Sagui, Board, and Darden, J Chem Phys, 113,
|
||||
10913 (2000).
|
||||
|
||||
:link(Stoddard)
|
||||
[(Stoddard)] Stoddard and Ford, Phys Rev A, 8, 1504 (1973).
|
||||
|
||||
:link(Price2)
|
||||
[(Price)] Price, Stone and Alderton, Mol Phys, 52, 987 (1984).
|
||||
141
doc/src/pair_drip.txt
Normal file
@ -0,0 +1,141 @@
|
||||
"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 drip command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
pair_style hybrid/overlay drip \[styles ...\] :pre
|
||||
|
||||
styles = other styles to be overlayed with drip (optional) :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
pair_style hybrid/overlay drip
|
||||
pair_coeff * * none
|
||||
pair_coeff * * drip C.drip C :pre
|
||||
|
||||
pair_style hybrid/overlay drip rebo
|
||||
pair_coeff * * drip C.drip C
|
||||
pair_coeff * * rebo CH.airebo C :pre
|
||||
|
||||
pair_style hybrid/overlay drip rebo
|
||||
pair_coeff * * drip C.drip C NULL
|
||||
pair_coeff * * rebo CH.airebo C H :pre
|
||||
|
||||
|
||||
[Description:]
|
||||
|
||||
Style {drip} computes the interlayer interactions of layered materials using
|
||||
the dihedral-angle-corrected registry-dependent (DRIP) potential as described
|
||||
in "(Wen)"_#Wen2018, which is based on the "(Kolmogorov)"_#Kolmogorov2005
|
||||
potential and provides an improved prediction for forces.
|
||||
The total potential energy of a system is
|
||||
|
||||
:c,image(Eqs/pair_drip.jpg)
|
||||
|
||||
where the {r^-6} term models the attractive London dispersion,
|
||||
the exponential term is designed to capture the registry effect due to
|
||||
overlapping {pi} bonds, and {fc} is a cutoff function.
|
||||
|
||||
|
||||
This potential (DRIP) only provides the interlayer interactions between
|
||||
graphene layers. So, to perform a realistic simulation, it should be used in
|
||||
combination with an intralayer potential such as "REBO"_pair_airebo.html and
|
||||
"Tersoff"_pair_tersoff.html.
|
||||
To keep the intralayer interactions unaffected, we should avoid applying DRIP
|
||||
to contribute energy to intralayer interactions. This can be achieved by
|
||||
assigning different molecular IDs to atoms in different layers, and DRIP is
|
||||
implemented such that only atoms with different molecular ID can interact with
|
||||
each other. For this purpose, "atom style"_atom_style.html "molecular" or
|
||||
"full" has to be used.
|
||||
|
||||
On the other way around, "REBO"_pair_airebo.html ("Tersoff"_pair_tersoff.html
|
||||
or any other potential used to provide the intralayer interactions) should not
|
||||
interfere with the interlayer interactions described by DRIP. This is typically
|
||||
automatically achieved using the commands provided in the {Examples} section
|
||||
above, since the cutoff distance for carbon-carbon interaction in the intralayer
|
||||
potentials (e.g. 2 Angstrom for "REBO"_pair_airebo.html) is much smaller than
|
||||
the equilibrium layer distance of graphene layers (about 3.4 Angstrom).
|
||||
If you want, you can enforce this by assigning different atom types to atoms in
|
||||
different layers, and apply an intralayer potential to one atom type.
|
||||
See "pair_hybrid"_pair_hybrid.html for details.
|
||||
|
||||
:line
|
||||
|
||||
The "pair_coeff"_pair_coeff.html command for DRIP takes {4+N} arguments, where
|
||||
{N} is the number of LAMMPS atom types. The fist three arguments must be fixed
|
||||
to be {* * drip}, the fourth argument is the path to the DRIP parameter file,
|
||||
and the remaining N arguments specifying the mapping between element in the
|
||||
parameter file and atom types. For example, if your LAMMPS simulation has 3 atom
|
||||
types and you want all of them to be C, you would use the following pair_coeff
|
||||
command:
|
||||
|
||||
pair_coeff * * drip C.drip C C C :pre
|
||||
|
||||
If a mapping value is specified as NULL, the mapping is not performed. This
|
||||
could be useful when DRIP is used to model part of the system where other
|
||||
element exists. Suppose you have a hydrocarbon system, with C of atom type 1
|
||||
and H of atom type 2, you can use the following command to inform DRIP not to
|
||||
model H atoms:
|
||||
|
||||
pair_style hybrid/overlay drip rebo
|
||||
pair_coeff * * drip C.drip C NULL
|
||||
pair_coeff * * rebo CH.airebo C H :pre
|
||||
|
||||
NOTE: The potential parameters developed in "(Wen)"_#Wen2018 are provided with
|
||||
LAMMPS (see the "potentials" directory). Besides those in "Wen"_#Wen2018, an
|
||||
additional parameter "normal_cutoff", specific to the LAMMPS implementation, is
|
||||
used to find the three nearest neighbors of an atom to construct the normal.
|
||||
|
||||
|
||||
:line
|
||||
|
||||
[Mixing, shift, table, tail correction, and restart info]:
|
||||
|
||||
This pair style does not support the pair_modify mix, shift, table,
|
||||
and tail options.
|
||||
|
||||
This pair style does not write their information to binary restart files, since
|
||||
it is stored in potential files. Thus, you need to re-specify the pair_style and
|
||||
pair_coeff commands in an input script that reads a restart file.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This pair style 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.
|
||||
|
||||
This pair potential requires the "newton"_newton.html setting to be "on" for
|
||||
pair interactions.
|
||||
|
||||
|
||||
The {C.drip} parameter file provided with LAMMPS (see the "potentials"
|
||||
directory) is parameterized for metal "units"_units.html. You can use the DRIP
|
||||
potential with any LAMMPS units, but you would need to create your own custom
|
||||
parameter file with coefficients listed in the appropriate units, if your
|
||||
simulation doesn't use "metal" units.
|
||||
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"pair_style lebedeva_z"_pair_lebedeva_z.html,
|
||||
"pair_style kolmogorov/crespi/z"_pair_kolmogorov_crespi_z.html,
|
||||
"pair_style kolmogorov/crespi/full"_pair_kolmogorov_crespi_full.html,
|
||||
"pair_style ilp/graphene/hbn"_pair_ilp_graphene_hbn.html.
|
||||
|
||||
|
||||
:line
|
||||
|
||||
:link(Wen2018)
|
||||
[(Wen)] M. Wen, S. Carr, S. Fang, E. Kaxiras, and E. B. Tadmor, Phys. Rev. B,
|
||||
98, 235404 (2018)
|
||||
|
||||
:link(Kolmogorov2005)
|
||||
[(Kolmogorov)] A. N. Kolmogorov, V. H. Crespi, Phys. Rev. B 71, 235415 (2005)
|
||||
|
||||
140
doc/src/pair_e3b.txt
Normal file
@ -0,0 +1,140 @@
|
||||
"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 e3b command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
pair_style e3b Otype :pre
|
||||
Otype = atom type for oxygen :l
|
||||
|
||||
pair_coeff * * keyword :pre
|
||||
one or more keyword/value pairs must be appended. :l
|
||||
keyword = {preset} or {Ea} or {Eb} or {Ec} or {E2} or {K3} or {K2} or {Rs} or {Rc3} or {Rc2} or {bondL} or {neigh} :l
|
||||
If the {preset} keyword is given, no others are needed.
|
||||
Otherwise, all are mandatory except for {neigh}.
|
||||
The {neigh} keyword is always optional. :l
|
||||
{preset} arg = {2011} or {2015} = which set of predefined parameters to use
|
||||
2011 = use the potential parameters from "(Tainter 2011)"_#Tainter2011
|
||||
2015 = use the potential parameters from "(Tainter 2015)"_#Tainter2015
|
||||
{Ea} arg = three-body energy for type A hydrogen bonding interactions (energy units)
|
||||
{Eb} arg = three-body energy for type B hydrogen bonding interactions (energy units)
|
||||
{Ec} arg = three-body energy for type C hydrogen bonding interactions (energy units)
|
||||
{E2} arg = two-body energy correction (energy units)
|
||||
{K3} arg = three-body exponential constant (inverse distance units)
|
||||
{K2} arg = two-body exponential constant (inverse distance units)
|
||||
{Rc3} arg = three-body cutoff (distance units)
|
||||
{Rc2} arg = two-body cutoff (distance units)
|
||||
{Rs} arg = three-body switching function cutoff (distance units)
|
||||
{bondL} arg = intramolecular OH bond length (distance units)
|
||||
{neigh} arg = approximate integer number of molecules within Rc3 of an oxygen atom :pre
|
||||
|
||||
[Examples:]
|
||||
|
||||
pair_style e3b 1
|
||||
pair_coeff * * Ea 35.85 Eb -240.2 Ec 449.3 E2 108269.9 K3 1.907 K2 4.872 Rc3 5.2 Rc2 5.2 Rs 5.0 bondL 0.9572 :pre
|
||||
|
||||
pair_style hybrid/overlay e3b 1 lj/cut/tip4p/long 1 2 1 1 0.15 8.5
|
||||
pair_coeff * * e3b preset 2011 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
The {e3b} style computes an \"explicit three-body\" (E3B) potential for water "(Kumar 2008)"_#Kumar.
|
||||
|
||||
:c,image(Eqs/e3b.jpg)
|
||||
|
||||
This potential was developed as a water model that includes the three-body cooperativity of hydrogen bonding explicitly.
|
||||
To use it in this way, it must be applied in conjunction with a conventional two-body water model, through {pair_style hybrid/overlay}.
|
||||
The three body interactions are split into three types: A, B, and C.
|
||||
Type A corresponds to anti-cooperative double hydrogen bond donor interactions.
|
||||
Type B corresponds to the cooperative interaction of molecules that both donate and accept a hydrogen bond.
|
||||
Type C corresponds to anti-cooperative double hydrogen bond acceptor interactions.
|
||||
The three-body interactions are smoothly cutoff by the switching function s(r) between Rs and Rc3.
|
||||
The two-body interactions are designed to correct for the effective many-body interactions implicitly included in the conventional two-body potential.
|
||||
The two-body interactions are cut off sharply at Rc2, because K3 is typically significantly smaller than K2.
|
||||
See "(Kumar 2008)"_#Kumar for more details.
|
||||
|
||||
Only a single {pair_coeff} command is used with the {e3b} style.
|
||||
The 1st two arguments must be * *.
|
||||
The oxygen atom type for the pair style is passed as the only argument to the {pair_style} command, not in the {pair_coeff} command.
|
||||
The hydrogen atom type is inferred by the ordering of the atoms.
|
||||
|
||||
NOTE: Every atom of type Otype must be part of a water molecule.
|
||||
Each water molecule must have consecutive IDs with the oxygen first.
|
||||
This pair style does not test that this criteria is met.
|
||||
|
||||
The {pair_coeff} command must have at least one keyword/value pair, as described above.
|
||||
The {preset} keyword sets the potential parameters to the values used in "(Tainter 2011)"_#Tainter2011 or "(Tainter 2015)"_#Tainter2015.
|
||||
To use the water models defined in those references, the {e3b} style should always be used in conjunction with an {lj/cut/tip4p/long} style through {pair_style hybrid/overlay}, as demonstrated in the second example above.
|
||||
The {preset 2011} option should be used with the "TIP4P water model"_Howto_tip4p.html.
|
||||
The {preset 2015} option should be used with the "TIP4P/2005 water model"_Howto_tip4p.html.
|
||||
If the {preset} keyword is used, no other keyword is needed.
|
||||
Changes to the preset parameters can be made by specifying the {preset} keyword followed by the specific parameter to change, like {Ea}.
|
||||
Note that the other keywords must come after {preset} in the pair_style command.
|
||||
The {e3b} style can also be used to implement any three-body potential of the same form by specifying all the keywords except {neigh}: {Ea}, {Eb}, {Ec}, {E2}, {K3}, {K2}, {Rc3}, {Rc2}, {Rs}, and {bondL}.
|
||||
The keyword {bondL} specifies the intramolecular OH bond length of the water model being used.
|
||||
This is needed to include H atoms that are within the cutoff even when the attached oxygen atom is not.
|
||||
|
||||
This pair style allocates arrays sized according to the number of pairwise interactions within Rc3.
|
||||
To do this it needs an estimate for the number of water molecules within Rc3 of an oxygen atom.
|
||||
This estimate defaults to 10 and can be changed using the {neigh} keyword, which takes an integer as an argument.
|
||||
If the neigh setting is too small, the simulation will fail with the error "neigh is too small".
|
||||
If the neigh setting is too large, the pair style will use more memory than necessary.
|
||||
|
||||
This pair style tallies a breakdown of the total E3B potential energy into sub-categories, which can be accessed via the "compute pair"_compute_pair.html command as a vector of values of length 4.
|
||||
The 4 values correspond to the terms in the first equation above: the E2 term, the Ea term, the Eb term, and the Ec term.
|
||||
|
||||
See the examples/USER/e3b directory for a complete example script.
|
||||
|
||||
:line
|
||||
|
||||
[Mixing, shift, table, tail correction, restart, rRESPA info]:
|
||||
|
||||
This pair style does not support the "pair_modify"_pair_modify.html
|
||||
shift, table, and tail options.
|
||||
|
||||
This pair style does not write its information to "binary restart
|
||||
files"_restart.html, since it is stored in potential files. Thus, you
|
||||
need to re-specify the pair_style and pair_coeff commands in an input
|
||||
script that reads a restart file.
|
||||
|
||||
This pair style is incompatible with "respa"_run_style.html.
|
||||
|
||||
:line
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This pair style 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.
|
||||
|
||||
This pair style requires the "newton"_newton.html setting to be "on"
|
||||
for pair interactions.
|
||||
|
||||
This pair style requires a fixed number of atoms in the simulation, so it is incompatible with fixes like "fix deposit"_fix_deposit.html.
|
||||
If the number of atoms changes between runs, this pair style must be re-initialized by calling the {pair_style} and {pair_coeffs} commands.
|
||||
This is not a fundamental limitation of the pair style, but the code currently does not support a variable number of atoms.
|
||||
|
||||
The {preset} keyword currently only works with real, metal, si, and cgs "units"_units.html.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"pair_coeff"_pair_coeff.html, "compute pair"_compute_pair.html
|
||||
|
||||
[Default:]
|
||||
|
||||
The option default for the {neigh} keyword is 10.
|
||||
|
||||
:line
|
||||
|
||||
:link(Kumar)
|
||||
[(Kumar)] Kumar and Skinner, J. Phys. Chem. B, 112, 8311 (2008)
|
||||
:link(Tainter2011)
|
||||
[(Tainter 2011)] Tainter, Pieniazek, Lin, and Skinner, J. Chem. Phys., 134, 184501 (2011)
|
||||
:link(Tainter2015)
|
||||
[(Tainter 2015)] Tainter, Shi, and Skinner, 11, 2268 (2015)
|
||||
@ -24,22 +24,24 @@ cutoff = global cutoff (optional). See discussion below. :ul
|
||||
[Examples:]
|
||||
|
||||
pair_style granular
|
||||
pair_coeff * * hooke 1000.0 50.0 tangential linear_nohistory 1.0 0.4 :pre
|
||||
pair_coeff * * hooke 1000.0 50.0 tangential linear_nohistory 1.0 0.4 damping mass_velocity :pre
|
||||
|
||||
pair_style granular
|
||||
pair_coeff * * hertz 1000.0 50.0 tangential mindlin NULL 1.0 0.4 :pre
|
||||
pair_coeff * * hooke 1000.0 50.0 tangential linear_history 500.0 1.0 0.4 damping mass_velocity :pre
|
||||
|
||||
pair_style granular
|
||||
pair_coeff * * hertz/material 1e8 0.3 tangential mindlin_rescale NULL 1.0 0.4 damping tsuji :pre
|
||||
pair_coeff * * hertz 1000.0 50.0 tangential mindlin 1000.0 1.0 0.4 :pre
|
||||
|
||||
pair_style granular
|
||||
pair_coeff 1 1 jkr 1000.0 50.0 tangential mindlin 800.0 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall
|
||||
pair_coeff 2 2 hertz 200.0 20.0 tangential linear_history 300.0 1.0 0.1 rolling sds 200.0 100.0 0.1 twisting marshall :pre
|
||||
pair_coeff * * hertz/material 1e8 0.3 0.3 tangential mindlin_rescale NULL 1.0 0.4 damping tsuji :pre
|
||||
|
||||
pair_style granular
|
||||
pair_coeff 1 1 hertz 1000.0 50.0 tangential mindlin 800.0 0.5 0.5 rolling sds 500.0 200.0 0.5 twisting marshall
|
||||
pair_coeff 2 2 dmt 1000.0 50.0 0.3 10.0 tangential mindlin 800.0 0.5 0.1 roll sds 500.0 200.0 0.1 twisting marshall
|
||||
pair_coeff 1 2 dmt 1000.0 50.0 0.3 10.0 tangential mindlin 800.0 0.5 0.1 roll sds 500.0 200.0 0.1 twisting marshall :pre
|
||||
pair_coeff 1 * jkr 1000.0 500.0 0.3 10 tangential mindlin 800.0 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall
|
||||
pair_coeff 2 2 hertz 200.0 100.0 tangential linear_history 300.0 1.0 0.1 rolling sds 200.0 100.0 0.1 twisting marshall :pre
|
||||
|
||||
pair_style granular
|
||||
pair_coeff 1 1 dmt 1000.0 50.0 0.3 0.0 tangential mindlin NULL 0.5 0.5 rolling sds 500.0 200.0 0.5 twisting marshall
|
||||
pair_coeff 2 2 dmt 1000.0 50.0 0.3 10.0 tangential mindlin NULL 0.5 0.1 rolling sds 500.0 200.0 0.1 twisting marshall :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
@ -57,18 +59,18 @@ global, but can be set to different values for different combinations
|
||||
of particle types, as determined by the "pair_coeff"_pair_coeff.html
|
||||
command. If the contact model choice is the same for two particle
|
||||
types, the mixing for the cross-coefficients can be carried out
|
||||
automatically. This is shown in the second example, where model
|
||||
automatically. This is shown in the last example, where model
|
||||
choices are the same for type 1 - type 1 as for type 2 - type2
|
||||
interactions, but coefficients are different. In this case, the
|
||||
coefficients for type 2 - type interactions can be determined from
|
||||
mixed coefficients for type 1 - type 2 interactions can be determined from
|
||||
mixing rules discussed below. For additional flexibility,
|
||||
coefficients as well as model forms can vary between particle types,
|
||||
as shown in the third example: type 1- type 1 interactions are based
|
||||
on a Hertzian normal contact model and 2-2 interactions are based on a
|
||||
DMT cohesive model (see below). In that example, 1-1 and 2-2
|
||||
interactions have different model forms, in which case mixing of
|
||||
as shown in the fourth example: type 1 - type 1 interactions are based
|
||||
on a Johnson-Kendall-Roberts normal contact model and 2-2 interactions
|
||||
are based on a DMT cohesive model (see below). In that example, 1-1
|
||||
and 2-2 interactions have different model forms, in which case mixing of
|
||||
coefficients cannot be determined, so 1-2 interactions must be
|
||||
explicitly defined via the {pair_coeff 1 2} command, otherwise an
|
||||
explicitly defined via the {pair_coeff 1 *} command, otherwise an
|
||||
error would result.
|
||||
|
||||
:line
|
||||
@ -189,6 +191,7 @@ other settings, potentially also the twisting damping). The options
|
||||
for the damping model currently supported are:
|
||||
|
||||
{velocity}
|
||||
{mass_velocity}
|
||||
{viscoelastic}
|
||||
{tsuji} :ol
|
||||
|
||||
@ -199,11 +202,23 @@ For {damping velocity}, the normal damping is simply equal to the
|
||||
user-specified damping coefficient in the {normal} model:
|
||||
|
||||
\begin\{equation\}
|
||||
\eta_n = \eta_\{n0\}\
|
||||
\eta_n = \eta_\{n0\}
|
||||
\end\{equation\}
|
||||
|
||||
Here, \(\gamma_n\) is the damping coefficient specified for the normal
|
||||
contact model, in units of {mass}/{time},
|
||||
Here, \(\eta_\{n0\}\) is the damping coefficient specified for the normal
|
||||
contact model, in units of {mass}/{time}.
|
||||
|
||||
For {damping mass_velocity}, the normal damping is given by:
|
||||
|
||||
\begin\{equation\}
|
||||
\eta_n = \eta_\{n0\} m_\{eff\}
|
||||
\end\{equation\}
|
||||
|
||||
Here, \(\eta_\{n0\}\) is the damping coefficient specified for the normal
|
||||
contact model, in units of {mass}/{time} and
|
||||
\(m_\{eff\} = m_i m_j/(m_i + m_j)\) is the effective mass.
|
||||
Use {damping mass_velocity} to reproduce the damping behavior of
|
||||
{pair gran/hooke/*}.
|
||||
|
||||
The {damping viscoelastic} model is based on the viscoelastic
|
||||
treatment of "(Brilliantov et al)"_#Brill1996, where the normal
|
||||
@ -213,11 +228,10 @@ damping is given by:
|
||||
\eta_n = \eta_\{n0\}\ a m_\{eff\}
|
||||
\end\{equation\}
|
||||
|
||||
Here, \(m_\{eff\} = m_i m_j/(m_i + m_j)\) is the effective mass, {a}
|
||||
is the contact radius, given by \(a =\sqrt\{R\delta\}\) for all models
|
||||
except {jkr}, for which it is given implicitly according to \(delta =
|
||||
a^2/R - 2\sqrt\{\pi \gamma a/E\}\). In this case, \eta_\{n0\}\ is in
|
||||
units of 1/({time}*{distance}).
|
||||
Here, {a} is the contact radius, given by \(a =\sqrt\{R\delta\}\)
|
||||
for all models except {jkr}, for which it is given implicitly according
|
||||
to \(\delta = a^2/R - 2\sqrt\{\pi \gamma a/E\}\). For {damping viscoelastic},
|
||||
\(\eta_\{n0\}\) is in units of 1/({time}*{distance}).
|
||||
|
||||
The {tsuji} model is based on the work of "(Tsuji et
|
||||
al)"_#Tsuji1992. Here, the damping coefficient specified as part of
|
||||
@ -564,6 +578,20 @@ Finally, the twisting torque on each particle is given by:
|
||||
|
||||
:line
|
||||
|
||||
The {granular} pair style can reproduce the behavior of the
|
||||
{pair gran/*} styles with the appropriate settings (some very
|
||||
minor differences can be expected due to corrections in
|
||||
displacement history frame-of-reference, and the application
|
||||
of the torque at the center of the contact rather than
|
||||
at each particle). The first example above
|
||||
is equivalent to {pair gran/hooke 1000.0 NULL 50.0 50.0 0.4 1}.
|
||||
The second example is equivalent to
|
||||
{pair gran/hooke/history 1000.0 500.0 50.0 50.0 0.4 1}.
|
||||
The third example is equivalent to
|
||||
{pair gran/hertz/history 1000.0 500.0 50.0 50.0 0.4 1}.
|
||||
|
||||
:line
|
||||
|
||||
LAMMPS automatically sets pairwise cutoff values for {pair_style
|
||||
granular} based on particle radii (and in the case of {jkr} pull-off
|
||||
distances). In the vast majority of situations, this is adequate.
|
||||
@ -619,7 +647,7 @@ interactions is set to \(\mu_1\), and friction coefficient for type
|
||||
2-type 2 interactions is set to \(\mu_2\), the friction coefficient
|
||||
for type1-type2 interactions is computed as \(\sqrt\{\mu_1\mu_2\}\)
|
||||
(unless explicitly specified to a different value by a {pair_coeff 1 2
|
||||
...} command. The exception to this is elastic modulus, only
|
||||
...} command). The exception to this is elastic modulus, only
|
||||
applicable to {hertz/material}, {dmt} and {jkr} normal contact
|
||||
models. In that case, the effective elastic modulus is computed as:
|
||||
|
||||
@ -706,7 +734,7 @@ For the {pair_coeff} settings: {damping viscoelastic}, {rolling none},
|
||||
J. M., & Poschel, T. (1996). Model for collisions in granular
|
||||
gases. Physical review E, 53(5), 5382.
|
||||
|
||||
:link(Tsuji1992)
|
||||
:link(Tsuji1992)
|
||||
[(Tsuji et al, 1992)] Tsuji, Y., Tanaka, T., & Ishida,
|
||||
T. (1992). Lagrangian numerical simulation of plug flow of
|
||||
cohesionless particles in a horizontal pipe. Powder technology, 71(3),
|
||||
|
||||
@ -21,7 +21,7 @@ pair_style hybrid/overlay ilp/graphene/hbn 16.0 1
|
||||
pair_coeff * * ilp/graphene/hbn BNCH.ILP B N C :pre
|
||||
|
||||
pair_style hybrid/overlay rebo tersoff ilp/graphene/hbn 16.0 coul/shield 16.0
|
||||
pair_coeff * * rebo CH.airebo NULL NULL C
|
||||
pair_coeff * * rebo CH.rebo NULL NULL C
|
||||
pair_coeff * * tersoff BNC.tersoff B N NULL
|
||||
pair_coeff * * ilp/graphene/hbn BNCH.ILP B N C
|
||||
pair_coeff 1 1 coul/shield 0.70
|
||||
@ -50,11 +50,11 @@ calculating the normals.
|
||||
NOTE: This potential (ILP) is intended for interlayer interactions between two
|
||||
different layers of graphene, hexagonal boron nitride (h-BN) and their hetero-junction.
|
||||
To perform a realistic simulation, this potential must be used in combination with
|
||||
intra-layer potential, such as "AIREBO"_pair_airebo.html or "Tersoff"_pair_tersoff.html potential.
|
||||
To keep the intra-layer properties unaffected, the interlayer interaction
|
||||
intralayer potential, such as "AIREBO"_pair_airebo.html or "Tersoff"_pair_tersoff.html potential.
|
||||
To keep the intralayer properties unaffected, the interlayer interaction
|
||||
within the same layers should be avoided. Hence, each atom has to have a layer
|
||||
identifier such that atoms residing on the same layer interact via the
|
||||
appropriate intra-layer potential and atoms residing on different layers
|
||||
appropriate intralayer potential and atoms residing on different layers
|
||||
interact via the ILP. Here, the molecule id is chosen as the layer identifier,
|
||||
thus a data file with the "full" atom style is required to use this potential.
|
||||
|
||||
@ -117,6 +117,7 @@ units, if your simulation does not use {metal} units.
|
||||
"pair_coeff"_pair_coeff.html,
|
||||
"pair_none"_pair_none.html,
|
||||
"pair_style hybrid/overlay"_pair_hybrid.html,
|
||||
"pair_style drip"_pair_drip.html,
|
||||
"pair_style pair_kolmogorov_crespi_z"_pair_kolmogorov_crespi_z.html,
|
||||
"pair_style pair_kolmogorov_crespi_full"_pair_kolmogorov_crespi_full.html,
|
||||
"pair_style pair_lebedeva_z"_pair_lebedeva_z.html,
|
||||
|
||||
@ -22,7 +22,7 @@ pair_coeff * * none
|
||||
pair_coeff * * kolmogorov/crespi/full CH.KC C C :pre
|
||||
|
||||
pair_style hybrid/overlay rebo kolmogorov/crespi/full 16.0 1
|
||||
pair_coeff * * rebo CH.airebo C H
|
||||
pair_coeff * * rebo CH.rebo C H
|
||||
pair_coeff * * kolmogorov/crespi/full CH_taper.KC C H :pre
|
||||
|
||||
[Description:]
|
||||
@ -44,12 +44,12 @@ can be found in pair style "ilp/graphene/hbn"_pair_ilp_graphene_hbn.html.
|
||||
|
||||
NOTE: This potential (ILP) is intended for interlayer interactions between two
|
||||
different layers of graphene. To perform a realistic simulation, this potential
|
||||
must be used in combination with intra-layer potential, such as
|
||||
must be used in combination with intralayer potential, such as
|
||||
"AIREBO"_pair_airebo.html or "Tersoff"_pair_tersoff.html potential.
|
||||
To keep the intra-layer properties unaffected, the interlayer interaction
|
||||
To keep the intralayer properties unaffected, the interlayer interaction
|
||||
within the same layers should be avoided. Hence, each atom has to have a layer
|
||||
identifier such that atoms residing on the same layer interact via the
|
||||
appropriate intra-layer potential and atoms residing on different layers
|
||||
appropriate intralayer potential and atoms residing on different layers
|
||||
interact via the ILP. Here, the molecule id is chosen as the layer identifier,
|
||||
thus a data file with the "full" atom style is required to use this potential.
|
||||
|
||||
@ -106,6 +106,7 @@ units.
|
||||
"pair_coeff"_pair_coeff.html,
|
||||
"pair_none"_pair_none.html,
|
||||
"pair_style hybrid/overlay"_pair_hybrid.html,
|
||||
"pair_style drip"_pair_drip.html,
|
||||
"pair_style pair_lebedeva_z"_pair_lebedeva_z.html,
|
||||
"pair_style kolmogorov/crespi/z"_pair_kolmogorov_crespi_z.html,
|
||||
"pair_style ilp/graphene/hbn"_pair_ilp_graphene_hbn.html.
|
||||
|
||||
@ -19,7 +19,7 @@ pair_coeff * * none
|
||||
pair_coeff 1 2 kolmogorov/crespi/z CC.KC C C :pre
|
||||
|
||||
pair_style hybrid/overlay rebo kolmogorov/crespi/z 14.0
|
||||
pair_coeff * * rebo CH.airebo C C
|
||||
pair_coeff * * rebo CH.rebo C C
|
||||
pair_coeff 1 2 kolmogorov/crespi/z CC.KC C C :pre
|
||||
|
||||
[Description:]
|
||||
@ -59,6 +59,7 @@ package"_Build_package.html doc page for more info.
|
||||
"pair_coeff"_pair_coeff.html,
|
||||
"pair_none"_pair_none.html,
|
||||
"pair_style hybrid/overlay"_pair_hybrid.html,
|
||||
"pair_style drip"_pair_drip.html,
|
||||
"pair_style ilp/graphene/hbn"_pair_ilp_graphene_hbn.html.
|
||||
"pair_style kolmogorov/crespi/full"_pair_kolmogorov_crespi_full.html,
|
||||
"pair_style lebedeva/z"_pair_lebedeva_z.html
|
||||
|
||||
@ -19,8 +19,8 @@ pair_coeff * * none
|
||||
pair_coeff 1 2 lebedeva/z CC.Lebedeva C C :pre
|
||||
|
||||
pair_style hybrid/overlay rebo lebedeva/z 14.0
|
||||
pair_coeff * * rebo CH.airebo C C
|
||||
pair_coeff 1 2 lebedeva/z CC.Lebedeva C C :pre
|
||||
pair_coeff * * rebo CH.rebo C C
|
||||
pair_coeff 1 2 lebedeva/z CC.Lebedeva C C :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
@ -53,6 +53,7 @@ package"_Build_package.html doc page for more info.
|
||||
"pair_coeff"_pair_coeff.html,
|
||||
"pair_style none"_pair_none.html,
|
||||
"pair_style hybrid/overlay"_pair_hybrid.html,
|
||||
"pair_style drip"_pair_drip.html,
|
||||
"pair_style ilp/graphene/hbd"_pair_ilp_graphene_hbn.html,
|
||||
"pair_style kolmogorov/crespi/z"_pair_kolmogorov_crespi_z.html,
|
||||
"pair_style kolmogorov/crespi/full"_pair_kolmogorov_crespi_full.html.
|
||||
|
||||
@ -30,16 +30,16 @@ args = list of arguments for a particular style :l
|
||||
[Examples:]
|
||||
|
||||
pair_style lj/mdf 2.5 3.0
|
||||
pair_coeff * * 1 1
|
||||
pair_coeff 1 1 1 1.1 2.8 3.0 3.2 :pre
|
||||
pair_coeff * * 1.0 1.0
|
||||
pair_coeff 1 1 1.1 2.8 3.0 3.2 :pre
|
||||
|
||||
pair_style buck 2.5 3.0
|
||||
pair_coeff * * 100.0 1.5 200.0
|
||||
pair_coeff * * 100.0 1.5 200.0 3.0 3.5 :pre
|
||||
|
||||
pair_style lennard/mdf 2.5 3.0
|
||||
pair_coeff * * 1 1
|
||||
pair_coeff 1 1 1 1.1 2.8 3.0 3.2 :pre
|
||||
pair_coeff * * 1.0 1.0
|
||||
pair_coeff 1 1 1021760.3664 2120.317338 3.0 3.2 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
@ -69,11 +69,12 @@ standard 12-6 Lennard-Jones written in the epsilon/sigma form:
|
||||
|
||||
:c,image(Eqs/pair_mdf-4.jpg)
|
||||
|
||||
The following coefficients must be defined for each pair of atoms
|
||||
types via the pair_coeff command as in the examples above, or in the
|
||||
data file or restart files read by the "read_data"_read_data.html or
|
||||
"read_restart commands"_read_restart.html, or by mixing as described
|
||||
below:
|
||||
Either the first two or all of the following coefficients must be
|
||||
defined for each pair of atoms types via the pair_coeff command as
|
||||
in the examples above, or in the data file read by the
|
||||
"read_data"_read_data.html. The two cutoffs default to the global
|
||||
values and epsilon and sigma can also be determined by mixing as
|
||||
described below:
|
||||
|
||||
epsilon (energy units)
|
||||
sigma (distance units)
|
||||
@ -83,7 +84,9 @@ r_{cut} (distance units) :ul
|
||||
:line
|
||||
|
||||
For the {buck/mdf} pair_style, the potential energy, {E(r)}, is the
|
||||
standard Buckingham potential:
|
||||
standard Buckingham potential with three required coefficients.
|
||||
The two cutoffs can be omitted and default to the corresponding
|
||||
global values:
|
||||
|
||||
:c,image(Eqs/pair_mdf-5.jpg)
|
||||
|
||||
@ -91,19 +94,20 @@ A (energy units)
|
||||
\rho (distance units)
|
||||
C (energy-distance^6 units)
|
||||
r_m (distance units)
|
||||
r_{cut}$ (distance units) :ul
|
||||
r_{cut} (distance units) :ul
|
||||
|
||||
:line
|
||||
|
||||
For the {lennard/mdf} pair_style, the potential energy, {E(r)}, is the
|
||||
standard 12-6 Lennard-Jones written in the $A/B$ form:
|
||||
standard 12-6 Lennard-Jones written in the A/B form:
|
||||
|
||||
:c,image(Eqs/pair_mdf-6.jpg)
|
||||
|
||||
The following coefficients must be defined for each pair of atoms
|
||||
types via the pair_coeff command as in the examples above, or in the
|
||||
data file or restart files read by the read_data or read_restart
|
||||
commands, or by mixing as described below:
|
||||
data file read by the read_data commands, or by mixing as described below.
|
||||
The two cutoffs default to their global values and must be either both
|
||||
given or both left out:
|
||||
|
||||
A (energy-distance^12 units)
|
||||
B (energy-distance^6 units)
|
||||
@ -115,33 +119,23 @@ r_{cut} (distance units) :ul
|
||||
[Mixing, shift, table, tail correction, restart, rRESPA info]:
|
||||
|
||||
For atom type pairs I,J and I != J, the epsilon and sigma coefficients
|
||||
and cutoff distance for all of the lj/cut pair styles can be mixed.
|
||||
and cutoff distances for the lj/mdf pair style can be mixed.
|
||||
The default mix value is {geometric}. See the "pair_modify" command
|
||||
for details.
|
||||
for details. The other two pair styles buck/mdf and lennard/mdf do not
|
||||
support mixing, so all I,J pairs of coefficients must be specified
|
||||
explicitly.
|
||||
|
||||
All of the {lj/cut} pair styles support the
|
||||
"pair_modify"_pair_modify.html shift option for the energy of the
|
||||
Lennard-Jones portion of the pair interaction.
|
||||
None of the lj/mdf, buck/mdf, or lennard/mdf pair styles supports
|
||||
the "pair_modify"_pair_modify.html shift option or long-range
|
||||
tail corrections to pressure and energy.
|
||||
|
||||
The {lj/cut/coul/long} and {lj/cut/tip4p/long} pair styles support the
|
||||
"pair_modify"_pair_modify.html table option since they can tabulate
|
||||
the short-range portion of the long-range Coulombic interaction.
|
||||
These styles write their information to "binary restart
|
||||
files"_restart.html, so pair_style and pair_coeff commands do not need
|
||||
to be specified in an input script that reads a restart file.
|
||||
|
||||
All of the {lj/cut} pair styles support the
|
||||
"pair_modify"_pair_modify.html tail option for adding a long-range
|
||||
tail correction to the energy and pressure for the Lennard-Jones
|
||||
portion of the pair interaction.
|
||||
|
||||
All of the {lj/cut} pair styles write their information to "binary
|
||||
restart files"_restart.html, so pair_style and pair_coeff commands do
|
||||
not need to be specified in an input script that reads a restart file.
|
||||
|
||||
The {lj/cut} and {lj/cut/coul/long} pair styles support the use of the
|
||||
{inner}, {middle}, and {outer} keywords of the "run_style
|
||||
respa"_run_style.html command, meaning the pairwise forces can be
|
||||
partitioned by distance at different levels of the rRESPA hierarchy.
|
||||
The other styles only support the {pair} keyword of run_style respa.
|
||||
See the "run_style"_run_style.html command for details.
|
||||
These styles can only be used via the {pair} keyword of the "run_style
|
||||
respa"_run_style.html command. They do not support the {inner},
|
||||
{middle}, {outer} keywords.
|
||||
|
||||
:line
|
||||
|
||||
|
||||
@ -88,4 +88,4 @@ package"_Build_package.html doc page for more info.
|
||||
Physical Review B, 88(18), 184422. (2013).
|
||||
:link(Tranchida5)
|
||||
[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson,
|
||||
Journal of Computational Physics, (2018).
|
||||
Journal of Computational Physics, 372, 406-425, (2018).
|
||||
|
||||
@ -95,4 +95,4 @@ package"_Build_package.html doc page for more info.
|
||||
|
||||
:link(Tranchida3)
|
||||
[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson,
|
||||
Journal of Computational Physics, (2018).
|
||||
Journal of Computational Physics, 372, 406-425, (2018).
|
||||
|
||||
@ -70,4 +70,4 @@ package"_Build_package.html doc page for more info.
|
||||
|
||||
:link(Tranchida4)
|
||||
[(Tranchida)] Tranchida, Plimpton, Thibaudeau, and Thompson,
|
||||
Journal of Computational Physics, (2018).
|
||||
Journal of Computational Physics, 372, 406-425, (2018).
|
||||
|
||||
@ -80,4 +80,4 @@ package"_Build_package.html doc page for more info.
|
||||
|
||||
:link(Tranchida6)
|
||||
[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson,
|
||||
Journal of Computational Physics, (2018).
|
||||
Journal of Computational Physics, 372, 406-425, (2018).
|
||||
|
||||
@ -147,6 +147,8 @@ accelerated styles exist.
|
||||
"dpd/fdt/energy"_pair_dpd_fdt.html - DPD for constant energy and enthalpy
|
||||
"dpd/tstat"_pair_dpd.html - pair-wise DPD thermostatting
|
||||
"dsmc"_pair_dsmc.html - Direct Simulation Monte Carlo (DSMC)
|
||||
"e3b"_pair_e3b.html - Explicit-three body (E3B) water model
|
||||
"drip"_pair_drip.html - Dihedral-angle-corrected registry-dependent interlayer potential (DRIP)
|
||||
"eam"_pair_eam.html - embedded atom method (EAM)
|
||||
"eam/alloy"_pair_eam.html - alloy EAM
|
||||
"eam/cd"_pair_eam.html - concentration-dependent EAM
|
||||
@ -174,7 +176,7 @@ accelerated styles exist.
|
||||
"kolmogorov/crespi/full"_pair_kolmogorov_crespi_full.html - Kolmogorov-Crespi (KC) potential with no simplifications
|
||||
"kolmogorov/crespi/z"_pair_kolmogorov_crespi_z.html - Kolmogorov-Crespi (KC) potential with normals along z-axis
|
||||
"lcbop"_pair_lcbop.html - long-range bond-order potential (LCBOP)
|
||||
"lebedeva/z"_pair_lebedeva_z.html - Lebedeva inter-layer potential for graphene with normals along z-axis
|
||||
"lebedeva/z"_pair_lebedeva_z.html - Lebedeva interlayer potential for graphene with normals along z-axis
|
||||
"lennard/mdf"_pair_mdf.html - LJ potential in A/B form with a taper function
|
||||
"line/lj"_pair_line_lj.html - LJ potential between line segments
|
||||
"list"_pair_list.html - potential between pairs of atoms explicitly listed in an input file
|
||||
|
||||
@ -31,7 +31,9 @@ Pair Styles :h1
|
||||
pair_dipole
|
||||
pair_dpd
|
||||
pair_dpd_fdt
|
||||
pair_drip
|
||||
pair_dsmc
|
||||
pair_e3b
|
||||
pair_eam
|
||||
pair_edip
|
||||
pair_eff
|
||||
|
||||
@ -26,11 +26,9 @@ coefficients in a way, that it can be read by LAMMPS with the
|
||||
option of "write_data"_write_data.html this can be used to move
|
||||
the Coeffs sections from a data file into a separate file.
|
||||
|
||||
NOTE: The write_coeff command is not yet fully implemented in two
|
||||
respects. First, some pair styles do not yet write their coefficient
|
||||
information into the coeff file. This means you will need to specify
|
||||
that information in your input script that reads the data file, via
|
||||
the "pair_coeff"_pair_coeff.html command.
|
||||
NOTE: The write_coeff command is not yet fully implemented as
|
||||
some pair styles do not output their coefficient information.
|
||||
This means you will need to add/copy this information manually.
|
||||
|
||||
:line
|
||||
|
||||
|
||||