ChemShell logo

ChemShell Tutorial

Search the manual:

Molecular mechanics calculations with DL_POLY

Defining a force field manually

ChemShell provides a topology builder for the built-in DL_POLY module which avoids the need to prepare DL_POLY input (FIELD) files. In general, input takes the form of rules for automatic typing of the atoms and for assigning force field parameters based on the types and how they are connected. An example input is pph3.chm in samples/dl_poly.

First, the initial geometry is created. As usual you can start from either Cartesians or a z-matrix as you prefer, but for a DL-FIND geometry optimisation the z-matrix must be converted into Cartesians using z_to_c.

Next, we prepare a file containing the force field definition using the read_input command. The command can be used at any point within a ChemShell script to create separate text files (similar to using "cat > file << EOF" in a shell script).

The force field definition syntax is described in detail in the ChemShell manual so we give only a brief overview here.

The query section defines specific atom types in terms of particular connectivity. In the example ipso carbon is given a special atom type (just as an illustration) by virtue of being bonded to the phosphorous atom.

query ci "ipso c" 
supergroup c
target c
atom p 
connect 1 2
endquery

The following records define the forcefield itself. For details see the manual:

bond  p  c  1000    1.6
..
angle c   c   c   100  120
...
vdw  h  h     2500  1000000
...
htor    c c c c  100   0.0  i-j-k-l
...
charge p   0.3

A DL-FIND geometry optimisation is then run using DL_POLY to calculate energy and gradients. DL_POLY is invoked with theory=dl_poly, specifying the force field definition file using the mm_defs keyword:

dl-find coords=c theory= dl_poly : {mm_defs=ff}

From the output, you can see how the atoms are assigned types, and which parameters have been used.

Using the universal force field (UFF)

In a simple case, where a bonding pattern readily defines the atom types, the UFF module can help set up the topology automatically. For an example see uff1.chm. The result is in dl-find.result.

As an example, the structure contained in nipr3.pun is here subjected to a Cartesian coordinate minimisation. The i-Pr groups were rotated, by converting all atoms to a z-matrix representation and adjusting the dihedrals until they were non-overlapping. Then the file was saved in punch-file format.

dl-find coords=nipr3.pun maxcycle=1000 theory=dl_poly : forcefield=uff

This minimises successfully.

A more difficult case is presented by an organometallic species, for example the file uff2.chm

In this case, the laborious process of specifying the bond orders and atom types has been performed "by hand". When this is done, the system can be relaxed using the UFF.

Please note that UFF support is experimental and any forcefields generated using it should be carefully checked for their validity. We do not recommend using UFF for production calculations.

Automated import of biomolecular forcefields

The DL_POLY module supports automatic importing of standard CHARMM and AMBER forcefields for biomolecules. These features are demonstrated in the later QM/MM tutorials.

Back to the ChemShell tutorial