Merge branch 'master' into user-cgdna

This commit is contained in:
Oliver Henrich
2018-05-07 18:19:24 +01:00
79 changed files with 8561 additions and 935 deletions

View File

@ -122,6 +122,7 @@ Package, Description, Doc page, Example, Library
Package, Description, Doc page, Example, Library
"USER-ATC"_#USER-ATC, atom-to-continuum coupling, "fix atc"_fix_atc.html, USER/atc, int
"USER-AWPMD"_#USER-AWPMD, wave-packet MD, "pair_style awpmd/cut"_pair_awpmd.html, USER/awpmd, int
"USER-BOCS"_#USER-BOCS, BOCS bottom up coarse graining, "fix bocs"_fix_bocs.html, USER/bocs, -
"USER-CGDNA"_#USER-CGDNA, coarse-grained DNA force fields, src/USER-CGDNA/README, USER/cgdna, -
"USER-CGSDK"_#USER-CGSDK, SDK coarse-graining model, "pair_style lj/sdk"_pair_sdk.html, USER/cgsdk, -
"USER-COLVARS"_#USER-COLVARS, collective variables library, "fix colvars"_fix_colvars.html, USER/colvars, int
@ -1625,6 +1626,43 @@ examples/USER/awpmd :ul
:line
USER-BOCS package :link(USER-BOCS),h4
[Contents:]
This package provides "fix bocs"_fix_bocs.html, a modified version
of "fix npt"_fix_nh.html which includes the pressure correction to
the barostat as outlined in:
N. J. H. Dunn and W. G. Noid, "Bottom-up coarse-grained models that
accurately describe the structure, pressure, and compressibility of
molecular liquids," J. Chem. Phys. 143, 243148 (2015).
[Authors:] Nicholas J. H. Dunn and Michael R. DeLyser (The Pennsylvania State University)
[Install or un-install:]
make yes-user-bocs
make machine :pre
make no-user-bocs
make machine :pre
[Supporting info:]
The USER-BOCS user package for LAMMPS is part of the BOCS software package:
"https://github.com/noid-group/BOCS"_https://github.com/noid-group/BOCS
See the following reference for information about the entire package:
Dunn, NJH; Lebold, KM; DeLyser, MR; Rudzinski, JF; Noid, WG.
"BOCS: Bottom-Up Open-Source Coarse-Graining Software."
J. Phys. Chem. B. 122, 13, 3363-3377 (2018).
Example inputs are in the examples/USER/bocs folder.
:line
USER-CGDNA package :link(USER-CGDNA),h4
[Contents:]

View File

@ -10,19 +10,29 @@ compute ackland/atom command :h3
[Syntax:]
compute ID group-ID ackland/atom :pre
compute ID group-ID ackland/atom keyword/value :pre
ID, group-ID are documented in "compute"_compute.html command
ackland/atom = style name of this compute command :ul
ID, group-ID are documented in "compute"_compute.html command :ulb,l
ackland/atom = style name of this compute command :l
zero or more keyword/value pairs may be appended :l
keyword = {legacy} :l
{legacy} yes/no = use ({yes}) or do not use ({no}) legacy ackland algorithm implementation :pre
:ule
[Examples:]
compute 1 all ackland/atom :pre
compute 1 all ackland/atom
compute 1 all ackland/atom legacy yes :pre
[Description:]
Defines a computation that calculates the local lattice structure
according to the formulation given in "(Ackland)"_#Ackland.
Historically, LAMMPS had two, slightly different implementations of
the algorithm from the paper. With the {legacy} keyword, it is
possible to switch between the pre-2015 ({legacy yes}) and post-2015
implemention ({legacy no}). The post-2015 variant is the default.
In contrast to the "centro-symmetry
parameter"_compute_centro_atom.html this method is stable against
@ -66,7 +76,8 @@ integers defined above.
"compute centro/atom"_compute_centro_atom.html
[Default:] none
[Default:]
The keyword {legacy} defaults to {no}.
:line

112
doc/src/fix_bocs.txt Normal file
View File

