How to Run CPMD


The CPMD code is a parallelized plane wave / pseudopotential implementation of Density Functional Theory, particularly designed for ab-initio molecular dynamics.

Version 3.15.1 of CPMD has been installed in "/share/apps/cpmd/" on Lewis.

The executables/utilities are installed under "/share/apps/cpmd/bin/". To check all the executables/scripts including CPMD programs, trajectory conversion tool, 3D-maps generation and conversion tool, power spectrum of autocorrelation function, and metadynamics free energy reconstruction tool, type

ls /share/apps/cpmd/bin/
There are both serial and parallel versions of the CPMD program. The serial version is "cpmd.x", and the parallel version is "cpmd_MPI.x".

The pseudopotential files required by CPMD are placed in "/share/apps/cpmd/lib/". There are seven pseudopotential libraries available in the directory, as detailed in the following table:

# Name Library
1 PP_LIBRARY Standard CPMD pseudopotential library
2 pseudo_extlib Extended CPMD pseudopotential library (M. Boero)
3 vdb Ultrasoft CPMD pseudopotential library (M. Boero and J. Hutter)
4 Goedecker/pade LDA Goedecker pseudopotentials
5 Goedecker/pbe Perdew-Burke-Ernzerhof Gradient Corrected
6 Goedecker/bp Becke-Perdew Gradient Corrected
7 Goedecker/blyp Becke-Lee-Yang-Parr Gradient Corrected
There is also a CPMD test suite in the "/share/apps/cpmd/CPMD-test/" directory, which includes some test examples with input and reference outputs. Users may copy those files to their own directory and learn how to run the CPMD programs.

1. Set the Environment Variable

Users may include the executables in their PATH by typing the following command so that they don't have to include the path in their commands to run the CPMD program/tools.
export PATH=$PATH:/share/apps/cpmd/bin
or add the above command to your "~/.bashrc" file.

2. Run the CPMD serial Jobs with cpmd.x

Assuming users have processed/prepared all the necessary input files for CPMD (see "/share/apps/cpmd/CPMD-test/" for examples), the command to submit an MD simulation job on lewis via LSF may look like this
bsub < jobfile
where "jobfile" is a LSF job script file that may look like this.
# Set job parameters
#BSUB -J jobname
#BSUB -oo jobname.o%J
#BSUB -eo jobname.e%J

# Start CPMD job
cpmd.x file.in /share/apps/cpmd/lib/PP_LIBRARY/ > test.out
where "jobname" is an arbitrary name users want to set, "cpmd.x" is the serial CPMD program, "file.in" is the input file, and /share/apps/cpmd/lib/PP_LIBRARY/ is the path to the pseudopotential files for all atomic species specified in "file.in". Users may also choose other pseudopotential library according to their simulated system. Afer the above job is finished, the results will be saved in "test.out".

3. Run the CPMD MPI Jobs with cpmd_MPI.x

For a paralell MPI job, the job script file might look like this
# Set job parameters
#BSUB -a openmpi
#BSUB -J jobname
#BSUB -oo jobname.o%J
#BSUB -eo jobname.e%J

# Set number of CPUs
#BSUB -n 8

# Start CPMD job
mpirun.lsf cpmd_MPI.x file.in /share/apps/cpmd/lib/PP_LIBRARY/ > test_MPI.out
where "#BSUB -a openmpi" is required for an MPI job and should not be changed by users. Here, 8 cpus are used for the job, and users may set more or fewer cpus in their jobs according to the size of simulated systems.

For more information about the usage of CPMD, see the CPMD Online Documentation.

For general information about how to submit jobs via LSF, please go to Submitting Jobs via LSF on Lewis.