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 ]