CCA Components

Common Component Architecture (CCA) component wrappers, conforming to interfaces developed for the CCA Chemistry Component Toolkit, have been created to encapsulate some MPQC functionality.

The following components are provided by MPQC:

- MPQC.Chemistry_QC_ModelFactory
- MPQC.ChemistryOpt_CoordinateModel
- MPQC.IntegralEvaluatorFactory

# MPQC.Chemistry_QC_ModelFactory

This is an implementation of the Chemistry.QC.ModelFactory interface. This factory produces model objects (implementing the Chemistry.QC.Model interface) based on the MPQC package. The MPQC model allows calculation of molecular energies and energy derivatives using a variety of methods.

## Provides Ports

- Chemistry.QC.ModelFactory ModelFactory

## Uses Ports

- Chemistry.QC.MoleculeFactory MoleculeFactory (required)

## Parameters

- theory The method for determining the electronic structure. Defaults to HF.
  - HF Hartree-Fock method.
  - B3LYP Density Functional Theory (DFT) with B3LYP functional.
  - Use keyval input for other options.
- basis The atomic orbital basis set. Defaults to STO-3G.
  - Any basis set defined in the MPQC package.
  - Use keyval input for mixed basis sets.
- molecule_filename Path to the molecule file (see cca-chem-generic documentation for format). No default – required.
- keyval_filename Path to the keyval input file (see below). No default – optional.

## Keyval Input

The theory and basis parameters allow very basic calculations to be performed. More complex calculations will require the use of a keyval input file. The keyval file format is the same as that used to run MPQC stand-alone, and any valid MPQC options may be used. The molecular energy object must be named `model`. The user-supplied keyval cannot contain a molecule section; the molecule section will be automatically inserted by the ModelFactory using the required molecule_filename. This molecule section should be referred to as `$:molecule`.

Example keyval input:

      model<CLHF>:(
        molecule=$:molecule
        basis<GaussianBasisSet>:(
          name = "6-31G"
          molecule = $:molecule
        )
      )

# MPQC.ChemistryOpt_CoordinateModel

This is an implementation of the ChemistryOpt.CoordinateModel interface based on the MPQC package. It supports molecular structure optimization in cartesian, symmetrized internal, and redundant internal coordinates. Hessian approximation is supported.

## Provides Ports

- ChemistryOpt.CoordinateModel CoordinateModel

## Uses Ports

- Chemistry.QC.ModelFactory ModelFactory (required)
- Chemistry.QC.ModelFactory BackupModelFactory (optional)
- Chemistry.MoleculeViewer MoleculeViewer (optional)

A backup model factory may be supplied. If an error is detected in the primary model, then a model obtained from the backup factory will be used. The molecule viewer is currently only used to communicate with the python viewer, in which case component instantiation and connection is handled automatically.

## Parameters

- grad_rms RMS gradient convergence criteria. Defaults to 0.00030.
- grad_max Max gradient convergence criteria. Defaults to 0.00045.
- disp_rms RMS displacement convergence criteria. Defaults to 0.00120.
- disp_max Max displacement convergence criteria. Defaults to 0.00180.
- coordinate_type Optimization coordinate type. Defaults to symmetrized.
  - cartesian Cartesian coordinates.
  - symmetrized Symmetrized internal coordinates.
  - redundant Redundant internal coordinates.
- multiple_guess_h Compute new guess Hessian at each call to guess_hessian_solve() (true) or use guess from first iteration only (false). Only meaningful in conjunction with solvers supporting use of dense guess Hessians with limited-memory methods. Defaults to true.
- use_current_geom If multiple_guess_h is true, either use the current geometry (true) or the geometry at which the earliest correction pair used by the solver was determined (false) when computing the guess Hessian. Defaults to false.

# MPQC.IntegralEvaluatorFactory

This is an implementation of the Chemistry.QC.GaussianBasis.IntegralEvaluatorFactory interface. This factory produces molecular integral evaluator objects based on the MPQC package. This code is experimental and does not currently support derivative integrals.

## Provides Ports

- Chemistry.QC.GaussianBasis.IntegralEvaluatorFactory IntegralEvaluatorFactory

## Parameters

- package Integral package, either `intv3` or `cints`. Defaults to `intv3`.
- integral_buffer Integral buffer type, either `opaque` or `array`. The `opaque` option uses pointers and is therefore higher performance. The `array` option may be used by components implemented in languages which are not pointer-aware.