Skip to content


DL POLY is a general purpose classical molecular dynamics simulation software designed to facilitate simulations of macromolecules, polymers, ionic systems and solutions.

DL_POLY is available as a module on Apocrita.


Multiple versions of DL_POLY are available on Apocrita, including versions compiled with plumed which allows free energy calculations to be performed.


To run the latest installed version of DL_POLY (without plumed), simply load the module:

module load dl_poly

Project Directory

Please ensure that you are within your project directory and the CONTROL, CONFIG and FIELD files are present before attempting to run a DL_POLY job, otherwise DL_POLY will not run.

An example running DL_POLY within the TEST01 project directory:

$ cd /<full path>/TEST01
$ ls

The file 'OUTPUT' containing the execution results will be generated in the project directory.

$ ls

error - link cell algorithm violation

This error indicates that DL_POLY was run with too many cores for the size of the simulated system, look for the following lines in the output to see recommendations for the number of cores to use:

cutoffs driven limit on largest possible decomposition: 8 nodes/domains (2,2,2)
cutoffs driven limit on largest balanced decomposition: 1 nodes/domains (1,1,1)

In this example the ideal number of cores to request would be 1, and the largest possible would be 8. We recommend using the largest possible balanced decomposition as this will provide the fastest results.

More information about domain decomposition is available in the DL_POLY manual.

Additional commands

DL_POLY provides some additional commands for managing files.

  • To restart a previously finished job, execute:
$ copy

This will result in some of the output files being renamed ready for a subsequent run of the program; New output files will be created.

  • To store all files within the project directory from the latest run:
$ store
mkdir: created directory '../data'
mkdir: created directory '../data/TEST'
'CONFIG' -> '../data/TEST/CONFIG'
'FIELD' -> '../data/TEST/FIELD'
'OUTPUT' -> '../data/TEST/OUTPUT'
'STATIS' -> '../data/TEST/STATIS'
'REVOLD' -> '../data/TEST/REVOLD'

This will store all input and output files within the project directory into the data sub-directory (if the directory ../data doesn't exist, it will create it).

  • To clean up the project directory, execute:
$ cleanup
removed 'OUTPUT'
removed 'STATIS'
removed 'REVCON'

This will erase all the output files from the previous run.

Cleanup: Potential Data Loss

Do not use this command before you have stored all your useful data, any remaining data will be deleted.

Example jobs

Serial job

This is an example of a DL_POLY job using 12 cores on an nxv node:

#$ -cwd
#$ -j y
#$ -pe smp 12
#$ -l h_rt=4:0:0
#$ -l h_vmem=2G
#$ -l node_type=nxv  # DL_POLY is compiled for [nxn nxv]

module load dl_poly
mpirun -np ${NSLOTS} DLPOLY.Z

Parallel job

This is an example of a DL_POLY job using 64 cores across two nxv nodes:

#$ -cwd
#$ -j y
#$ -pe parallel 64
#$ -l h_rt=4:0:0
#$ -l infiniband=nxv  # DL_POLY is compiled for [nxn nxv]

module load dl_poly
mpirun -np ${NSLOTS} DLPOLY.Z