Skip to content


CRYSTAL is a general-purpose program for the study of crystalline solids, nanotubes, surfaces, molecules and polymers. The CRYSTAL program computes the electronic structure of periodic systems within Hartree-Fock, Density Functional Theory, or various hybrid approximations.

CRYSTAL is available as a module on Apocrita.


To run the default installed version of CRYSTAL, simply load the crystal17 module:

module load crystal17

Crystal should be run using temporary directories rather than shared storage as it concurrently generates a lot of small files which has an impact on the shared storage performance.

Input file naming

CRYSTAL requires that input files are named INPUT otherwise you will see the following error message: ERROR **** INPUT **** END OF DATA IN INPUT DECK.

Example job

Parallel job

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

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

module load crystal17

# Copy the input file to the local temporary directory
# and change directory to TMPDIR
cd ${TMPDIR}

# Execute the Pcrystal binary and redirect all output to
# the OUTPUT file (may be renamed)
mpirun -np ${NSLOTS} Pcrystal > OUTPUT 2>&1

# Change to the original directory and copy the OUTPUT
# file from TMPDIR
cd -