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 ]