forked from lijiext/lammps
114 lines
4.5 KiB
Plaintext
114 lines
4.5 KiB
Plaintext
|
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
||
|
|
||
|
:link(lws,http://lammps.sandia.gov)
|
||
|
:link(ld,Manual.html)
|
||
|
:link(lc,Section_commands.html#comm)
|
||
|
|
||
|
:line
|
||
|
|
||
|
compute ti command :h3
|
||
|
|
||
|
[Syntax:]
|
||
|
|
||
|
compute ID group ti keyword args ... :pre
|
||
|
|
||
|
ID, group-ID are documented in "compute"_compute.html command :ulb,l
|
||
|
ti = style name of this compute command :l
|
||
|
one or more attribute/arg pairs may be appended :l
|
||
|
keyword = pair style (lj/cut, gauss, born, etc) or {tail} or {kspace} :l
|
||
|
pair style args = v_name1 v_name2
|
||
|
v_name1 = variable with name1 that is energy scale factor and function of lambda
|
||
|
v_name2 = variable with name2 that is derivative of v_name1 with respect to lambda
|
||
|
{tail} args = v_name1 v_name2
|
||
|
v_name1 = variable with name1 that is energy tail correction scale factor and function of lambda
|
||
|
v_name2 = variable with name2 that is derivative of v_name1 with respect to lambda
|
||
|
{kspace} args = v_name1 v_name2
|
||
|
v_name1 = variable with name1 that is K-Space scale factor and function of lambda
|
||
|
v_name2 = variable with name2 that is derivative of v_name1 with respect to lambda :pre
|
||
|
:ule
|
||
|
|
||
|
[Examples:]
|
||
|
|
||
|
compute 1 all ti lj/cut v_lj v_dlj coul/long v_c v_dc kspace v_ks v_dks :pre
|
||
|
|
||
|
[Description:]
|
||
|
|
||
|
Define a computation that calculates the derivative of the interaction
|
||
|
potential with respect to {lambda}, the coupling parameter used in a
|
||
|
thermodynamic integration. This derivative can be used to infer a
|
||
|
free energy difference resulting from an alchemical simulation, as
|
||
|
described in "Eike"_#Eike.
|
||
|
|
||
|
Typically this compute will be used in conjunction with the "fix
|
||
|
adapt"_fix_adapt.html command which can perform alchemical
|
||
|
transformations by adusting the strength of an interaction potential
|
||
|
as a simulation runs, as defined by one or more
|
||
|
"pair_style"_pair_style.html or "kspace_style"_kspace_style.html
|
||
|
commands. This scaling is done via a prefactor on the energy, forces,
|
||
|
virial calculated by the pair or K-Space style. The prefactor is
|
||
|
often a function of a {lambda} parameter which may be adjusted from 0
|
||
|
to 1 (or vice versa) over the course of a "run"_run.html. The
|
||
|
time-dependent adjustment is what the "fix adapt"_fix_adapt.html
|
||
|
command does.
|
||
|
|
||
|
Assume that the unscaled energy of a pair_style or kspace_style is
|
||
|
given by U. Then the scaled energy is
|
||
|
|
||
|
Us = f(lambda) U :pre
|
||
|
|
||
|
where f() is some function of lambda. What this compute calculates is
|
||
|
|
||
|
dUs / d(lambda) = U df(lambda)/dlambda = Us / f(lambda) df(lambda)/dlambda :pre
|
||
|
|
||
|
which is the derivative of the system's scaled potential energy Us
|
||
|
with respect to {lambda}.
|
||
|
|
||
|
To do this calculation, you provide two functions, as "equal-style
|
||
|
variables"_variable.html. The first is specified as {v_name1}, where
|
||
|
{name1} is the name of the variable, and is f(lambda) in the notation
|
||
|
above. The second is specified as {v_name2}, where {name2} is the
|
||
|
name of the variable, and is df(lambda) / dlambda in the notation
|
||
|
above. I.e. it is the analytic derivative of f() with respect to
|
||
|
lambda. Note that the {name1} variable is also typically given as an
|
||
|
argument to the "fix adapt"_fix_adapt.html command.
|
||
|
|
||
|
An alchemical simulation may use several pair potentials together,
|
||
|
invoked via the "pair_style hybrid or hybrid/overlay"_pair_hybrid.html
|
||
|
command. The total dUs/dlambda for the overall system is calculated
|
||
|
as the sum of each contributing term as listed by the keywords in the
|
||
|
compute ti command. Individual pair potentials can be listed, which
|
||
|
will be sub-styles in the hybrid case. You can also include a K-space
|
||
|
term via the {kspace} keyword. You can also include a pairwise
|
||
|
long-range tail correction to the energy via the {tail} keyword.
|
||
|
|
||
|
For each term you can specify a different (or the same) scale factor
|
||
|
by the two variables that you list. Again, these will typically
|
||
|
correspond toe the scale factors applied to these various potentials
|
||
|
and the K-Space contribution via the "fix_adapt"_fix_adapt.html
|
||
|
command.
|
||
|
|
||
|
More details about the exact functional forms for the computation of
|
||
|
du/dl can be found in the paper by "Eike"_#Eike.
|
||
|
|
||
|
[Output info:]
|
||
|
|
||
|
This compute calculates a global scalar, namely dUs/dlambda. This
|
||
|
value can be used by any command that uses a global scalar value from
|
||
|
a compute as input. See "this section"_Section_howto.html#4_15 for an
|
||
|
overview of LAMMPS output options.
|
||
|
|
||
|
The scalar value calculated by this compute is "extensive".
|
||
|
|
||
|
The scalar value will be in energy "units"_units.html.
|
||
|
|
||
|
[Restrictions:] none
|
||
|
|
||
|
[Related commands:]
|
||
|
|
||
|
"fix adapt"_fix_adapt.html
|
||
|
|
||
|
[Default:] none
|
||
|
|
||
|
:link(Eike)
|
||
|
[(Eike)] Eike and Maginn, Journal of Chemical Physics, 124, 164503 (2006).
|