INTERMOLECULARTORSIONS
This is part of the crystallization module
It is only available if you configure PLUMED with ./configure –enable-modules=crystallization . Furthermore, this feature is still being developed so take care when using it and report any problems on the mailing list.

Calculate torsion angles between vectors on adjacent molecules

This variable can be used to calculate the average torsional angles between vectors. In other words, it can be used to compute quantities like this:

\[ s = \frac{ \sum_{i \ne j} \sigma(r_{ij}) \theta_{ij} }{ \sum_{i \ne j} \sigma(r_{ij}) } \]

Here the sums run over all pairs of molecules. \(\sigma(r_{ij})\) is a switchingfunction that action on the distance between the centers of molecules \(i\) and \(j\). \(\theta_{ij}\) is then the torsional angle between an orientation vector for molecule \(i\) and molecule \(j\).

This command can be used to calculate the intermolecular torsional angles between the orientations of nearby molecules. The orientation of a molecule can be calculated by using either the MOLECULES or the PLANES commands. These two commands calculate the orientation of a bond in the molecule or the orientation of a plane containing three of the molecule's atoms. Furthermore, when we use these commands we think of molecules as objects that lie at a point in space and that have an orientation. This command calculates the torsional angles between the orientations of these objects. We can then calculates functions of a large number of these torsional angles that measures things such as the number of torsional angles that are within a particular range. Because it is often useful to only consider the torsional angles between objects that are within a certain distance of each other we can, when calculating these sums, perform a weighted sum and use a switchingfunction to ensure that we focus on molecules that are close together.

Examples

The example input below is necessarily but gives you an idea of what can be achieved using this action. The orientations and positions of four molecules are defined using the MOLECULES action as the position of the centers of mass of the two atoms specified and the direction of the vector connecting the two atoms that were specified. The torsional angles between the molecules are then calculated by the INTERMOLECULARTORSIONS command labelled torsion_p. We then compute a HISTOGRAM that shows the distribution that these torsional angles take in the structure. The weight a given torsional angle contributes to this HISTOGRAM is determined using a switchingfunction that acts on the distance between the two molecules. As such the torsional angles between molecules that are close together contribute a high weight to the histogram while the torsional angles between molecules that are far apart does not contribute to the histogram. The histogram is averaged over the whole trajectory and output once all the trajectory frames have been read.

Click on the labels of the actions for more information on what each action computes
tested on v2.8
m1: MOLECULES 
MOL1
The numerical indices of the atoms in the molecule.
=1,2
MOL2
The numerical indices of the atoms in the molecule.
=3,4
MOL3
The numerical indices of the atoms in the molecule.
=5,6
MOL4
The numerical indices of the atoms in the molecule.
=7,8 torsion_p: INTERMOLECULARTORSIONS
MOLS
The molecules you would like to calculate the torsional angles between.
=m1
SWITCH
This keyword is used if you want to employ an alternative to the continuous switching function defined above.
={RATIONAL R_0=0.25 D_0=2.0 D_MAX=3.0} htt_p: HISTOGRAM
DATA
input data from action with vessel and compute histogram
=torsion_p
GRID_MIN
compulsory keyword the lower bounds for the grid
=-pi
GRID_MAX
compulsory keyword the upper bounds for the grid
=pi
BANDWIDTH
compulsory keyword the bandwidths for kernel density estimation
=0.1
GRID_BIN
the number of bins for the grid
=200
STRIDE
compulsory keyword ( default=1 ) the frequency with which the data should be collected and added to the quantity being averaged
=1 DUMPGRID
GRID
compulsory keyword the action that creates the grid you would like to output
=htt_p
FILE
compulsory keyword ( default=density ) the file on which to write the grid.
=myhist.out
Glossary of keywords and components
The atoms involved can be specified using
MOLS The molecules you would like to calculate the torsional angles between. This should be the label/s of MOLECULES or PLANES actions. For more information on how to specify lists of atoms see Groups and Virtual Atoms
Or alternatively by using
MOLSA In this version of the input the torsional angles between all pairs of atoms including one atom from MOLSA one atom from MOLSB will be computed. This should be the label/s of MOLECULES or PLANES actions
MOLSB In this version of the input the torsional angles between all pairs of atoms including one atom from MOLSA one atom from MOLSB will be computed. This should be the label/s of MOLECULES or PLANES actions
Compulsory keywords
NN ( default=6 ) The n parameter of the switching function
MM ( default=0 ) The m parameter of the switching function; 0 implies 2*NN
D_0 ( default=0.0 ) The d_0 parameter of the switching function
R_0 The r_0 parameter of the switching function
Options
NUMERICAL_DERIVATIVES ( default=off ) calculate the derivatives for these quantities numerically
NOPBC ( default=off ) ignore the periodic boundary conditions when calculating distances
SERIAL ( default=off ) do the calculation in serial. Do not use MPI
TIMINGS ( default=off ) output information on the timings of the various parts of the calculation
LOWMEM

( default=off ) lower the memory requirements

SWITCH This keyword is used if you want to employ an alternative to the continuous switching function defined above. The following provides information on the switchingfunction that are available. When this keyword is present you no longer need the NN, MM, D_0 and R_0 keywords.