ChemShell logo

ChemShell Tutorial

Search the manual:


This page guides you through a series of input scripts for ChemShell. It is intended that they are followed in the order presented, so as to build up simple elements that are then re-used. At all stages, it is recommended that you find the appropriate section of the manual, available online. The manual is searchable so you should be able to take keywords from the examples.

In most cases the pages below correspond to a directory in the directory doc/tutorial/samples of your ChemShell distribution and the examples are provided there with a .chm suffix. In some cases it may be necessary to cut and paste samples from these pages if the example is not provided. Note, however, that some of the pages have shortened examples, as indicated with an ellipsis (....); these are not valid ChemShell inputs. For example:

c_create coords=test1.pun {
o  0.0  0.0 0.0

Feel free to experiment with the options and set up your own examples.

Simple Tcl

ChemShell is controlled by scripts written in the programming language Tcl. This is a more flexible and powerful approach than the input files normally used by computational chemistry codes, but does require you to know a little Tcl. Although Tcl is a simple language and very easy to pick up as you go along, it's important to take some time to familiarise yourself with the basics in order to understand how ChemShell works.

  1. tclbasics: Very basic Tcl for ChemShell

Comprehensive information on Tcl, including a more detailed tutorial, can be found at the official Tcl documentation pages.

First steps with ChemShell

This section contains a selection of ChemShell data files illustrating simple tasks such as single-point energy evaluations and geometry optimisation.

  1. setup_cartesian: Structure input using Cartesian coordinates
  2. setup_zmatrix: Structure input using internal and mixed Cartesian/internal coordinates
  3. energy: Single-point energy evaluation. This example illustrates the use of colon (":") in ChemShell commands.
  4. dl-find_xyz: Geometry optimisation with DL-FIND using Cartesian coordinates. This example illustrates how to use variables in lists (the list command).
  5. dl-find_hdlc: Geometry optimisation with DL-FIND using hybrid delocalised coordinates.
  6. dl-find_ts: Transition state search in DL-FIND, using the P-RFO and dimer methods.
  7. dl-find_neb: Reaction path optimisation in DL-FIND using the nudged elastic band method.
  8. qm: How to call external QM codes such as GAMESS-UK, NWChem and ORCA.
  9. dl_poly: Molecular mechanics using the built-in DL_POLY module.
  10. gulp: Lattice relaxation with the GULP MM code.
  11. hybrid: Simple QM/MM examples using manually defined force fields.

Advanced topics

This section illustrates how ChemShell's flexible scripting interface can be used to perform more complex tasks.

  1. pe_surface: Mapping potential energy surfaces.
  2. dynamics: The molecular dynamics driver.
  3. umbrella_sampling: A simple setup of umbrella sampling simulations and their analysis using WHAM and Umbrella Integration.

QM/MM calculations on biochemical systems

This section gives examples of QM/MM modelling using standard biomolecule force fields imported into the internal DL_POLY module.

  1. enz_charmm: A QM/MM model for an enzyme set up using CHARMM.
  2. p450_namd: A QM/MM model for a P450 enzyme set up using NAMD.
  3. smbp: Geometry optimisation using the QM/MM/SMBP method.
  4. gsbp: MD simulation using the QM/MM/GSBP method.

QM/MM calculations on solid state systems

This section gives examples of solid state QM/MM using both a covalent (with DL_POLY) and ionic (with GULP) approach.

  1. zeol1_cff: Cluster QM/MM model for a zeolite system.
  2. mgo_embed: MgO example of solid state embedding with a shell model potential.
  3. molcrys: Self-consistent protocol for QM/MM molecular crystal calculations.

Back to the manual