Commit 38075455 authored by Andrew Jewett's avatar Andrew Jewett
Browse files

new keywords for read_data: extra/X/per/atoms + changes to docs

parent fa306354
Loading
Loading
Loading
Loading
+25 −20
Original line number Diff line number Diff line
@@ -4696,9 +4696,9 @@ Self-explanatory. :dd

{Fix bond/create induced too many angles/dihedrals/impropers per atom} :dt

See the read_data command for info on setting the "extra angle per
atom", etc header values to allow for additional angles, etc to be
formed. :dd
See the read_data command for info on using the "extra/angle/per/atom",
(or dihedral, improper) keywords to allow for additional
angles, dihedrals, and impropers to be formed. :dd

{Fix bond/create needs ghost atoms from further away} :dt

@@ -7876,18 +7876,20 @@ See the setting for tagint in the src/lmptype.h file. :dd

{New bond exceeded bonds per atom in create_bonds} :dt

See the read_data command for info on setting the "extra bond per
atom" header value to allow for additional bonds to be formed. :dd
See the read_data command for info on using the "extra/bond/per/atom"
keyword to allow for additional bonds to be formed

{New bond exceeded bonds per atom in fix bond/create} :dt

See the read_data command for info on setting the "extra bond per
atom" header value to allow for additional bonds to be formed. :dd
See the read_data command for info on using the "extra/bond/per/atom"
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 for info on how to leave space in
the special bonds list to allow for additional bonds to be formed. :dd
See the "special_bonds extra" command
(or the "read_data 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

{Newton bond change after simulation box is defined} :dt

@@ -9664,9 +9666,10 @@ you are running. :dd

{Special list size exceeded in fix bond/create} :dt

See the read_data command for info on setting the "extra special per
atom" header value to allow for additional special values to be
stored. :dd
See the special_bonds extra command
(or the read_data 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

{Specified processors != physical processors} :dt

@@ -9683,23 +9686,25 @@ Self-explanatory. :dd

{Subsequent read data induced too many angles per atom} :dt

See the create_box extra/angle/per/atom or read_data "extra angle per
atom" header value to set this limit larger. :dd
See the read_data or create_box commands for info on using the
"extra/angle/per/atom" keyword to allow for additional angles to be formed :dd

{Subsequent read data induced too many bonds per atom} :dt

See the create_box extra/bond/per/atom or read_data "extra bond per
atom" header value to set this limit larger. :dd
See the read_data or create_box commands for info on using the
"extra/bond/per/atom" keyword to allow for additional bonds to be formed :dd

{Subsequent read data induced too many dihedrals per atom} :dt

See the create_box extra/dihedral/per/atom or read_data "extra
dihedral per atom" header value to set this limit larger. :dd
See the read_data or create_box commands for info on using the
"extra/dihedral/per/atom" keyword to allow for additional
dihedrals to be formed :dd

{Subsequent read data induced too many impropers per atom} :dt

See the create_box extra/improper/per/atom or read_data "extra
improper per atom" header value to set this limit larger. :dd
See the read_data or create_box commands for info on using the
"extra/improper/per/atom" keyword to allow for additional
impropers to be formed :dd

{Substitution for illegal variable} :dt

+5 −0
Original line number Diff line number Diff line
@@ -32,6 +32,11 @@ keyword = {add} or {offset} or {shift} or {extra/atom/types} or {extra/bond/type
  {extra/angle/types} arg = # of extra angle types
  {extra/dihedral/types} arg = # of extra dihedral types
  {extra/improper/types} arg = # of extra improper types
  {extra/bond/per/atom} arg = leave space for this many new bonds per atom
  {extra/angle/per/atom} arg = leave space for this many new angles per atom
  {extra/dihedral/per/atom} arg = leave space for this many new dihedrals per atom
  {extra/improper/per/atom} arg = leave space for this many new impropers per atom
  {extra/special/per/atom} arg = leave space for extra 1-2,1-3,1-4 interactions per atom
  {group} args = groupID
    groupID = add atoms in data file to this group
  {nocoeff} = ignore force field parameters
+40 −2
Original line number Diff line number Diff line
@@ -211,13 +211,51 @@ void ReadData::command(int narg, char **arg)
      if (extra_improper_types < 0)
        error->all(FLERR,"Illegal read_data command");
      iarg += 2;

    } else if (strcmp(arg[iarg],"extra/bond/per/atom") == 0) {
      if (iarg+2 > narg) error->all(FLERR,"Illegal read_data command");
      if (! atom->molecular)
        error->all(FLERR,"No bonds allowed with this atom style");
      atom->extra_bond_per_atom = force->inumeric(FLERR,arg[iarg+1]);
      if (atom->extra_bond_per_atom < 0)
        error->all(FLERR,"Illegal read_data command");
      iarg += 2;
    } else if (strcmp(arg[iarg],"extra/angle/per/atom") == 0) {
      if (iarg+2 > narg) error->all(FLERR,"Illegal read_data command");
      if (! atom->molecular)
        error->all(FLERR,"No angles allowed with this atom style");
      atom->extra_angle_per_atom = force->inumeric(FLERR,arg[iarg+1]);
      if (atom->extra_angle_per_atom < 0)
        error->all(FLERR,"Illegal read_data command");
      iarg += 2;
    } else if (strcmp(arg[iarg],"extra/dihedral/per/atom") == 0) {
      if (iarg+2 > narg) error->all(FLERR,"Illegal read_data command");
      if (! atom->molecular)
        error->all(FLERR,"No dihedrals allowed with this atom style");
      atom->extra_dihedral_per_atom = force->inumeric(FLERR,arg[iarg+1]);
      if (atom->extra_dihedral_per_atom < 0)
        error->all(FLERR,"Illegal read_data command");
      iarg += 2;
    } else if (strcmp(arg[iarg],"extra/improper/per/atom") == 0) {
      if (iarg+2 > narg) error->all(FLERR,"Illegal read_data command");
      if (! atom->molecular)
        error->all(FLERR,"No impropers allowed with this atom style");
      atom->extra_improper_per_atom = force->inumeric(FLERR,arg[iarg+1]);
      if (atom->extra_improper_per_atom < 0)
        error->all(FLERR,"Illegal read_data command");
      iarg += 2;
    } else if (strcmp(arg[iarg],"extra/special/per/atom") == 0) {
      if (iarg+2 > narg) error->all(FLERR,"Illegal read_data command");
      if (! atom->molecular)
        error->all(FLERR,"No bonded interactions allowed with this atom style");
      force->special_extra = force->inumeric(FLERR,arg[iarg+1]);
      if (force->special_extra < 0)
        error->all(FLERR,"Illegal read_data command");
      iarg += 2;
    } else if (strcmp(arg[iarg],"group") == 0) {
      if (iarg+2 > narg) error->all(FLERR,"Illegal read_data command");
      int igroup = group->find_or_create(arg[iarg+1]);
      groupbit = group->bitmask[igroup];
      iarg += 2;

    } else if (strcmp(arg[iarg],"fix") == 0) {
      if (iarg+4 > narg)
        error->all(FLERR,"Illegal read_data command");