@ -0,0 +1,112 @@
<"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
fix bocs command :h3
[Syntax:]
fix ID group-ID bocs keyword values ... :pre
keyword = {temp} or {cgiso} or {analytic} or {linear_spline} or {cubic_spline}
{temp} values = Tstart Tstop Tdamp
{cgiso} values = Pstart Pstop Pdamp
{basis set}
{analytic} values = V_avg N_particles N_coeff Coeff_1 Coeff_2 ... Coeff_N
{linear_spline} values = input_filename
{cubic_spline} values = input_filename :pre
:ule
[Examples:]
fix 1 all bocs temp 300.0 300.0 100.0 cgiso 0.986 0.986 1000.0 analytic 66476.015 968 2 245030.10 8962.20 :pre
fix 1 all bocs temp 300.0 300.0 100.0 cgiso 0.986 0.986 1000.0 cubic_spline input_Fv.dat :pre
thermo_modify press 1_press :pre
[Description:]
These commands incorporate a pressure correction as described by
Dunn and Noid in "(Dunn1)"_#bocs-Dunn1 to the standard MTTK
barostat by Martyna et. al. in "(Martyna)"_#bocs-Martyna .
The first half of the command mimics a standard fix npt command:
fix 1 all bocs temp Tstart Tstop Tcoupl cgiso Pstart Pstop Pdamp :pre
The two differences are replacing {npt} with {bocs}, and replacing
{iso}/{aniso}/{etc} with {cgiso}.
The rest of the command details what form you would like to use for
the pressure correction equation. The choices are: {analytic}, {linear_spline},
or {cubic_spline}.
With either spline method, the only argument that needs to follow it
is the name of a file that contains the desired pressure correction
as a function of volume. The file should be formatted so each line has:
Volume_i, PressureCorrection_i :pre
Note both the COMMA and the SPACE separating the volume's
value and its corresponding pressure correction. The volumes in the file
should be uniformly spaced. Both the volumes and the pressure corrections
should be provided in the proper units, e.g. if you are using {units real},
the volumes should all be in cubic angstroms, and the pressure corrections
should all be in atomspheres. Furthermore, the table should start/end at a
volume considerably smaller/larger than you expect your system to sample
during the simulation. If the system ever reaches a volume outside of the
range provided, the simulation will stop.
With the {analytic} option, the arguments are as follows:
... analytic V_avg N_particles N_coeff Coeff_1 Coeff_2 ... Coeff_N :pre
Note that {V_avg} and {Coeff_i} should all be in the proper units, e.g. if you
are using {units real}, {V_avg} should be in cubic angstroms, and the
coefficients should all be in atmospheres * cubic angstroms.
[Restrictions:]
As this is computing a (modified) pressure, group-ID should be {all}.
The pressure correction has only been tested for use with an isotropic
pressure coupling in 3 dimensions.
By default, LAMMPS will still report the normal value for the pressure
if the pressure is printed via a {thermo} command, or if the pressures
are written to a file every so often. In order to have LAMMPS report the
modified pressure, you must include the {thermo_modify} command given in
the examples. For the last argument in the command, you should put
XXXX_press, where XXXX is the ID given to the fix bocs command (in the
example, the ID of the fix bocs command is 1 ).
This fix is part of the USER-BOCS package. It is only enabled if
LAMMPS was built with that package. See the "Making
LAMMPS"_Section_start.html#start_3 section for more info.
[Related:]
For more details about the pressure correction and the entire BOCS software
package, visit the "BOCS package on github"_bocsgithub and read the release
paper by Dunn et. al. "(Dunn2)"_#bocs-Dunn2 .
:link(bocsgithub,https://github.com/noid-group/BOCS)
:line
:link(bocs-Dunn1)
[(Dunn1)] Dunn and Noid, J Chem Phys, 143, 243148 (2015).
:link(bocs-Martyna)
[(Martyna)] Martyna, Tobias, and Klein, J Chem Phys, 101, 4177 (1994).
:link(bocs-Dunn2)
[(Dunn2)] Dunn, Lebold, DeLyser, Rudzinski, and Noid, J. Phys. Chem. B, 122, 3363 (2018).

View File

@ -11,9 +11,9 @@ fix bond/react command :h3
[Syntax:]
fix ID group-ID bond/react common_keyword values ...
react react-ID react-group-ID Nevery Rmin template-ID(pre-reacted) template-ID(post-reacted) map_file individual_keyword values ...
react react-ID react-group-ID Nevery Rmin template-ID(pre-reacted) template-ID(post-reacted) map_file individual_keyword values ...
react react-ID react-group-ID Nevery Rmin template-ID(pre-reacted) template-ID(post-reacted) map_file individual_keyword values ...
react react-ID react-group-ID Nevery Rmin Rmax template-ID(pre-reacted) template-ID(post-reacted) map_file individual_keyword values ...
react react-ID react-group-ID Nevery Rmin Rmax template-ID(pre-reacted) template-ID(post-reacted) map_file individual_keyword values ...
react react-ID react-group-ID Nevery Rmin Rmax template-ID(pre-reacted) template-ID(post-reacted) map_file individual_keyword values ...
... :pre
ID, group-ID are documented in "fix"_fix.html command. Group-ID is ignored. :ulb,l
@ -24,12 +24,13 @@ common_keyword = {stabilization}
{stabilization} values = group-ID xmax
group-ID = user-assigned ID of an internally-created dynamic group that excludes reacting atoms, and can be used by a subsequent time integration fix such as nvt, npt, or nve (cannot be 'all')
{xmax} value = distance
distance = xmax value that is used by an internally created "nve/limit"_nve_limit.html integrator
distance = xmax value that is used by an internally created "nve/limit"_fix_nve_limit.html integrator
react = mandatory argument indicating new reaction specification
react-ID = user-assigned name for the reaction
react-group-ID = only atoms in this group are available for the reaction
Nevery = attempt reaction every this many steps :l
Rmin = bonding pair atoms separated by less than Rmin can initiate reaction (distance units) :l
Rmin = bonding pair atoms must be separated by more than Rmin to initiate reaction (distance units) :l
Rmax = bonding pair atoms must be separated by less than Rmax to initiate reaction (distance units) :l
template-ID(pre-reacted) = ID of a molecule template containing pre-reaction topology :l
template-ID(post-reacted) = ID of a molecule template containing post-reaction topology :l
map_file = name of file specifying corresponding atomIDs in the pre- and post-reacted templates :l
@ -46,15 +47,15 @@ react = mandatory argument indicating new reaction specification
molecule mol1 pre_reacted_topology.txt
molecule mol2 post_reacted_topology.txt
fix 5 all bond/react stabilization no react myrxn1 all 1 3.25 mol1 mol2 map_file.txt
fix 5 all bond/react stabilization no react myrxn1 all 1 0 3.25 mol1 mol2 map_file.txt
molecule mol1 pre_reacted_rxn1.txt
molecule mol2 post_reacted_rxn1.txt
molecule mol3 pre_reacted_rxn2.txt
molecule mol4 post_reacted_rxn2.txt
fix 5 all bond/react stabilization yes nvt_grp .03 &
react myrxn1 all 1 3.25 mol1 mol2 map_file_rxn1.txt prob 0.50 12345 &
react myrxn2 all 1 2.75 mol3 mol4 map_file_rxn2.txt prob 0.25 12345
react myrxn1 all 1 0 3.25 mol1 mol2 map_file_rxn1.txt prob 0.50 12345 &
react myrxn2 all 1 0 2.75 mol3 mol4 map_file_rxn2.txt prob 0.25 12345
fix 6 nvt_grp nvt temp 300 300 100 # system-wide thermostat must be defined after bond/react :pre
[Description:]
@ -101,9 +102,14 @@ The group-ID set using the {stabilization} keyword should be a
previously unused group-ID. The fix bond/react command creates a
"dynamic group"_group.html of this name that excludes reacting atoms.
This dynamic group-ID should then be used by a subsequent system-wide
time integrator, as shown in the second example above. It is necessary
to place the time integration command after the fix bond/react command
due to the internal dynamic grouping performed by fix bond/react.
time integrator, as shown in the second example above. It is currently
necessary to place the time integration command after the fix
bond/react command due to the internal dynamic grouping performed by
fix bond/react.
NOTE: The internally created group currently applies to all atoms in
the system, i.e. you should generally not have a separate thermostat
which acts on the 'all' group.
The following comments pertain to each 'react' argument:
@ -118,21 +124,20 @@ modified to match the post-reaction template.
A bonding atom pair will be identified if several conditions are met.
First, a pair of atoms within the specified react-group-ID of type
typei and typej must be within a distance Rmin of each other. The atom
types typei and typej are specified in the pre- and post-reaction
templates. The distance calculation uses the pair neighbor list,
therefore bonded neighbor exclusions may prevent a reaction between
1st, 2nd or 3rd bonded neighbor atoms. If multiple bonding atom pairs
are identified for an atom, the closest bonding atom partner is set as
its "nearest" bonding partner. Then, if both an atomi and atomj have
each other as their nearest bonding partners, these two atoms are
identified as the bonding atom pair of the reaction site. Once this
unique bonding atom pair is identified for each reaction, there could
two or more reactions that involve a given atom on the same timestep.
If this is the case, only one such reaction is permitted to occur.
This reaction is chosen randomly from all potential reactions. This
capability allows e.g. for different reaction pathways to proceed from
identical reaction sites with user-specified probabilities.
typei and typej must separated by a distance between Rmin and Rmax. It
is possible that multiple bonding atom pairs are identified: if the
bonding atoms in the pre-reacted template are not 1-2, 1-3, or 1-4
neighbors, the closest bonding atom partner is set as its bonding
partner; otherwise, the farthest potential partner is chosen. Then, if
both an atomi and atomj have each other as their nearest bonding
partners, these two atoms are identified as the bonding atom pair of
the reaction site. Once this unique bonding atom pair is identified
for each reaction, there could two or more reactions that involve a
given atom on the same timestep. If this is the case, only one such
reaction is permitted to occur. This reaction is chosen randomly from
all potential reactions. This capability allows e.g. for different
reaction pathways to proceed from identical reaction sites with
user-specified probabilities.
The pre-reacted molecule template is specified by a molecule command.
This molecule template file contains a sample reaction site and its
@ -262,9 +267,11 @@ angles, dihedrals or impropers are supported.
A few capabilities to note: 1) You may specify as many 'react'
arguments as desired. For example, you could break down a complicated
reaction mechanism into several reaction steps, each defined by its
own 'react' argument. 2) While typically a bond is formed between the
bonding atom pairs specified in the pre-reacted molecule template,
this is not required.
own 'react' argument. 2) While typically a bond is formed or removed
between the bonding atom pairs specified in the pre-reacted molecule
template, this is not required. 3) By reversing the order of the pre-
and post- reacted molecule templates in another 'react' argument, you
can allow for the possibility of one or more reverse reactions.
The optional keywords deal with the probability of a given reaction
occurring as well as the stable equilibration of each reaction site as
@ -300,14 +307,14 @@ reaction:
fix 1 bond_react_MASTER_group temp/rescale 1 300 300 10 1
NOTE: This command must be added after the fix bond/react command, and
will apply to all reaction steps.
will apply to all reactions.
Computationally, each timestep this fix operates, it loops over
neighbor lists and computes distances between pairs of atoms in the
list. It also communicates between neighboring processors to
coordinate which bonds are created. All of these operations increase
the cost of a timestep. Thus you should be cautious about invoking
this fix too frequently.
neighbor lists (for bond-forming reactions) and computes distances
between pairs of atoms in the list. It also communicates between
neighboring processors to coordinate which bonds are created and/or
removed. All of these operations increase the cost of a timestep. Thus
you should be cautious about invoking this fix too frequently.
You can dump out snapshots of the current bond topology via the dump
local command.

