Merge branch 'master' into user-cgdna
This commit is contained in:
@ -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:]
|
||||
|
||||
@ -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
112
doc/src/fix_bocs.txt
Normal 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).
|
||||
|
||||
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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.
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -20,6 +20,7 @@ Fixes :h1
|
||||
fix_ave_time
|
||||
fix_aveforce
|
||||
fix_balance
|
||||
fix_bocs
|
||||
fix_bond_break
|
||||
fix_bond_create
|
||||
fix_bond_swap
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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},
|
||||
|
||||
Reference in New Issue
Block a user