GULP is a program for performing a variety of types of simulation on materials using boundary conditions of 0-D (molecules and clusters), 1-D (polymers), 2-D (surfaces, slabs and grain boundaries), or 3-D (periodic solids). The focus of the code is on analytical solutions, through the use of lattice dynamics, where possible, rather than on molecular dynamics. A variety of force fields can be used within GULP spanning the shell model for ionic materials, molecular mechanics for organic systems, the embedded atom model for metals and the reactive REBO potential for hydrocarbons. Analytic derivatives are included up to at least second order for most force fields, and to third order for many.

Web Page

Official Webpage







module load site-local-development
Build Details

Compiled with:

module load gulp/4.3.2/1
Parallel versus Serial Caveat

Note although the gulp code is parallelised it does not permit the parallel execution of energy minimisation calculations, due in part to their linear nature. If an attempt is made to run such a job on more than one core the calculation will immediately terminate citing

!! ERROR : Second derivatives unavailable in parallel

Traditionally these calculations are fairly small and are carried out en-masse (10-1000 at a time) on high throughput systems and you should see advice on highthroughput for more information.

Example Job Scripts
#!/bin/bash -l
#SBATCH --job-name=a_job_name_eg_test_gulp
#SBATCH --time=12:00:00
#SBATCH --account=replace_this_with_your_project_account_name
#SBATCH --partition=compute
module purge
module load gulp/4.3.2/1
cd $HOME/where_i_put_my_data
mpirun -np $SLURM_NTASKS gulp command_line_arguments_here

This should be submitted as

sbatch --ntasks=some_number

where some_number is how parallel you with the run to be. SLURM will work out how many nodes are required based on the partition and parallelism required.