View File

@ -154,7 +154,7 @@ Note: The temperature thermostating the core-Drude particle pairs
should be chosen low enough, so as to mimic as closely as possible the
self-consistent minimization. It must however be high enough, so that
the dipoles can follow the local electric field exerted by the
neighbouring atoms. The optimal value probably depends on the
neighboring atoms. The optimal value probably depends on the
temperature of the centers of mass and on the mass of the Drude
particles.

View File

@ -24,10 +24,12 @@ keyword = {bond} or {angle} or {dihedral} :l
atom1,atom2,atom3 = IDs of 3 atoms in angle, atom2 = middle atom
Kstart,Kstop = restraint coefficients at start/end of run (energy units)
theta0 = equilibrium angle theta (degrees)
{dihedral} args = atom1 atom2 atom3 atom4 Kstart Kstop phi0
{dihedral} args = atom1 atom2 atom3 atom4 Kstart Kstop phi0 keyword/value
atom1,atom2,atom3,atom4 = IDs of 4 atoms in dihedral in linear order
Kstart,Kstop = restraint coefficients at start/end of run (energy units)
phi0 = equilibrium dihedral angle phi (degrees) :pre
phi0 = equilibrium dihedral angle phi (degrees)
keyword/value = optional keyword value pairs. supported keyword/value pairs:
{mult} n = dihedral multiplicity n (integer >= 0, default = 1) :pre
:ule
[Examples:]
@ -155,11 +157,13 @@ associated with the restraint is
with the following coefficients:
K (energy)
n = 1
n (multiplicity, >= 0)
d (degrees) = phi0 + 180 :ul
K and phi0 are specified with the fix. Note that the value of n is
hard-wired to 1. Also note that the energy will be a minimum when the
K and phi0 are specified with the fix. Note that the value of the
dihedral multiplicity {n} is set by default to 1. You can use the
optional {mult} keyword to set it to a different positive integer.
Also note that the energy will be a minimum when the
current dihedral angle phi is equal to phi0.
:line

View File

@ -20,6 +20,7 @@ Fixes :h1
fix_ave_time
fix_aveforce
fix_balance
fix_bocs
fix_bond_break
fix_bond_create
fix_bond_swap

View File

@ -135,6 +135,7 @@ fix_ave_histo.html
fix_ave_time.html
fix_aveforce.html
fix_balance.html
fix_bocs.html
fix_bond_break.html
fix_bond_create.html
fix_bond_react.html

View File

@ -38,7 +38,7 @@ This shift is achieved by the last term in the equation for {Vij} above.
This potential is intended for interactions between two layers of graphene.
Therefore, to avoid interaction between layers in multi-layered materials,
each layer should have a separate atom type and interactions should only
be computed between atom types of neighbouring layers.
be computed between atom types of neighboring layers.
The parameter file (e.g. CC.KC), is intended for use with metal
"units"_units.html, with energies in meV. An additional parameter, {S},