ChemShell logo

ChemShell Tutorial

Search the manual:

Molecular mechanics calculations with GULP

Running GULP from ChemShell

Unlike DL_POLY, GULP is not a built-in ChemShell module and it must be obtained separately from its developers. Once you have a licenced copy, you can run GULP either as a standalone code or as a "linked-in" ChemShell library. The ChemShell installation guide has instructions for direct linking of GULP.

GULP is then called by specifying theory=gulp.

Example GULP MM calculation

The GULP interface in ChemShell is typically used for QM/MM calculations but it is also capable of basic MM-only calculations, as in the mgo.chm example in samples/gulp.

First, a periodic crystal is defined using c_create. As before the crystal should be specified in P1 symmetry. In the example cell constants have been specified and so the geometry should be given in fractional coordinates.

c_create coords=mgo.c {
space_group
1
cell_constants angstrom
 4.211200 4.211200 4.211200 90.000000 90.000000 90.000000
coordinates
Mg    0.10000000   0.00000000   0.00000000
O    0.50000000   0.50000000  -0.50000000
Mg    0.00000000   0.50000000  -0.50000000
....
}

(Alternatively you can give cell vectors instead of cell constants, in which case a Cartesian coordinate geometry should be provided).

The next section creates a file gulp.ff containing the forcefield, in standard GULP format. There are libraries of potentials available on the UCL Materials Chemistry web site.

read_input gulp.ff {
#
#  BUSH -library of potentials for GULP
#
#  from T.S.Bush, J.D.Gale, C.R.A.Catlow and P.D. Battle
#  J. Mater Chem., 4, 831-837 (1994)
#
species
Li core  1.000
Na core  1.000
...
buckingham
Li core O shel   426.480 0.3000  0.00 0.0 10.0
Na core O shel  1271.504 0.3000  0.00 0.0 10.0
K  core O shel  3587.570 0.3000  0.00 0.0 10.0
....
spring
Mg 349.95
Ca  34.05
Sr  21.53
...
}

The force field in the example is a shell model (polarisable) field, and so we must add shells to the appropriate elements in the crystal fragment. The add_shells command does this. In our example we need to add shells to both magnesium and oxygen centres.

add_shells coords=mgo.c symbols= {O Mg}

Finally we perform a geometry optimisation with gulp as the argument to theory=. As in the DL_POLY example, we must also supply the name of the file containing the force field definition.

The structure is optimised in Cartesian coordinates. Note that ChemShell/DL-FIND does not currently support optimisation of cell constants.

dl-find coords=mgo.c theory=gulp : [ list mm_defs=gulp.ff ]

Back to the ChemShell tutorial