Background

The ChemShell computational chemistry environment [1,2] provides a means of integrating quantum mechanical (QM) and molecular mechanical (MM) software packages to perform combined QM/MM calculations. The external packages are used solely for energy and gradient evaluations while ChemShell routines are used to form the combined QM/MM gradient and to handle higher-level tasks such as geometry optimisation or molecular dynamics. ChemShell calculations are controlled using scripts written in the Tcl language [3], with generic commands that hide as far as possible the details of the external programs from the user.

The QM/MM approach is particularly useful in the study of heterogeneous catalysis. ChemShell supports embedded cluster calculations [2,4] in which the bulk material or surface is represented by a finite MM cluster model, optionally with additional point charges to mimic the effect of bulk electrostatics. The active site is modelled by a high-level QM calculation with electrostatic embedding, where the cluster environment is represented by point charges in the QM Hamiltonian. This setup is intended to give an optimal balance between accuracy at the active site and computational expense.

ChemShell may be built as a serial or parallel program, although the current release (v3.3) does not contain any parallel algorithms of its own. The parallel version instead is intended to exploit any parallelism contained in the packages used to evaluate the energy and gradient. Usually the evaluation step of the calculation is by far the most computationally expensive, and so parallelisation of this step should scale well. However, on large supercomputers such as HECToR, where calculations involving thousands of cores are routine, the parallel algorithms in the external programs often do not continue to scale efficiently. In this domain we expect there to be significant gains from adding a second layer of parallelism at the ChemShell level.

Tom Keal 2010-06-29