forked from lijiext/lammps
remove special_bonds extra keyword and refer to read_data and create_box instead
This commit is contained in:
parent
2a7d2dee36
commit
c8741f3a01
|
@ -7886,8 +7886,8 @@ keyword to allow for additional bonds to be formed :dd
|
|||
|
||||
{New bond exceeded special list size in fix bond/create} :dt
|
||||
|
||||
See the "special_bonds extra" command
|
||||
(or the "read_data extra/special/per/atom" command)
|
||||
See the "read_data extra/special/per/atom" command
|
||||
(or the "create_box extra/special/per/atom" command)
|
||||
for info on how to leave space in the special bonds
|
||||
list to allow for additional bonds to be formed. :dd
|
||||
|
||||
|
@ -9666,8 +9666,8 @@ you are running. :dd
|
|||
|
||||
{Special list size exceeded in fix bond/create} :dt
|
||||
|
||||
See the special_bonds extra command
|
||||
(or the read_data extra/special/per/atom command)
|
||||
See the "read_data extra/special/per/atom" command
|
||||
(or the "create_box extra/special/per/atom" command)
|
||||
for info on how to leave space in the special bonds
|
||||
list to allow for additional bonds to be formed. :dd
|
||||
|
||||
|
|
|
@ -150,10 +150,9 @@ atoms. Note that adding a single bond always adds a new 1st neighbor
|
|||
but may also induce *many* new 2nd and 3rd neighbors, depending on the
|
||||
molecular topology of your system. The "extra special per atom"
|
||||
parameter must typically be set to allow for the new maximum total
|
||||
size (1st + 2nd + 3rd neighbors) of this per-atom list. There are 3
|
||||
size (1st + 2nd + 3rd neighbors) of this per-atom list. There are 2
|
||||
ways to do this. See the "read_data"_read_data.html or
|
||||
"create_box"_create_box.html or "special_bonds extra" commands for
|
||||
details.
|
||||
"create_box"_create_box.html commands for details.
|
||||
|
||||
NOTE: Even if you do not use the {atype}, {dtype}, or {itype}
|
||||
keywords, the list of topological neighbors is updated for atoms
|
||||
|
|
|
@ -25,9 +25,7 @@ keyword = {amber} or {charmm} or {dreiding} or {fene} or {lj/coul} or {lj} or {c
|
|||
{coul} values = w1,w2,w3
|
||||
w1,w2,w3 = weights (0.0 to 1.0) on pairwise Coulombic interactions
|
||||
{angle} value = {yes} or {no}
|
||||
{dihedral} value = {yes} or {no}
|
||||
{extra} value = N
|
||||
N = number of extra 1-2,1-3,1-4 interactions to save space for :pre
|
||||
{dihedral} value = {yes} or {no} :pre
|
||||
:ule
|
||||
|
||||
Examples:
|
||||
|
@ -36,8 +34,7 @@ special_bonds amber
|
|||
special_bonds charmm
|
||||
special_bonds fene dihedral no
|
||||
special_bonds lj/coul 0.0 0.0 0.5 angle yes dihedral yes
|
||||
special_bonds lj 0.0 0.0 0.5 coul 0.0 0.0 0.0 dihedral yes
|
||||
special_bonds lj/coul 0 1 1 extra 2 :pre
|
||||
special_bonds lj 0.0 0.0 0.5 coul 0.0 0.0 0.0 dihedral yes :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
|
@ -178,14 +175,6 @@ interaction between atoms 2 and 5 will be unaffected (full weighting
|
|||
of 1.0). If the {dihedral} keyword is specified as {no} which is the
|
||||
default, then the 2,5 interaction will also be weighted by 0.5.
|
||||
|
||||
The {extra} keyword can be used when additional bonds will be created
|
||||
during a simulation run, e.g. by the "fix
|
||||
bond/create"_fix_bond_create.html command. It can also be used if
|
||||
molecules will be added to the system, e.g. via the "fix
|
||||
deposit"_fix_deposit.html, or "fix pour"_fix_pour.html commands, which
|
||||
will have atoms with more special neighbors than any atom in the
|
||||
current system has.
|
||||
|
||||
:line
|
||||
|
||||
NOTE: LAMMPS stores and maintains a data structure with a list of the
|
||||
|
@ -194,8 +183,9 @@ the system). If new bonds are created (or molecules added containing
|
|||
atoms with more special neighbors), the size of this list needs to
|
||||
grow. Note that adding a single bond always adds a new 1st neighbor
|
||||
but may also induce *many* new 2nd and 3rd neighbors, depending on the
|
||||
molecular topology of your system. Using the {extra} keyword leaves
|
||||
empty space in the list for this N additional 1st, 2nd, or 3rd
|
||||
molecular topology of your system. Using the {extra/special/per/atom}
|
||||
keyword to either "read_data"_read_data.html or "create_box"_create_box.html
|
||||
reserves empty space in the list for this N additional 1st, 2nd, or 3rd
|
||||
neighbors to be added. If you do not do this, you may get an error
|
||||
when bonds (or molecules) are added.
|
||||
|
||||
|
@ -203,8 +193,7 @@ when bonds (or molecules) are added.
|
|||
|
||||
NOTE: If you reuse this command in an input script, you should set all
|
||||
the options you need each time. This command cannot be used a 2nd
|
||||
time incrementally, e.g. to add some extra storage locations via the
|
||||
{extra} keyword. E.g. these two commands:
|
||||
time incrementally. E.g. these two commands:
|
||||
|
||||
special_bonds lj 0.0 1.0 1.0
|
||||
special_bonds coul 0.0 0.0 1.0
|
||||
|
@ -221,25 +210,6 @@ Coul: coul 0.0 0.0 1.0
|
|||
because the LJ settings are reset to their default values
|
||||
each time the command is issued.
|
||||
|
||||
Likewise
|
||||
|
||||
special_bonds amber
|
||||
special_bonds extra 2 :pre
|
||||
|
||||
is not the same as this single command:
|
||||
|
||||
special_bonds amber extra 2 :pre
|
||||
|
||||
since in the former case, the 2nd command will reset all the LJ and
|
||||
Coulombic weights to 0.0 (the default).
|
||||
|
||||
One exception to this rule is the {extra} option itself. It is not
|
||||
reset to its default value of 0 each time the special_bonds command is
|
||||
invoked. This is because it can also be set by the
|
||||
"read_data"_read_data.html and "create_box"_create_box.html commands,
|
||||
so this command will not override those settings unless you explicitly
|
||||
use {extra} as an option.
|
||||
|
||||
[Restrictions:] none
|
||||
|
||||
[Related commands:]
|
||||
|
|
|
@ -176,12 +176,13 @@ By recognizing the fix {drude}, LAMMPS will find and store matching
|
|||
DC-DP pairs and will treat DP as equivalent to their DC in the
|
||||
{special bonds} relations. It may be necessary to extend the space
|
||||
for storing such special relations. In this case extra space should
|
||||
be reserved by using the {extra} keyword of the {special_bonds}
|
||||
be reserved by using the {extra/special/per/atom} keyword of either
|
||||
the "read_data"_read_data.html or "create_box"_create_box.html
|
||||
command. With our phenol, there is 1 more special neighbor for which
|
||||
space is required. Otherwise LAMMPS crashes and gives the required
|
||||
value.
|
||||
|
||||
special_bonds lj/coul 0.0 0.0 0.5 extra 1 :pre
|
||||
read_data data-p.lmp extra/special/per/atom 1 :pre
|
||||
|
||||
Let us assume we want to run a simple NVT simulation at 300 K. Note
|
||||
that Drude oscillators need to be thermalized at a low temperature in
|
||||
|
|
|
@ -833,10 +833,6 @@ void Force::set_special(int narg, char **arg)
|
|||
else if (strcmp(arg[iarg+1],"yes") == 0) special_dihedral = 1;
|
||||
else error->all(FLERR,"Illegal special_bonds command");
|
||||
iarg += 2;
|
||||
} else if (strcmp(arg[iarg],"extra") == 0) {
|
||||
if (iarg+2 > narg) error->all(FLERR,"Illegal special_bonds command");
|
||||
special_extra = atoi(arg[iarg+1]);
|
||||
iarg += 2;
|
||||
} else error->all(FLERR,"Illegal special_bonds command");
|
||||
}
|
||||
|
||||
|
@ -844,8 +840,6 @@ void Force::set_special(int narg, char **arg)
|
|||
if (special_lj[i] < 0.0 || special_lj[i] > 1.0 ||
|
||||
special_coul[i] < 0.0 || special_coul[i] > 1.0)
|
||||
error->all(FLERR,"Illegal special_bonds command");
|
||||
|
||||
if (special_extra < 0) error->all(FLERR,"Illegal special_bonds command");
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
|
|
|
@ -1867,7 +1867,6 @@ void Input::special_bonds()
|
|||
double coul3 = force->special_coul[3];
|
||||
int angle = force->special_angle;
|
||||
int dihedral = force->special_dihedral;
|
||||
int extra = force->special_extra;
|
||||
|
||||
force->set_special(narg,arg);
|
||||
|
||||
|
@ -1877,8 +1876,7 @@ void Input::special_bonds()
|
|||
if (lj2 != force->special_lj[2] || lj3 != force->special_lj[3] ||
|
||||
coul2 != force->special_coul[2] || coul3 != force->special_coul[3] ||
|
||||
angle != force->special_angle ||
|
||||
dihedral != force->special_dihedral ||
|
||||
extra != force->special_extra) {
|
||||
dihedral != force->special_dihedral) {
|
||||
Special special(lmp);
|
||||
special.build();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue