The main interface of GRACE is via a tool
control language (TCL) which is a structured programming language.
Cache technology is used to mirror either CHARMM or CHARMM functions into TCL.
The free format data structures and input/output abilities of GRACE allow it to
interface with QM packages like CADPAC, GAMESS_UK or GAUSSIAN with its own
systems or CHARMM. The most sophisticated built-in user interface is between
GRACE and CHARMM. When GRACE is using CHARMM, CHARMM is run as a ‘child
process’ to TCL. By routing all commands that are unrecognised by TCL, and all
commands that start with a capital letter into CHARMM, the programming language
of CHARMM is completely integrated into the TCL language.
CHARMM data structures, such as the position and
gradient arrays are ‘reflected’ into TCL arrays. When these arrays are accessed
in TCL, GRACE keeps track of whether the TCL arrays need updating from CHARMM.
In the reverse direction, before CHARMM performs any task, GRACE will check to
see whether it needs to update CHARMM’s data structures from TCL. This means
that the CHARMM data structures can be interfaced with the optimisers and
analysis tools in GRACE. In the work where the AM1 QM/MM method in CHARMM has
been used, GRACE has treated both the QM and MM atoms identically. It has been
the job of CHARMM to generate the appropriate QM/MM function and gradient. The
interfaces with CADPAC and GAMESS_UK is less sophisticated. It operates as part
of the ab initio QM/MM modelling method in GRACE. When the energy and
gradient of a QM/MM system is required, GRACE constructs an appropriate input
deck for either GAMESS_UK or CADPAC, runs that code and parses out the energy
and gradients from either the punch or the log file. The MM components of the
QM/MM function are then constructed via the interface with CHARMM. None of this
requires any interface with the QM/MM methodologies in CHARMM.
*Ousterhout,J.K. 1994. Tcl and Tk toolkit. Addison-Wesley ISBN
0-201-63337-X.