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.9
m1: MOLECULES MOL1The numerical indices of the atoms in the molecule. =1,2 MOL2The numerical indices of the atoms in the molecule. =3,4 MOL3The numerical indices of the atoms in the molecule. =5,6 MOL4The numerical indices of the atoms in the molecule. =7,8 
torsion_p: INTERMOLECULARTORSIONS MOLSThe molecules you would like to calculate the torsional angles between. =m1 SWITCHThis 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 DATAinput data from action with vessel and compute histogram =torsion_p GRID_MINcompulsory keyword 
the lower bounds for the grid =-pi GRID_MAXcompulsory keyword 
the upper bounds for the grid =pi BANDWIDTHcompulsory keyword 
the bandwidths for kernel density estimation =0.1 GRID_BINthe number of bins for the grid =200 STRIDEcompulsory keyword ( default=1 )
the frequency with which the data should be collected and added to the quantity being
averaged =1 
DUMPGRID GRIDcompulsory keyword 
the action that creates the grid you would like to output =htt_p FILEcompulsory 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.