Index: ThirdParty/mpqc_open/src/lib/chemistry/cca/mpqccomponents.dox
===================================================================
--- ThirdParty/mpqc_open/src/lib/chemistry/cca/mpqccomponents.dox	(revision 860145ede0311b3539e419277d8ca4a3091f40b2)
+++ ThirdParty/mpqc_open/src/lib/chemistry/cca/mpqccomponents.dox	(revision 860145ede0311b3539e419277d8ca4a3091f40b2)
@@ -0,0 +1,153 @@
+
+/** \page mpqccomponents CCA Components
+
+Common Component Architecture (CCA) component wrappers, conforming to interfaces
+developed for the 
+<a href="http://www.cca-forum.org/~cca-chem">CCA Chemistry Component Toolkit</a>, 
+have been created to encapsulate some MPQC functionality.
+The following components are provided by MPQC:
+
+
+<ul>
+  <li> \ref modelfac
+  <li> \ref coormodel
+  <li> \ref evalfac
+</ul>
+
+\section modelfac 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.
+
+\subsection modelfacpp Provides Ports
+<ul>
+  <li>Chemistry.QC.ModelFactory <em>ModelFactory</em>
+</ul>
+
+\subsection modelfacup Uses Ports
+<ul>
+  <li>Chemistry.QC.MoleculeFactory <em>MoleculeFactory</em> (required)
+</ul>
+
+\subsection modelfacparam Parameters
+<ul>
+  <li><b>theory</b> The method for determining the electronic structure.
+      Defaults to HF.
+      <ul>
+         <li> <em>HF</em>  Hartree-Fock method.
+         <li> <em>B3LYP</em> Density Functional Theory (DFT) with
+              B3LYP functional.
+         <li> Use keyval input for other options.
+      </ul>
+  <li><b>basis</b> The atomic orbital basis set.  Defaults to <em>STO-3G</em>.
+      <ul>
+         <li> Any basis set defined in the MPQC package.
+         <li> Use keyval input for mixed basis sets.
+      </ul>
+   <li><b>molecule_filename</b> Path to the molecule file (see cca-chem-generic
+       documentation for format).  No default -- required.
+   <li><b>keyval_filename</b> Path to the keyval input file (see below).
+       No default -- optional.
+</ul>
+
+\subsection modelfackeyval Keyval Input
+The <b>theory</b> and <b>basis</b> 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 <tt>model</tt>.  The user-supplied keyval
+cannot contain a molecule section; the molecule section will
+be automatically inserted by the ModelFactory using the required
+<b>molecule_filename</b>.  This molecule section should be referred to as
+<tt>$:molecule</tt>.
+
+Example keyval input:
+<pre>
+  model<CLHF>:(
+    molecule=$:molecule
+    basis<GaussianBasisSet>:(
+      name = "6-31G"
+      molecule = $:molecule
+    )
+  )
+</pre>
+
+\section coormodel 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.
+
+\subsection coormodelpp Provides Ports
+<ul>
+  <li> ChemistryOpt.CoordinateModel <em>CoordinateModel</em>
+</ul>
+
+\subsection coormodelup Uses Ports
+<ul>
+  <li> Chemistry.QC.ModelFactory <em>ModelFactory</em> (required)
+  <li> Chemistry.QC.ModelFactory <em>BackupModelFactory</em> (optional)
+  <li> Chemistry.MoleculeViewer <em>MoleculeViewer</em> (optional)
+</ul>
+
+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.
+
+\subsection coormodelparam Parameters
+<ul>
+  <li><b>grad_rms</b> RMS gradient convergence criteria.  Defaults to 0.00030.
+  <li><b>grad_max</b> Max gradient convergence criteria.  Defaults to 0.00045.
+  <li><b>disp_rms</b> RMS displacement convergence criteria.  Defaults to
+      0.00120.
+  <li><b>disp_max</b> Max displacement convergence criteria.  Defaults to
+      0.00180.
+  <li><b>coordinate_type</b> Optimization coordinate type.  Defaults to
+      <em>symmetrized</em>.
+     <ul>
+       <li> <em>cartesian</em> Cartesian coordinates.
+       <li> <em>symmetrized</em> Symmetrized internal coordinates.
+       <li> <em>redundant</em> Redundant internal coordinates.
+     </ul>
+  <li><b>multiple_guess_h</b> Compute new guess Hessian at each call to
+      guess_hessian_solve() (<em>true</em>) or use guess from first iteration
+      only (<em>false</em>).  Only meaningful
+      in conjunction with solvers supporting use of dense guess Hessians
+      with limited-memory methods.  Defaults to <em>true</em>.
+  <li><b>use_current_geom</b> If <b>multiple_guess_h</b> is <em>true</em>,
+      either use the current geometry (<em>true</em>) or the geometry at
+      which the earliest correction pair used by the solver was determined
+      (<em>false</em>) when computing the guess Hessian.  Defaults to
+      <em>false</em>.
+</ul>
+
+\section evalfac 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.
+
+\subsection evalfacpp Provides Ports
+<ul>
+  <li> Chemistry.QC.GaussianBasis.IntegralEvaluatorFactory 
+       <em>IntegralEvaluatorFactory</em>
+</ul>
+
+\subsection evalfacparam Parameters
+<ul>
+  <li><b>package</b> Integral package, either <tt>intv3</tt> or <tt>cints</tt>. 
+      Defaults to <tt>intv3</tt>.
+  <li><b>integral_buffer</b> Integral buffer type, either <tt>opaque</tt> or <tt>array</tt>.
+      The <tt>opaque</tt> option uses pointers and is therefore higher performance. 
+      The <tt>array</tt> option may be used by components implemented in languages which are 
+      not pointer-aware.
+</ul>
+
+*/
