Commit 59aa8a5e authored by Oliver Henrich's avatar Oliver Henrich
Browse files

Modified files according to PR

parent f9dc2b7c
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -148,6 +148,7 @@ OPT.
   * :doc:`oneway <fix_oneway>`
   * :doc:`orient/bcc <fix_orient>`
   * :doc:`orient/fcc <fix_orient>`
   * :doc:`orient/eco <fix_orient_eco>`
   * :doc:`phonon <fix_phonon>`
   * :doc:`pimd <fix_pimd>`
   * :doc:`planeforce <fix_planeforce>`
+17 −17
Original line number Diff line number Diff line
@@ -125,7 +125,7 @@ new bond. Without a restriction on the permissible angle, and for
stiffer angle potentials very large energies can arise and lead to
uncontrolled behavior.

Any bond that is created is assigned a bond type of *bondtype*.
Any bond that is created is assigned a bond type of *bondtype*

When a bond is created, data structures within LAMMPS that store bond
topology are updated to reflect the creation.  If the bond is part of
@@ -169,13 +169,13 @@ of type *angletype*\ , with parameters assigned by the corresponding
.. note::

   LAMMPS stores and maintains a data structure with a list of the
   1st, 2nd, and 3rd neighbors of each atom (within the bond topology of
   first, second, and third neighbors of each atom (within the bond topology of
   the system) for use in weighting pairwise interactions for bonded
   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
   atoms.  Note that adding a single bond always adds a new first neighbor
   but may also induce \*many\* new second and third 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 2
   size (first + second + third neighbors) of this per-atom list.  There are 2
   ways to do this.  See the :doc:`read_data <read_data>` or
   :doc:`create_box <create_box>` commands for details.

@@ -187,12 +187,12 @@ of type *angletype*\ , with parameters assigned by the corresponding
   considered for pairwise interactions, using the weighting rules set by
   the :doc:`special_bonds <special_bonds>` command.  Consider a new bond
   created between atoms I,J.  If J has a bonded neighbor K, then K
   becomes a 2nd neighbor of I.  Even if the *atype* keyword is not used
   becomes a second neighbor of I.  Even if the *atype* keyword is not used
   to create angle I-J-K, the pairwise interaction between I and K will
   be potentially turned off or weighted by the 1-3 weighting specified
   by the :doc:`special_bonds <special_bonds>` command.  This is the case
   even if the "angle yes" option was used with that command.  The same
   is true for 3rd neighbors (1-4 interactions), the *dtype* keyword, and
   is true for third neighbors (1-4 interactions), the *dtype* keyword, and
   the "dihedral yes" option used with the
   :doc:`special_bonds <special_bonds>` command.

@@ -252,12 +252,12 @@ Restrictions
""""""""""""

This fix is part of the MC package.  It is only enabled if LAMMPS was
built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
built with that package.  See the :doc:`Build package <Build_package>`
doc page for more info.

The *aconstrain* keyword is only available
when LAMMPS was built with the FixBondCreateAngle class.


Related commands
""""""""""""""""

+7 −5
Original line number Diff line number Diff line
@@ -125,16 +125,18 @@ FixBondCreate::FixBondCreate(LAMMPS *lmp, int narg, char **arg) :
      itype = force->inumeric(FLERR,arg[iarg+1]);
      if (itype < 0) error->all(FLERR,"Illegal fix bond/create command");
      iarg += 2;
    } else if (strcmp(arg[iarg],"aconstrain") == 0) {
      if (iarg+3 > narg) error->all(FLERR,"Illegal fix bond/create command");
    } else if (strcmp(arg[iarg],"aconstrain") == 0 &&
        strcmp(arg[2],"bond/create/angle") == 0) {
      if (iarg+3 > narg) 
          error->all(FLERR,"Illegal fix bond/create/angle command");
      amin = force->numeric(FLERR,arg[iarg+1]);
      amax = force->inumeric(FLERR,arg[iarg+2]);
      if (amin  >= amax)
        error->all(FLERR,"Illegal fix bond/create command");
        error->all(FLERR,"Illegal fix bond/create/angle command");
      if (amin < 0 || amin > 180)
        error->all(FLERR,"Illegal fix bond/create command");
        error->all(FLERR,"Illegal fix bond/create/angle command");
      if (amax < 0 || amax > 180)
        error->all(FLERR,"Illegal fix bond/create command");
        error->all(FLERR,"Illegal fix bond/create/angle command");
      amin = (3.14159265358979323846/180.0) * amin;
      amax = (3.14159265358979323846/180.0) * amax;
      constrainflag = 1;