Pair orientational entropy CV

The pair orientational entropy CV is an extension of the pair entropy CV to study molecular crystals. Since the CV does not assume the structure of the crystal from the start, it can be used to predict polymorphism. Here is a movie in which this CV is biased and the system explores many different polymorphs:

The source code for the plumed implementation of the CV can be found in this repository, and the relevant files are:

  • src/colvar/PairOrientationalEntropy.cpp

  • src/colvar/PairOrientationalEntropy.cpp

  • src/tools/NeighborListParallel.h

  • src/tools/NeighborListParallel.cpp

You will have to copy these files to your plumed version and recompile. Another possibility is to use my repository directly.

Let's consider urea:

We would like to construct the two pair orientational entropy CVs. The CV requires the definition of an orientation vector in order to calculate the relative orientation between two molecules. The first CV will use the C-O direction and the second will use the N-N direction:

# Define groups for the CV

C: GROUP ATOMS=1-864:8

O: GROUP ATOMS=2-864:8

N1: GROUP ATOMS=3-864:8

N2: GROUP ATOMS=6-864:8


# Define the CVs

PAIR_ORIENTATIONAL_ENTROPY ...

LABEL=s1

CENTER=C

START=C

END=O

MAXR=0.6

SIGMA=0.05,0.25

... PAIR_ORIENTATIONAL_ENTROPY


PAIR_ORIENTATIONAL_ENTROPY ...

LABEL=s2

CENTER=C

START=N1

END=N2

MAXR=0.6

SIGMA=0.05,0.125

UP_DOWN_SYMMETRY

... PAIR_ORIENTATIONAL_ENTROPY

The second CV contains the keyword UP_DOWN_SYMMETRY. This keyword takes into account the symmetry of the molecule and therefore the angle between two molecules cannot take values larger 90 degrees.

In many cases it is convenient to use the keyword LOW_COMM specially for large systems (N>100).

You can also use neighbor lists as described here.