| [0b990d] | 1 | 
 | 
|---|
 | 2 | /** \page mpqccomponents CCA Components
 | 
|---|
 | 3 | 
 | 
|---|
 | 4 | Common Component Architecture (CCA) component wrappers, conforming to interfaces
 | 
|---|
 | 5 | developed for the 
 | 
|---|
 | 6 | <a href="http://www.cca-forum.org/~cca-chem">CCA Chemistry Component Toolkit</a>, 
 | 
|---|
 | 7 | have been created to encapsulate some MPQC functionality.
 | 
|---|
 | 8 | The following components are provided by MPQC:
 | 
|---|
 | 9 | 
 | 
|---|
 | 10 | 
 | 
|---|
 | 11 | <ul>
 | 
|---|
 | 12 |   <li> \ref modelfac
 | 
|---|
 | 13 |   <li> \ref coormodel
 | 
|---|
 | 14 |   <li> \ref evalfac
 | 
|---|
 | 15 | </ul>
 | 
|---|
 | 16 | 
 | 
|---|
 | 17 | \section modelfac MPQC.Chemistry_QC_ModelFactory
 | 
|---|
 | 18 | 
 | 
|---|
 | 19 | This is an implementation of the Chemistry.QC.ModelFactory interface.
 | 
|---|
 | 20 | This factory produces model objects (implementing the Chemistry.QC.Model
 | 
|---|
 | 21 | interface) based on the MPQC package.  The MPQC model allows calculation
 | 
|---|
 | 22 | of molecular energies and energy derivatives using a variety of methods.
 | 
|---|
 | 23 | 
 | 
|---|
 | 24 | \subsection modelfacpp Provides Ports
 | 
|---|
 | 25 | <ul>
 | 
|---|
 | 26 |   <li>Chemistry.QC.ModelFactory <em>ModelFactory</em>
 | 
|---|
 | 27 | </ul>
 | 
|---|
 | 28 | 
 | 
|---|
 | 29 | \subsection modelfacup Uses Ports
 | 
|---|
 | 30 | <ul>
 | 
|---|
 | 31 |   <li>Chemistry.QC.MoleculeFactory <em>MoleculeFactory</em> (required)
 | 
|---|
 | 32 | </ul>
 | 
|---|
 | 33 | 
 | 
|---|
 | 34 | \subsection modelfacparam Parameters
 | 
|---|
 | 35 | <ul>
 | 
|---|
 | 36 |   <li><b>theory</b> The method for determining the electronic structure.
 | 
|---|
 | 37 |       Defaults to HF.
 | 
|---|
 | 38 |       <ul>
 | 
|---|
 | 39 |          <li> <em>HF</em>  Hartree-Fock method.
 | 
|---|
 | 40 |          <li> <em>B3LYP</em> Density Functional Theory (DFT) with
 | 
|---|
 | 41 |               B3LYP functional.
 | 
|---|
 | 42 |          <li> Use keyval input for other options.
 | 
|---|
 | 43 |       </ul>
 | 
|---|
 | 44 |   <li><b>basis</b> The atomic orbital basis set.  Defaults to <em>STO-3G</em>.
 | 
|---|
 | 45 |       <ul>
 | 
|---|
 | 46 |          <li> Any basis set defined in the MPQC package.
 | 
|---|
 | 47 |          <li> Use keyval input for mixed basis sets.
 | 
|---|
 | 48 |       </ul>
 | 
|---|
 | 49 |    <li><b>molecule_filename</b> Path to the molecule file (see cca-chem-generic
 | 
|---|
 | 50 |        documentation for format).  No default -- required.
 | 
|---|
 | 51 |    <li><b>keyval_filename</b> Path to the keyval input file (see below).
 | 
|---|
 | 52 |        No default -- optional.
 | 
|---|
 | 53 | </ul>
 | 
|---|
 | 54 | 
 | 
|---|
 | 55 | \subsection modelfackeyval Keyval Input
 | 
|---|
 | 56 | The <b>theory</b> and <b>basis</b> parameters allow very basic calculations
 | 
|---|
 | 57 | to be performed.  More complex calculations will require the use of a
 | 
|---|
 | 58 | keyval input file.  The keyval file format is the same as that used to run
 | 
|---|
 | 59 | MPQC stand-alone, and any valid MPQC options may be used.  The molecular
 | 
|---|
 | 60 | energy object must be named <tt>model</tt>.  The user-supplied keyval
 | 
|---|
 | 61 | cannot contain a molecule section; the molecule section will
 | 
|---|
 | 62 | be automatically inserted by the ModelFactory using the required
 | 
|---|
 | 63 | <b>molecule_filename</b>.  This molecule section should be referred to as
 | 
|---|
 | 64 | <tt>$:molecule</tt>.
 | 
|---|
 | 65 | 
 | 
|---|
 | 66 | Example keyval input:
 | 
|---|
 | 67 | <pre>
 | 
|---|
 | 68 |   model<CLHF>:(
 | 
|---|
 | 69 |     molecule=$:molecule
 | 
|---|
 | 70 |     basis<GaussianBasisSet>:(
 | 
|---|
 | 71 |       name = "6-31G"
 | 
|---|
 | 72 |       molecule = $:molecule
 | 
|---|
 | 73 |     )
 | 
|---|
 | 74 |   )
 | 
|---|
 | 75 | </pre>
 | 
|---|
 | 76 | 
 | 
|---|
 | 77 | \section coormodel MPQC.ChemistryOpt_CoordinateModel
 | 
|---|
 | 78 | 
 | 
|---|
 | 79 | This is an implementation of the ChemistryOpt.CoordinateModel interface based
 | 
|---|
 | 80 | on the MPQC package.  It supports molecular structure optimization in
 | 
|---|
 | 81 | cartesian, symmetrized internal, and redundant internal coordinates.
 | 
|---|
 | 82 | Hessian approximation is supported.
 | 
|---|
 | 83 | 
 | 
|---|
 | 84 | \subsection coormodelpp Provides Ports
 | 
|---|
 | 85 | <ul>
 | 
|---|
 | 86 |   <li> ChemistryOpt.CoordinateModel <em>CoordinateModel</em>
 | 
|---|
 | 87 | </ul>
 | 
|---|
 | 88 | 
 | 
|---|
 | 89 | \subsection coormodelup Uses Ports
 | 
|---|
 | 90 | <ul>
 | 
|---|
 | 91 |   <li> Chemistry.QC.ModelFactory <em>ModelFactory</em> (required)
 | 
|---|
 | 92 |   <li> Chemistry.QC.ModelFactory <em>BackupModelFactory</em> (optional)
 | 
|---|
 | 93 |   <li> Chemistry.MoleculeViewer <em>MoleculeViewer</em> (optional)
 | 
|---|
 | 94 | </ul>
 | 
|---|
 | 95 | 
 | 
|---|
 | 96 | A backup model factory may be supplied.  If an error is detected in the
 | 
|---|
 | 97 | primary model, then a model obtained from the backup factory will be used.
 | 
|---|
 | 98 | The molecule viewer is currently only used to communicate with the
 | 
|---|
 | 99 |  python viewer, in which case component instantiation and connection
 | 
|---|
 | 100 | is handled automatically.
 | 
|---|
 | 101 | 
 | 
|---|
 | 102 | \subsection coormodelparam Parameters
 | 
|---|
 | 103 | <ul>
 | 
|---|
 | 104 |   <li><b>grad_rms</b> RMS gradient convergence criteria.  Defaults to 0.00030.
 | 
|---|
 | 105 |   <li><b>grad_max</b> Max gradient convergence criteria.  Defaults to 0.00045.
 | 
|---|
 | 106 |   <li><b>disp_rms</b> RMS displacement convergence criteria.  Defaults to
 | 
|---|
 | 107 |       0.00120.
 | 
|---|
 | 108 |   <li><b>disp_max</b> Max displacement convergence criteria.  Defaults to
 | 
|---|
 | 109 |       0.00180.
 | 
|---|
 | 110 |   <li><b>coordinate_type</b> Optimization coordinate type.  Defaults to
 | 
|---|
 | 111 |       <em>symmetrized</em>.
 | 
|---|
 | 112 |      <ul>
 | 
|---|
 | 113 |        <li> <em>cartesian</em> Cartesian coordinates.
 | 
|---|
 | 114 |        <li> <em>symmetrized</em> Symmetrized internal coordinates.
 | 
|---|
 | 115 |        <li> <em>redundant</em> Redundant internal coordinates.
 | 
|---|
 | 116 |      </ul>
 | 
|---|
 | 117 |   <li><b>multiple_guess_h</b> Compute new guess Hessian at each call to
 | 
|---|
 | 118 |       guess_hessian_solve() (<em>true</em>) or use guess from first iteration
 | 
|---|
 | 119 |       only (<em>false</em>).  Only meaningful
 | 
|---|
 | 120 |       in conjunction with solvers supporting use of dense guess Hessians
 | 
|---|
 | 121 |       with limited-memory methods.  Defaults to <em>true</em>.
 | 
|---|
 | 122 |   <li><b>use_current_geom</b> If <b>multiple_guess_h</b> is <em>true</em>,
 | 
|---|
 | 123 |       either use the current geometry (<em>true</em>) or the geometry at
 | 
|---|
 | 124 |       which the earliest correction pair used by the solver was determined
 | 
|---|
 | 125 |       (<em>false</em>) when computing the guess Hessian.  Defaults to
 | 
|---|
 | 126 |       <em>false</em>.
 | 
|---|
 | 127 | </ul>
 | 
|---|
 | 128 | 
 | 
|---|
 | 129 | \section evalfac MPQC.IntegralEvaluatorFactory
 | 
|---|
 | 130 | 
 | 
|---|
 | 131 | This is an implementation of the 
 | 
|---|
 | 132 | Chemistry.QC.GaussianBasis.IntegralEvaluatorFactory interface.
 | 
|---|
 | 133 | This factory produces molecular integral evaluator objects 
 | 
|---|
 | 134 | based on the MPQC package. 
 | 
|---|
 | 135 | This code is experimental and does not currently support derivative integrals.
 | 
|---|
 | 136 | 
 | 
|---|
 | 137 | \subsection evalfacpp Provides Ports
 | 
|---|
 | 138 | <ul>
 | 
|---|
 | 139 |   <li> Chemistry.QC.GaussianBasis.IntegralEvaluatorFactory 
 | 
|---|
 | 140 |        <em>IntegralEvaluatorFactory</em>
 | 
|---|
 | 141 | </ul>
 | 
|---|
 | 142 | 
 | 
|---|
 | 143 | \subsection evalfacparam Parameters
 | 
|---|
 | 144 | <ul>
 | 
|---|
 | 145 |   <li><b>package</b> Integral package, either <tt>intv3</tt> or <tt>cints</tt>. 
 | 
|---|
 | 146 |       Defaults to <tt>intv3</tt>.
 | 
|---|
 | 147 |   <li><b>integral_buffer</b> Integral buffer type, either <tt>opaque</tt> or <tt>array</tt>.
 | 
|---|
 | 148 |       The <tt>opaque</tt> option uses pointers and is therefore higher performance. 
 | 
|---|
 | 149 |       The <tt>array</tt> option may be used by components implemented in languages which are 
 | 
|---|
 | 150 |       not pointer-aware.
 | 
|---|
 | 151 | </ul>
 | 
|---|
 | 152 | 
 | 
|---|
 | 153 | */
 | 
|---|