some more formatting and math conversion improvements
This commit is contained in:
@ -38,7 +38,7 @@ If an error occurs, carefully go through the steps on the
|
||||
library and the :doc:`Python\_install <Python_install>` doc page about
|
||||
insuring Python can find the necessary two files it needs.
|
||||
|
||||
**Test LAMMPS and Python in serial:**
|
||||
Test LAMMPS and Python in serial:
|
||||
-------------------------------------
|
||||
|
||||
To run a LAMMPS test in serial, type these lines into Python
|
||||
@ -67,7 +67,7 @@ typed something like:
|
||||
|
||||
lmp_g++ -in in.lj
|
||||
|
||||
**Test LAMMPS and Python in parallel:**
|
||||
Test LAMMPS and Python in parallel:
|
||||
---------------------------------------
|
||||
|
||||
To run LAMMPS in parallel, assuming you have installed the
|
||||
@ -128,7 +128,7 @@ described in the PyPar documentation. The last line of your Python
|
||||
script should be pypar.finalize(), to insure MPI is shut down
|
||||
correctly.
|
||||
|
||||
**Running Python scripts:**
|
||||
Running Python scripts:
|
||||
---------------------------
|
||||
|
||||
Note that any Python script (not just for LAMMPS) can be invoked in
|
||||
|
||||
@ -155,17 +155,15 @@ simulation domain.
|
||||
|
||||
To accomplish this, if :math:`B_{ij} < B_{target}`, the :math:`C_{ij}`
|
||||
prefactor for bond *ij* is incremented on the current timestep by an
|
||||
amount proportional to the inverse of the specified *alpha* and the
|
||||
difference (:math:`B_{ij} - B_{target}`).
|
||||
Conversely if :math:`B_{ij} > B_{target}`, :math:`C_{ij}` is decremented
|
||||
by the same amount.
|
||||
This procedure is termed "boostostatting" in :ref:`(Voter2013) <Voter2013lhd>`.
|
||||
It drives all of the individual :math:`C_{ij}` to
|
||||
values such that when :math:`V^{max}_{ij}` is applied as a bias to
|
||||
bond *ij*, the resulting boost factor :math:`B_{ij}` will be close
|
||||
to :math:`B_{target}` on average.
|
||||
Thus the LHD time acceleration factor for the overall system is
|
||||
effectively *Btarget*\ .
|
||||
amount proportional to the inverse of the specified :math:`\alpha` and
|
||||
the difference (:math:`B_{ij} - B_{target}`). Conversely if
|
||||
:math:`B_{ij} > B_{target}`, :math:`C_{ij}` is decremented by the same
|
||||
amount. This procedure is termed "boostostatting" in :ref:`(Voter2013)
|
||||
<Voter2013lhd>`. It drives all of the individual :math:`C_{ij}` to
|
||||
values such that when :math:`V^{max}_{ij}` is applied as a bias to bond
|
||||
*ij*, the resulting boost factor :math:`B_{ij}` will be close to
|
||||
:math:`B_{target}` on average. Thus the LHD time acceleration factor
|
||||
for the overall system is effectively *Btarget*\ .
|
||||
|
||||
Note that in LHD, the boost factor :math:`B_{target}` is specified by the user.
|
||||
This is in contrast to global hyperdynamics (GHD) where the boost
|
||||
|
||||
@ -125,9 +125,9 @@ functions,
|
||||
Full details of the lattice-Boltzmann algorithm used can be found in
|
||||
:ref:`Mackay et al. <fluid-Mackay>`.
|
||||
|
||||
The fluid is coupled to the MD particles described by *group-ID*
|
||||
through a velocity dependent force. The contribution to the fluid
|
||||
force on a given lattice mesh site j due to MD particle alpha is
|
||||
The fluid is coupled to the MD particles described by *group-ID* through
|
||||
a velocity dependent force. The contribution to the fluid force on a
|
||||
given lattice mesh site j due to MD particle :math:`\alpha` is
|
||||
calculated as:
|
||||
|
||||
.. math::
|
||||
|
||||
@ -45,12 +45,12 @@ Examples
|
||||
fix 1 all qbmsst z 0.122 q 25 mu 0.9 tscale 0.01 damp 200 seed 35082 f_max 0.3 N_f 100 eta 1 beta 400 T_init 110 (liquid methane modeled with the REAX force field, real units)
|
||||
fix 2 all qbmsst z 72 q 40 tscale 0.05 damp 1 seed 47508 f_max 120.0 N_f 100 eta 1.0 beta 500 T_init 300 (quartz modeled with the BKS force field, metal units)
|
||||
|
||||
Two example input scripts are given, including shocked alpha quartz
|
||||
and shocked liquid methane. The input script first equilibrate an
|
||||
initial state with the quantum thermal bath at the target temperature
|
||||
and then apply the qbmsst to simulate shock compression with quantum
|
||||
nuclear correction. The following two figures plot related quantities
|
||||
for shocked alpha quartz.
|
||||
Two example input scripts are given, including shocked
|
||||
:math:`\alpha-\mathrm{quartz}` and shocked liquid methane.
|
||||
The input script first equilibrate an initial state with the quantum
|
||||
thermal bath at the target temperature and then apply the qbmsst to
|
||||
simulate shock compression with quantum nuclear correction. The
|
||||
following two figures plot related quantities for shocked alpha quartz.
|
||||
|
||||
.. image:: JPG/qbmsst_init.jpg
|
||||
:align: center
|
||||
|
||||
@ -158,7 +158,7 @@ For style *wall/morse*\ , the energy E is given by a Morse potential:
|
||||
|
||||
|
||||
In all cases, *r* is the distance from the particle to the wall at
|
||||
position *coord*\ , and Rc is the *cutoff* distance at which the
|
||||
position *coord*\ , and :math:`r_c` is the *cutoff* distance at which the
|
||||
particle and wall no longer interact. The energy of the wall
|
||||
potential is shifted so that the wall-particle interaction energy is
|
||||
0.0 at the cutoff distance.
|
||||
@ -185,10 +185,10 @@ box parameters and timestep and elapsed time. Thus it is easy to
|
||||
specify a time-dependent wall position. See examples below.
|
||||
|
||||
For the *wall/lj93* and *wall/lj126* and *wall/lj1043* styles,
|
||||
*epsilon* and *sigma* are the usual Lennard-Jones parameters, which
|
||||
:math:`\epsilon` and :math:`\sigma` are the usual Lennard-Jones parameters, which
|
||||
determine the strength and size of the particle as it interacts with
|
||||
the wall. Epsilon has energy units. Note that this *epsilon* and
|
||||
*sigma* may be different than any *epsilon* or *sigma* values defined
|
||||
the wall. Epsilon has energy units. Note that this :math:`\epsilon` and
|
||||
:math:`\sigma` may be different than any :math:`\epsilon` or :math:`\sigma` values defined
|
||||
for a pair style that computes particle-particle interactions.
|
||||
|
||||
The *wall/lj93* interaction is derived by integrating over a 3d
|
||||
@ -197,39 +197,39 @@ interaction is effectively a harder, more repulsive wall interaction.
|
||||
The *wall/lj1043* interaction is yet a different form of wall
|
||||
interaction, described in Magda et al in :ref:`(Magda) <Magda>`.
|
||||
|
||||
For the *wall/colloid* style, *R* is the radius of the colloid
|
||||
particle, *D* is the distance from the surface of the colloid particle
|
||||
to the wall (r-R), and *sigma* is the size of a constituent LJ
|
||||
particle inside the colloid particle and wall. Note that the cutoff
|
||||
distance Rc in this case is the distance from the colloid particle
|
||||
center to the wall. The prefactor *epsilon* can be thought of as an
|
||||
effective Hamaker constant with energy units for the strength of the
|
||||
colloid-wall interaction. More specifically, the *epsilon* pre-factor
|
||||
= 4 \* pi\^2 \* rho\_wall \* rho\_colloid \* epsilon \* sigma\^6, where epsilon
|
||||
and sigma are the LJ parameters for the constituent LJ
|
||||
particles. Rho\_wall and rho\_colloid are the number density of the
|
||||
constituent particles, in the wall and colloid respectively, in units
|
||||
of 1/volume.
|
||||
For the *wall/colloid* style, *R* is the radius of the colloid particle,
|
||||
*D* is the distance from the surface of the colloid particle to the wall
|
||||
(r-R), and :math:`\sigma` is the size of a constituent LJ particle
|
||||
inside the colloid particle and wall. Note that the cutoff distance Rc
|
||||
in this case is the distance from the colloid particle center to the
|
||||
wall. The prefactor :math:`\epsilon` can be thought of as an effective
|
||||
Hamaker constant with energy units for the strength of the colloid-wall
|
||||
interaction. More specifically, the :math:`\epsilon` pre-factor is
|
||||
:math:`4\pi^2 \rho_{wall} \rho_{colloid} \epsilon \sigma^6`, where
|
||||
:math:`\epsilon` and :math:`\sigma` are the LJ parameters for the
|
||||
constituent LJ particles. :math:`\rho_{wall}` and :math:`\rho_{colloid}`
|
||||
are the number density of the constituent particles, in the wall and
|
||||
colloid respectively, in units of 1/volume.
|
||||
|
||||
The *wall/colloid* interaction is derived by integrating over
|
||||
constituent LJ particles of size *sigma* within the colloid particle
|
||||
and a 3d half-lattice of Lennard-Jones 12/6 particles of size *sigma*
|
||||
constituent LJ particles of size :math:`\sigma` within the colloid particle
|
||||
and a 3d half-lattice of Lennard-Jones 12/6 particles of size :math:`\sigma`
|
||||
in the wall. As mentioned in the preceding paragraph, the density of
|
||||
particles in the wall and colloid can be different, as specified by
|
||||
the *epsilon* pre-factor.
|
||||
the :math:`\epsilon` pre-factor.
|
||||
|
||||
For the *wall/harmonic* style, *epsilon* is effectively the spring
|
||||
For the *wall/harmonic* style, :math:`\epsilon` is effectively the spring
|
||||
constant K, and has units (energy/distance\^2). The input parameter
|
||||
*sigma* is ignored. The minimum energy position of the harmonic
|
||||
:math:`\sigma` is ignored. The minimum energy position of the harmonic
|
||||
spring is at the *cutoff*\ . This is a repulsive-only spring since the
|
||||
interaction is truncated at the *cutoff*
|
||||
|
||||
For the *wall/morse* style, the three parameters are in this order:
|
||||
*D\_0* the depth of the potential, *alpha* the width parameter, and
|
||||
*r\_0* the location of the minimum. *D\_0* has energy units, *alpha*
|
||||
inverse distance units, and *r\_0* distance units.
|
||||
:math:`D_0` the depth of the potential, :math:`\alpha` the width parameter, and
|
||||
:math:`r_0` the location of the minimum. :math:`D_0` has energy units, :math:`\alpha`
|
||||
inverse distance units, and :math:`r_0` distance units.
|
||||
|
||||
For any wall, the *epsilon* and/or *sigma* and/or *alpha* parameter can
|
||||
For any wall, the :math:`\epsilon` and/or :math:`\sigma` and/or :math:`\alpha` parameter can
|
||||
be specified
|
||||
as an :doc:`equal-style variable <variable>`, in which case it should be
|
||||
specified as v\_name, where name is the variable name. As with a
|
||||
@ -253,7 +253,7 @@ time. Thus it is easy to specify a time-dependent wall interaction.
|
||||
the finite-size particles of radius R must be a distance larger than R
|
||||
from the wall position *coord*\ . The *harmonic* style is a softer
|
||||
potential and does not blow up as r -> 0, but you must use a large
|
||||
enough *epsilon* that particles always reamin on the correct side of
|
||||
enough :math:`\epsilon` that particles always reamin on the correct side of
|
||||
the wall (r > 0).
|
||||
|
||||
The *units* keyword determines the meaning of the distance units used
|
||||
|
||||
@ -87,9 +87,9 @@ is thus evaluated as:
|
||||
|
||||
where C is an energy-conversion constant, :math:`q_i` and :math:`q_j`
|
||||
are the charges on the 2 atoms, epsilon is the dielectric constant which
|
||||
can be set by the :doc:`dielectric <dielectric>` command, alpha is ion
|
||||
pair dependent damping parameter and erf() is the error-function. The
|
||||
cutoff Rc truncates the interaction distance.
|
||||
can be set by the :doc:`dielectric <dielectric>` command, :math:`\alpha`
|
||||
is the ion pair dependent damping parameter and erf() is the
|
||||
error-function. The cutoff :math:`r_c` truncates the interaction distance.
|
||||
|
||||
The style *buck6d/coul/gauss/dsf* computes the Coulomb interaction
|
||||
via the damped shifted force model described in :ref:`(Fennell) <Fennell>`
|
||||
|
||||
@ -207,7 +207,7 @@ manipulation of adding and subtracting a self term (for i = j) to the
|
||||
first and second term on the right-hand-side, respectively, and a
|
||||
small enough :math:`\alpha` damping parameter, the second term shrinks and
|
||||
the potential becomes a rapidly-converging real-space summation. With
|
||||
a long enough cutoff and small enough alpha parameter, the energy and
|
||||
a long enough cutoff and small enough :math:`\alpha` parameter, the energy and
|
||||
forces calculated by the Wolf summation method approach those of the
|
||||
Ewald sum. So it is a means of getting effective long-range
|
||||
interactions with a short-range potential.
|
||||
|
||||
@ -88,14 +88,14 @@ and three-body coefficients in the formula above:
|
||||
* B (distance units)
|
||||
* cutoffA (distance units)
|
||||
* cutoffC (distance units)
|
||||
* alpha
|
||||
* beta
|
||||
* eta
|
||||
* gamma (distance units)
|
||||
* lambda (energy units)
|
||||
* mu
|
||||
* tho
|
||||
* sigma (distance units)
|
||||
* :math:`\alpha`
|
||||
* :math:`\beta`
|
||||
* :math:`\eta`
|
||||
* :math:`\gamma` (distance units)
|
||||
* :math:`lambda` (energy units)
|
||||
* :math:`\mu`
|
||||
* :math:`\tau`
|
||||
* :math:`\sigma` (distance units)
|
||||
* Q0
|
||||
* u1
|
||||
* u2
|
||||
|
||||
@ -295,7 +295,7 @@ a self term (for i = j) to the first and second term on the
|
||||
right-hand-side, respectively, and a small enough :math:`\alpha` damping
|
||||
parameter, the second term shrinks and the potential becomes a
|
||||
rapidly-converging real-space summation. With a long enough cutoff and
|
||||
small enough alpha parameter, the energy and forces calculated by the
|
||||
small enough :math:`\alpha` parameter, the energy and forces calculated by the
|
||||
Wolf summation method approach those of the Ewald sum. So it is a means
|
||||
of getting effective long-range interactions with a short-range
|
||||
potential.
|
||||
|
||||
@ -128,7 +128,7 @@ where :math:`\alpha` gives the type of atom *i*\ , :math:`\beta` the
|
||||
type of atom *j*\ , and the coefficients *a* and *b* filter for atom
|
||||
types as specified by the user. *a* is called the central atom filter as
|
||||
it determines to which atoms the potential applies; :math:`a_{\alpha} =
|
||||
1` if the LD potential applies to atom type alpha else zero. On the
|
||||
1` if the LD potential applies to atom type :math:`\alpha` else zero. On the
|
||||
other hand, *b* is called the neighbor atom filter because it specifies
|
||||
which atom types to use in the calculation of the LD; :math:`b_{\beta} =
|
||||
1` if atom type :math:`\beta` contributes to the LD and zero otherwise.
|
||||
@ -210,12 +210,15 @@ and potential. In general, blank lines anywhere are ignored.
|
||||
----------
|
||||
|
||||
**Mixing, shift, table, tail correction, restart, info**\ :
|
||||
This pair style does not support automatic mixing. For atom type pairs alpha,
|
||||
beta and alpha != beta, even if LD potentials of type (alpha, alpha) and
|
||||
(beta, beta) are provided, you will need to explicitly provide LD potential
|
||||
types (alpha, beta) and (beta, alpha) if need be (Here, the notation (alpha,
|
||||
beta) means that alpha is the central atom to which the LD potential is applied
|
||||
and beta is the neighbor atom which contributes to the LD potential on alpha).
|
||||
This pair style does not support automatic mixing. For atom type pairs
|
||||
:math:`\alpha`, :math:`\beta` and :math:`\alpha` != :math:`\beta`, even
|
||||
if LD potentials of type (:math:`\alpha`, :math:`\alpha`) and
|
||||
(:math:`\beta`, :math:`\beta`) are provided, you will need to explicitly
|
||||
provide LD potential types (:math:`\alpha`, :math:`\beta`) and
|
||||
(:math:`\beta`, :math:`\alpha`) if need be (Here, the notation
|
||||
(:math:`\alpha`, :math:`\beta`) means that :math:`\alpha` is the central
|
||||
atom to which the LD potential is applied and :math:`\beta` is the
|
||||
neighbor atom which contributes to the LD potential on :math:`\alpha`).
|
||||
|
||||
This pair style does not support the :doc:`pair_modify <pair_modify>`
|
||||
shift, table, and tail options.
|
||||
|
||||
@ -70,9 +70,9 @@ above, or in the data file or restart files read by the
|
||||
:doc:`read_data <read_data>` or :doc:`read_restart <read_restart>`
|
||||
commands:
|
||||
|
||||
* D0 (energy units)
|
||||
* alpha (1/distance units)
|
||||
* r0 (distance units)
|
||||
* :math:`D_0` (energy units)
|
||||
* :math:`\alpha` (1/distance units)
|
||||
* :math:`r_0` (distance units)
|
||||
* cutoff (distance units)
|
||||
|
||||
The last coefficient is optional. If not specified, the global morse
|
||||
|
||||
@ -91,11 +91,11 @@ For the *peri/pmb* style:
|
||||
* c (energy/distance/volume\^2 units)
|
||||
* horizon (distance units)
|
||||
* s00 (unitless)
|
||||
* alpha (unitless)
|
||||
* :math:`\alpha` (unitless)
|
||||
|
||||
C is the effectively a spring constant for Peridynamic bonds, the
|
||||
horizon is a cutoff distance for truncating interactions, and s00 and
|
||||
alpha are used as a bond breaking criteria. The units of c are such
|
||||
:math:`\alpha` are used as a bond breaking criteria. The units of c are such
|
||||
that c/distance = stiffness/volume\^2, where stiffness is
|
||||
energy/distance\^2 and volume is distance\^3. See the users guide for
|
||||
more details.
|
||||
@ -106,10 +106,10 @@ For the *peri/lps* style:
|
||||
* G (force/area units)
|
||||
* horizon (distance units)
|
||||
* s00 (unitless)
|
||||
* alpha (unitless)
|
||||
* :math:`\alpha` (unitless)
|
||||
|
||||
K is the bulk modulus and G is the shear modulus. The horizon is a
|
||||
cutoff distance for truncating interactions, and s00 and alpha are
|
||||
cutoff distance for truncating interactions, and s00 and :math:`\alpha` are
|
||||
used as a bond breaking criteria. See the users guide for more
|
||||
details.
|
||||
|
||||
@ -119,12 +119,12 @@ For the *peri/ves* style:
|
||||
* G (force/area units)
|
||||
* horizon (distance units)
|
||||
* s00 (unitless)
|
||||
* alpha (unitless)
|
||||
* :math:`\alpha` (unitless)
|
||||
* m\_lambdai (unitless)
|
||||
* m\_taubi (unitless)
|
||||
|
||||
K is the bulk modulus and G is the shear modulus. The horizon is a
|
||||
cutoff distance for truncating interactions, and s00 and alpha are
|
||||
cutoff distance for truncating interactions, and s00 and :math:`\alpha` are
|
||||
used as a bond breaking criteria. m\_lambdai and m\_taubi are the
|
||||
viscoelastic relaxation parameter and time constant,
|
||||
respectively. m\_lambdai varies within zero to one. For very small
|
||||
@ -138,11 +138,11 @@ For the *peri/eps* style:
|
||||
* G (force/area units)
|
||||
* horizon (distance units)
|
||||
* s00 (unitless)
|
||||
* alpha (unitless)
|
||||
* :math:`\alpha` (unitless)
|
||||
* m\_yield\_stress (force/area units)
|
||||
|
||||
K is the bulk modulus and G is the shear modulus. The horizon is a
|
||||
cutoff distance and s00 and alpha are used as a bond breaking
|
||||
cutoff distance and s00 and :math:`\alpha` are used as a bond breaking
|
||||
criteria. m\_yield\_stress is the yield stress of the material. For
|
||||
details please see the description in "(Mtchell2011a)".
|
||||
|
||||
|
||||
@ -113,9 +113,9 @@ by the following commands:
|
||||
variable zblz equal 73
|
||||
pair_style hybrid/overlay &
|
||||
zbl ${zblcutinner} ${zblcutouter} snap
|
||||
pair_coeff \* \* zbl 0.0
|
||||
pair_coeff * * zbl 0.0
|
||||
pair_coeff 1 1 zbl ${zblz}
|
||||
pair_coeff \* \* snap Ta06A.snapcoeff Ta06A.snapparam Ta
|
||||
pair_coeff * * snap Ta06A.snapcoeff Ta06A.snapparam Ta
|
||||
|
||||
It is convenient to keep these commands in a separate file that can
|
||||
be inserted in any LAMMPS input script using the :doc:`include <include>`
|
||||
@ -164,8 +164,7 @@ into two passes.
|
||||
Detailed definitions for all the other keywords
|
||||
are given on the :doc:`compute sna/atom <compute_sna_atom>` doc page.
|
||||
|
||||
If *quadraticflag* is set to 1, then the SNAP energy expression includes the quadratic term,
|
||||
0.5\*B\^t.alpha.B, where alpha is a symmetric *K* by *K* matrix.
|
||||
If *quadraticflag* is set to 1, then the SNAP energy expression includes the quadratic term, 0.5\*B\^t.alpha.B, where alpha is a symmetric *K* by *K* matrix.
|
||||
The SNAP element file should contain *K*\ (\ *K*\ +1)/2 additional coefficients
|
||||
for each element, the upper-triangular elements of alpha.
|
||||
|
||||
|
||||
@ -113,7 +113,7 @@ For pair\_style *thole*\ , the following coefficients must be defined for
|
||||
each pair of atoms types via the :doc:`pair_coeff <pair_coeff>` command
|
||||
as in the example above.
|
||||
|
||||
* alpha (distance units\^3)
|
||||
* :math:`\alpha` (distance units\^3)
|
||||
* damp
|
||||
* cutoff (distance units)
|
||||
|
||||
@ -126,10 +126,10 @@ For pair style *lj/cut/thole/long*\ , the following coefficients must be
|
||||
defined for each pair of atoms types via the :doc:`pair_coeff <pair_coeff>`
|
||||
command.
|
||||
|
||||
* epsilon (energy units)
|
||||
* sigma (length units)
|
||||
* alpha (distance units\^3)
|
||||
* damps
|
||||
* :math:`\epsilon` (energy units)
|
||||
* :math:`\sigma` (length units)
|
||||
* :math:`\alpha` (distance units\^3)
|
||||
* damp
|
||||
* LJ cutoff (distance units)
|
||||
|
||||
The last two coefficients are optional and default to the global values from
|
||||
@ -168,12 +168,9 @@ are defined using
|
||||
|
||||
.. math::
|
||||
|
||||
\alpha_{ij} = \sqrt{\alpha_i\alpha_j}
|
||||
|
||||
|
||||
.. math::
|
||||
|
||||
a_{ij} = \frac 1 2 (a_i + a_j)
|
||||
\alpha_{ij} = & \sqrt{\alpha_i\alpha_j} \\
|
||||
& \\
|
||||
a_{ij} = & \frac 1 2 (a_i + a_j)
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
Reference in New Issue
Block a user