Skip to content

DL_POLY

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.

Versions

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

Usage

To run the default 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
CONFIG  CONTROL  FIELD
$ DLPOLY.Z

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

$ ls
CONFIG  CONTROL  FIELD  OUTPUT  REVCON  REVIVE  STATIS

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
'CONFIG' -> 'CONFIG.OLD'
'REVCON' -> 'CONFIG'
'REVIVE' -> 'REVOLD'

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'
'CONTROL' -> '../data/TEST/CONTROL'
'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

Here is an example job running on 4 cores and 4G of memory on a node which supports the AVX2 cpu instruction set:

#!/bin/bash
#$ -cwd
#$ -j y
#$ -pe smp 4
#$ -l h_rt=1:0:0
#$ -l h_vmem=1G
#$ -l avx2

module load dl_poly

mpirun -np ${NSLOTS} DLPOLY.Z

Parallel job

Here is an example job running on 96 cores across 2 ddy nodes with MPI:

#!/bin/bash
#$ -cwd
#$ -j y
#$ -pe parallel 96
#$ -l infiniband=ddy-i
#$ -l h_rt=240:0:0

module load dl_poly

mpirun -np ${NSLOTS} DLPOLY.Z

References