# STM: Design

# Introduction

The STM codes are a suite of application codes and AVS modules available to display both geometric structure and electronic properties. Electronic and geometrical structural information is obtained from either Density Functional Theory (DFT) or Schrödinger Theory, using a variety of computational or experimental approaches.

The STM codes are a suite of AVS/Express modules and ImmersadeskTM applications. STM can display geometric structure and electronic properties of molecules and the results of Molecular Dynamics simulations.

A set of functions to read the various file formats are in a library called libSTM. These library routines pass information from the different files to the STM codes.

- A set of file reader functions whose names begin with fgets.... There is a reader for
  1. Plain XYZ Coordinates called PlainCoord. Atom types are specified by the numerical entry in periodic table.
  2. XYZ Coordinates called coord. Atom types specified by atomic name as a character string.
  3. Gaussian© Cube Files called Cube.
  4. Brookhaven Protein Data Bank called pdb.
  5. GAMESS Coordinates via a PERL script called PGamess.
  6. GAMESS Plotting Option called Gamess Cube.
  7. MSI DCAR called Dcar.
  8. DMOL XYZ called DMOL_XYZ.
  9. Mopac Electrostatic Potential called Mopac ESP.
  10. Mopac coordinates called Mopac XYZ.
  11. MOL2 called mol2.
  12. MOL called mol.
  13. CHEM3D called Chem3d.
  14. Molecular Mechanics Code MM3 called mm3.
- Utility functions are also in libSTM:
  1. makebonds - computes distances and checks if distance is less than the threshold and creates a bond accordingly.
  2. makeatomtype - determines atomic color and weight from the atom name string. This string is also available to display atom names in the AVS/Express version.
  3. makeaminchain makeatomamin makeatomtyp_prot - make chains of protein residues from pdb file.

## AVS/Express Module Design

The AVS/Express modules output data arrays objects and uses the mesh mappers and data mappers to construct AVS Fields from the data array objects. Other array objects, such as the atom name string array object, connects to a text glyph module to display atom names. The user interface is constructed separately and appears when the application is loaded. These modules have been tested on SGI Octane running IRIX 6.5, and on W95 SR2 and Windows NT 4.0 SR3 using AVS/Express version 5.0.

## Immersadesk Application Design

Similar to the AVS/Express approach, create data arrays, but these arrays connect to OpenGL functions linked to the shared memory controlled by the CAVE libraries. These applications have been developed on an SGI Onyx system running IRIX 6.5 with version 2.6 of the CAVE libraries and track daemon.