DL_POLY

DL POLY a general purpose classical molecular dynamics simulation software designed to facilitate simulations of macromolecules, polymers, ionic systems and solutions on a distributed memory parallel computer.

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 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
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

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

#!/bin/bash
#$ -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:

#!/bin/bash
#$ -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

References