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:
#!/bin/bash
#$ -cwd
#$ -j y
#$ -pe smp 4
#$ -l h_rt=1:0:0
#$ -l h_vmem=1G
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