- Main Page
- Classes
- Files
- Related Pages

# The Source Tree

`bin`
  This directory mainly contains commands that are used to help with the compilation of SC.

`lib/basis`
  The Gaussian basis set data files are in this directory.

`lib/elisp`
  If you are an emacs user, some useful modes and C++ programming style specifications can be found here.

`lib/perl`
  Perl modules that are used by the MPQC validation suite are found here.

`src/lib/util/options`
  This contains the GetLongOpt command line argument parsing facility written by S. Manoharan, with some modifications.

`src/lib/util/ref`
  This library provides memory management for objects. See The Reference Library for more information.

`src/lib/util/container`
  This library provides container classes. Some of these classes are not very efficient and it is likely that they will be replaced by the C++ Standard Template Library (STL) when it is supported fully by more compilers. If your C++ implementation supports the STL you can configure with the `--enable-stl` option to use STL containers in place of the containers provided by this library.

`src/lib/util/misc`
  This contains a variety of independent classes that don't belong anywhere else. Here one can find classes to assist with debugging, provide information about the execution environment, help make the output prettier, maintain detailed timing information, etc.

`src/lib/util/class`
  This library provides base classes for classes that require meta-information about the class. This meta-information includes the class name, meta-information about the parent class and derived classes, pointers to functions that can create instances of the class, and so on. See The Described Class Library for more information.

`src/lib/util/keyval`
  This library provides classes that read keyword/value pairs from an input file. See The KeyVal Library for more information.

`src/lib/util/state`
  The state library provides a base class for persistent objects and classes to read and write these objects to a stream. See The State Library for more information.

`src/lib/util/group`
  This group library provides classes to utilize multiple processors of a parallel machine. Message passing, distributed shared memory, and multi-threaded models are supported. See The Group Library for more information.

`src/lib/util/render`
  This library provides a standard interface to rendering packages.

`src/lib/math/linpackd`
  This library contains double precision C versions of some of the linpack routines.

`src/lib/math/scmat`
  This library defines an abstract matrix class and supplies concrete implementations of parallel replicated and distributed matrices. See The Matrix Library for more information.

`src/lib/math/optimize`
  The optimize library provides classes to perform optimizations and base classes for objects that compute a scalar quantity as a function of several coordinates.

`src/lib/math/isosurf`
  This library can be used to compute a triangulated approximation to an isosurface.

`src/lib/math/symmetry`
  The symmetry library contains classes useful for describing point group symmetry. See The Symmetry Library for more information.

`src/lib/chemistry/molecule`
  This library has classes to describe molecules and internal molecular coordinates. A base class for classes that map the molecular coordinates to an energy is provided to permit the optimization of the molecular coordinates.

`src/lib/chemistry/solvent`
  This code can be used to describe solvated molecules.

`src/lib/chemistry/qc/basis`
  The basis library has classes that describe Gaussian basis sets and base classes for libraries that compute integrals involving these functions.

`src/lib/chemistry/qc/oint3`
  This library is comprised of machine generated code that is only used by the intv3 library.

`src/lib/chemistry/qc/intv3`
  The intv3 library computes integrals involving Gaussian basis functions.

`src/lib/chemistry/qc/wfn`
  The wfn library contains base classes for classes that, given a molecule and a basis set, compute the energy and other properties of the molecule.

`src/lib/chemistry/qc/scf`
  The scf library is used to compute self-consistent-field energies and gradients. Specializations for Hartree-Fock theory are provided.

`src/lib/chemistry/qc/dft`
  The dft library provides implementations of density functional theory energies and gradients.

`src/lib/chemistry/qc/mbpt`
  This library computes second-order perturbation theory energies and gradients.

`src/lib/chemistry/qc/psi`
  This provides an example of interfacing MPQC to an external quantum chemistry package.

`src/bin/mpqc`
  The Massively Parallel Quantum Chemistry program is in this directory. See mpqc for more information.

`src/bin/scls`
  This program lists the contents of files created by The State Library. See scls for more information.

`src/bin/scpr`
  This program prints objects contained in files created by The State Library. See scpr for more information.