.. index:: fix amoeba/pitorsion

fix amoeba/pitorsion command
============================

Syntax
""""""

.. code-block:: LAMMPS

   fix ID group-ID ameoba/pitorsion

* ID, group-ID are documented in :doc:`fix <fix>` command
* amoeba/pitorsion = style name of this fix command

Examples
""""""""

.. code-block:: LAMMPS

   fix            pit all amoeba/pitorsion
   read_data      proteinX.data fix pit "pitorsion types" "PiTorsion Coeffs" &
                  fix pit pitorsions PiTorsions
   fix_modify     pit energy yes

Description
"""""""""""

This command enables 6-body pitorsion interactions to be added to
simulations which use the AMOEBA and HIPPO force fields.  It matches
how the Tinker MD code computes its pitorsion interactions for the
AMOEBA and HIPPO force fields.  See the :doc:`Howto amoeba <Howto_amoeba>`
doc page for more information about the implementation of AMOEBA and HIPPO in
LAMMPS.

Pitorsion interactions add additional potential energy contributions
to 6-tuples of atoms :math:`IJKLMN` that have a bond between atoms
:math:`K` and :math:`L`, where both :math:`K` and :math:`L` are additionally
bonded to exactly two other atoms. Namely, :math:`K` is also bonded to
:math:`I` and :math:`J`, and :math:`L` is also bonded to :math:`M` and
:math:`N`.

The examples/amoeba directory has a sample input script and data file
for ubiquitin, which illustrates use of the fix amoeba/pitorsion
command.

As in the example above, this fix should be used before reading a data
file that contains a listing of pitorsion interactions.

The data file read by the :doc:`read_data <read_data>` command must
contain the topology of all the pitorsion interactions, similar to the
topology data for bonds, angles, dihedrals, etc.  Specifically, it
should have two lines like these in its header section:

.. parsed-literal::

   M pitorsion types
   N pitorsions

where :math:`N` is the number of pitorsion 6-body interactions and :math:`M` is
the number of pitorsion types.  It should also have two sections in the body
of the data file like these with :math:`M` and :math:`N` lines each:

.. parsed-literal::

   PiTorsion Coeffs

          1 6.85
          2 10.2
          [...]
          M 6.85

.. parsed-literal::

   PiTorsions

          1       1       2      4      3      20      21      24
          2       5      21     23     22      37      38      41
          [...]
          N       7      27     29     28      30      35      36

For PiTorsion Coeffs, the first column is an index from 1 to :math:`M`
to enumerate the pitorsion types.  The second column is the single
prefactor coefficient needed for each type.

For PiTorsions, the first column is an index from 1 to :math:`N` to
enumerate the pitorsion 6-atom tuples; it is ignored by LAMMPS.  The
second column is the "type" of the interaction; it is an index into
the PiTorsion Coeffs.  The remaining 6 columns are the atom IDs of the
atoms (in order) for the 6-tuple :math:`IJKLMN`, as described above.

Note that the *pitorsion types* and *pitorsions* and *PiTorsion
Coeffs* and *PiTorsions* keywords for the header and body sections of
the data file match those specified in the :doc:`read_data <read_data>`
command following the data file name.

The data file should be generated by using the
tools/tinker/tinker2lmp.py conversion script which creates a LAMMPS
data file from Tinker input files, including its PRM file which
contains the parameters necessary for computing pitorsion
interactions.

The potential energy associated with pitorsion interactions can be
output as described below.  It can also be included in the total
potential energy of the system, as output by the :doc:`thermo_style
<thermo_style>` command, if the :doc:`fix_modify energy <fix_modify>`
command is used, as in the example above.  See the note below about
how to include the pitorsion energy when performing an :doc:`energy
minimization <minimize>`.

----------

Restart, fix_modify, output, run start/stop, minimize info
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

This fix writes the list of pitorsion interactions to :doc:`binary
restart files <restart>`.  See the :doc:`read_restart <read_restart>`
command for info on how to re-specify a fix in an input script that
reads a restart file, so that the operation of the fix continues in an
uninterrupted fashion.

The :doc:`fix_modify <fix_modify>` *energy* option is supported by
this fix to add the potential energy of the pitorsion interactions to
both the global potential energy and peratom potential energies of the
system as part of :doc:`thermodynamic output <thermo_style>` or output
by the :doc:`compute pe/atom <compute_pe_atom>` command.  The default
setting for this fix is :doc:`fix_modify energy yes <fix_modify>`.

The :doc:`fix_modify <fix_modify>` *virial* option is supported by
this fix to add the contribution due to the pitorsion interactions to
both the global pressure and per-atom stress of the system via the
:doc:`compute pressure <compute_pressure>` and :doc:`compute
stress/atom <compute_stress_atom>` commands.  The former can be
accessed by :doc:`thermodynamic output <thermo_style>`.  The default
setting for this fix is :doc:`fix_modify virial yes <fix_modify>`.

This fix computes a global scalar which can be accessed by various
:doc:`output commands <Howto_output>`.  The scalar is the potential
energy discussed above.  The scalar value calculated by this fix is
"extensive".

No parameter of this fix can be used with the *start/stop* keywords of
the :doc:`run <run>` command.

The forces due to this fix are imposed during an energy minimization,
invoked by the :doc:`minimize <minimize>` command.

The :doc:`fix_modify <fix_modify>` *respa* option is supported by this
fix. This allows to set at which level of the :doc:`r-RESPA
<run_style>` integrator the fix is adding its forces. Default is the
outermost level.

.. note::

   For energy minimization, if you want the potential energy
   associated with the pitorsion terms forces to be included in the
   total potential energy of the system (the quantity being
   minimized), you MUST not disable the :doc:`fix_modify <fix_modify>`
   *energy* option for this fix.

Restrictions
""""""""""""

To function as expected this fix command must be issued *before* a
:doc:`read_data <read_data>` command but *after* a
:doc:`read_restart <read_restart>` command.

This fix can only be used if LAMMPS was built with the AMOEBA package.
See the :doc:`Build package <Build_package>` page for more info.

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

:doc:`fix_modify <fix_modify>`, :doc:`read_data <read_data>`

Default
"""""""

none
