Quantum Chemical Calculations

NOTE: Postprocessors have been written for the following programs:

These postprocessors are not complete (in that they do not cover every kind of possible output) nor are they definitive. We are developing a virtual consortium to produce more robust versions of these and other QChem programs. Where possible we will collaborate with the program author(s) to add CML as an output format to the programs.

QChem is an area where terminology is important and the virtual consortium will be developing a hyperglossary to support the effort. Volunteers or contributions are welcome, especially for trying to normalise terms across the different programs.

Note also that Units are important here as a wide variety is used and many programs do not explicitly add units. Energies can be in calories, joules or hartrees and distances in meters, angstroms or bohrs. Markup can be very valuable here and application programs should be able to convert between units.

(The CML files output for these examples are NOT complete - this is because chunks of information have been omitted by the postprocessor. Some of the real numbers have also lost precision - this is simply due to the limitations of JDK1.0 in dealing with formats and not a problem with CML. These problems will disappear.)

A simple Gaussian94 run

This was a simple SCF convergence using Gaussian94. JUMBO has postprocessed the output, and the TOC shows the convergence history. The occupied energy levels are also shown, the most obvious effects being the large difference in the energy for the different atoms.

Although not shown, the postprocessor is able to skip chunks of output if requested and the use of the '#p' keyword (which gives a history of which modules/links were used) is highly recommended. These links form natural containing objects (XLISTs) in the CML file.

A simple GAMESS run

This was a simple SCF convergence using GAMESS (US version). It's very similar to the Gaussian document - it's simply a matter of writing a postprocessor.

MOPAC and normal coordinates

In this example mopac.mop) MOPAC has been used to calculate the vibrational eigenanalysis for a planar cyclohexane (a highly energetic conformational transition state.) (No geometry optimisation was done so the numbers shouldn't be taken too seriously).

The parser has extracted the coordinates (ATOMS), some of the thermodynamic properties, and the Normal Coordinate Analysis. There are 48 (=18*3-6) normal modes (of which the first 3 have negative eigenvalues, corresponding to the degeneracy of the transition state). All eigenvectors are held as 54-dimensional ARRAYs (most have been hidden on the screenshot).

The reader has selected one of the eigenvectors and asked JUMBO to interpret it as a set of atomic displacement vectors (a 'molecular object'). This has been added to the display and is shown as a series of atomic displacements (arbitrary scale) corresponding to the low energy B1g wagging mode. This can be animated if required :-).

VAMP and Hyperactive 13C assignments

In this example, VAMP has been used to calculate the 13C chemical shifts for a medium-sized molecule. The first screenshot shows the large number of calculated properties, including the 13C spectrum, displayed as a BAR graph (all lines of equal intensity). Note also the Eigenvalues which have been displayed as a graph, showing the gap between occupied and unoccupied orbitals.

The next shot shows a very powerful feature of CML which is worth inspecting in the CML file (vamp.cml).

The 13C peaks correspond directly to atoms and this can be extracted from the raw output by the postprocessor. This correspondence is represented by a set of RELATIONs ("Assignments") between CML objects. (In this case the RELATION is between subobjects - peaks in the spectrum (an XLIST) and atoms in the molecule (MOL)).

There is no restriction on the semantics of a RELATION, and in this case JUMBO shows them by highlighting the subaddress in each object. For atoms this is an increase in size, for peaks it is a different colour and background. Clicking on the "Peak"s in turn gives a hyperactive link between the two components, and this technology is very general.

Back to index
© Peter Murray-Rust, 1996, 1997