PyFrag: Activation Strain Model Analysis
****************************************

The standalone script PyFrag allows one to analyze various quantities
along a trajectory with ADF. Usually such a trajectory results from
either an internal reaction coordinate (IRC) or a linear transit (LT)
calculation and is analyzed in the context of the Extended Activation
Strain Model (ASM).

See also: Example: Activation Strain Model Analysis using PyFrag


Requirements
============

The trajectory can thereby either be a file containing concatenated
molecular geometries in the XYZ format (see example below) or a T21
binary output file from a previous LT or IRC calculation with ADF. ASM
is based on the concept of molecular fragments, which have to be
defined by specifying the corresponding atomic indices for each
fragment. Furthermore, frequently used ADF input options can be
imported from a separate input file (see example).


Running PyFrag
==============

Running PyFrag is done by starting the corresponding Python script as
follows:

   $AMSBIN/amspython $AMSHOME/scripting/standalone/pyfrag/PyFrag.py [options]

where the details of possible "[options]" are explained in the
following


Specifying the Trajectory
=========================

The trajectory is specified by one of the following:

   --xyzpath <PATH>/trajectory.xyz
   --irct21 <PATH>/IRCtrajectory.T21
   --lt <PATH>/LTtrajectory.T21


Molecular Fragments
===================

The system can be split into an arbitrary number of disjoint
subsystems, fragments. Each fragment is defined by its own argument "
--fragment" followed by the indices of atoms in that fragment:

   --fragment 1 3 4 5 6 --fragment 2


ADF Options
===========

The settings for the ADF calculations are retrieved from either a
PyFrag-specific settings file "adfsettings" (see example).

   --adfinputfile adfsettings

or by individual command line arguments for each option, e.g.:

   --adfinput basis.type=TZ2P


Analysis Options
================

The following options control the quantities reported by PyFrag in the
final results table:

Offsets for the strain energies in kcal/mol of the fragments (one
argument for each fragment, corresponding to the order of the fragment
definition above):

   --strain <StrainEnergy Fragment1> --strain <StrainEnergy Fragment2>

Bond length between selected pairs of atoms and equilibrium offset
value in Angstrom

   --bondlength <AtomIndex1> <AtomIndex2> <offset value>

Angle between selected triples of atoms and equilibrium offset value
in degrees

   --angle <AtomIndex1> <AtomIndex2> <AtomIndex3> <offset value>

Hirshfeld charges of fragments

   --hirshfeld frag<FragmentNumber>

Atomic charges (Voronoi deformation density charges, VDD)

   --VDD  <AtomIndex1> [<AtomIndex2> [...]]

Orbital interaction energies for orbitals belonging to a point group
symmetry irrep (specified by its symbol) of the whole system

   --irrepOI <IrrepSymbol>

Orbital energies within fragments can be specified for a certain
orbital in a given irrep or specifically for HOMO and LUMO levels in
each fragment

   --orbitalenergy <IrrepSymbol> <FragmentNumber> <OrbitalIndexWithinIrrep>
   --orbitalenergy frag<FragmentNumber> HOMO
   --orbitalenergy frag<FragmentNumber> LUMO

Orbital population numbers within fragments can again be specified for
a certain orbital in an irrep or for the HOMO or LUMO in each fragment

   --population <IrrepSymbol> frag<FragmentNumber> <OrbitalIndexWithinIrrep>
   --population frag<FragmentNumber> HOMO
   --population frag<FragmentNumber> LUMO

Orbital overlaps between pairs of orbitals, e.g.

   --overlap frag<FragmentNumber> HOMO  frag<FragmentNumber> LUMO

or

   --overlap <IrrepSymbol> frag<FragmentNumber> <OrbitalIndexWithinIrrep> <IrrepSymbol> frag<FragmentNumber> <OrbitalIndexWithinIrrep>
