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.
module load site-local-development
- CFLAGS=’-xHost -O3 -DMPI’
- FFLAGS=’-xHost -O3 -DMPI’
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 myjob.sh
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.