Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 247b28499c443e092731ffba814075f2 > files > 1122

mpqc-html-2.3.1-9mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>MPQC: gaussbas.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
    </ul>
  </div>
<h1>gaussbas.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//</span>
<a name="l00002"></a>00002 <span class="comment">// gaussbas.h</span>
<a name="l00003"></a>00003 <span class="comment">//</span>
<a name="l00004"></a>00004 <span class="comment">// Copyright (C) 1996 Limit Point Systems, Inc.</span>
<a name="l00005"></a>00005 <span class="comment">//</span>
<a name="l00006"></a>00006 <span class="comment">// Author: Curtis Janssen &lt;cljanss@limitpt.com&gt;</span>
<a name="l00007"></a>00007 <span class="comment">// Maintainer: LPS</span>
<a name="l00008"></a>00008 <span class="comment">//</span>
<a name="l00009"></a>00009 <span class="comment">// This file is part of the SC Toolkit.</span>
<a name="l00010"></a>00010 <span class="comment">//</span>
<a name="l00011"></a>00011 <span class="comment">// The SC Toolkit is free software; you can redistribute it and/or modify</span>
<a name="l00012"></a>00012 <span class="comment">// it under the terms of the GNU Library General Public License as published by</span>
<a name="l00013"></a>00013 <span class="comment">// the Free Software Foundation; either version 2, or (at your option)</span>
<a name="l00014"></a>00014 <span class="comment">// any later version.</span>
<a name="l00015"></a>00015 <span class="comment">//</span>
<a name="l00016"></a>00016 <span class="comment">// The SC Toolkit is distributed in the hope that it will be useful,</span>
<a name="l00017"></a>00017 <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00018"></a>00018 <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span>
<a name="l00019"></a>00019 <span class="comment">// GNU Library General Public License for more details.</span>
<a name="l00020"></a>00020 <span class="comment">//</span>
<a name="l00021"></a>00021 <span class="comment">// You should have received a copy of the GNU Library General Public License</span>
<a name="l00022"></a>00022 <span class="comment">// along with the SC Toolkit; see the file COPYING.LIB.  If not, write to</span>
<a name="l00023"></a>00023 <span class="comment">// the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.</span>
<a name="l00024"></a>00024 <span class="comment">//</span>
<a name="l00025"></a>00025 <span class="comment">// The U.S. Government is granted a limited license as per AL 91-7.</span>
<a name="l00026"></a>00026 <span class="comment">//</span>
<a name="l00027"></a>00027 
<a name="l00028"></a>00028 <span class="preprocessor">#ifndef _chemistry_qc_basis_gaussbas_h</span>
<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#define _chemistry_qc_basis_gaussbas_h</span>
<a name="l00030"></a>00030 <span class="preprocessor"></span>
<a name="l00031"></a>00031 <span class="preprocessor">#ifdef __GNUC__</span>
<a name="l00032"></a>00032 <span class="preprocessor"></span><span class="preprocessor">#pragma interface</span>
<a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00034"></a>00034 <span class="preprocessor"></span>
<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;vector&gt;</span>
<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;iostream&gt;</span>
<a name="l00037"></a>00037 
<a name="l00038"></a>00038 <span class="preprocessor">#include &lt;util/state/state.h&gt;</span>
<a name="l00039"></a>00039 <span class="preprocessor">#include &lt;util/keyval/keyval.h&gt;</span>
<a name="l00040"></a>00040 <span class="preprocessor">#include &lt;math/scmat/matrix.h&gt;</span>
<a name="l00041"></a>00041 <span class="preprocessor">#include &lt;math/scmat/vector3.h&gt;</span>
<a name="l00042"></a>00042 <span class="preprocessor">#include &lt;chemistry/molecule/molecule.h&gt;</span>
<a name="l00043"></a>00043 
<a name="l00044"></a>00044 <span class="keyword">namespace </span>sc {
<a name="l00045"></a>00045 
<a name="l00046"></a>00046 <span class="keyword">class </span>GaussianShell;
<a name="l00047"></a>00047 <span class="keyword">class </span>BasisFileSet;
<a name="l00048"></a>00048 <span class="keyword">class </span>Integral;
<a name="l00049"></a>00049 
<a name="l00050"></a>00050 <span class="keyword">class </span>CartesianIter;
<a name="l00051"></a>00051 <span class="keyword">class </span>SphericalTransformIter;
<a name="l00052"></a>00052 
<a name="l00145"></a><a class="code" href="classsc_1_1GaussianBasisSet.html">00145</a> <span class="keyword">class </span><a class="code" href="classsc_1_1GaussianBasisSet.html" title="The GaussianBasisSet class is used describe a basis set composed of atomic gaussian...">GaussianBasisSet</a>: <span class="keyword">public</span> <a class="code" href="classsc_1_1SavableState.html" title="Base class for objects that can save/restore state.">SavableState</a>
<a name="l00146"></a>00146 {
<a name="l00147"></a>00147   <span class="keyword">private</span>:
<a name="l00148"></a>00148     <span class="comment">// nonnull if keyword "name" was provided</span>
<a name="l00149"></a>00149     <span class="keywordtype">char</span>* name_;
<a name="l00150"></a>00150     <span class="comment">// same as name_ if name_!=0, else something else</span>
<a name="l00151"></a>00151     <span class="keywordtype">char</span>* label_;
<a name="l00152"></a>00152     <a class="code" href="classsc_1_1GaussianShell.html" title="A Gaussian orbital shell.">GaussianShell</a>** shell_;
<a name="l00153"></a>00153     std::vector&lt;int&gt; shell_to_function_;
<a name="l00154"></a>00154     std::vector&lt;int&gt; function_to_shell_;
<a name="l00155"></a>00155 
<a name="l00156"></a>00156     <a class="code" href="classsc_1_1Ref.html">Ref&lt;Molecule&gt;</a> molecule_;
<a name="l00157"></a>00157 
<a name="l00158"></a>00158     <a class="code" href="classsc_1_1Ref.html">Ref&lt;SCMatrixKit&gt;</a> matrixkit_;
<a name="l00159"></a>00159     <a class="code" href="classsc_1_1Ref.html">Ref&lt;SCMatrixKit&gt;</a> so_matrixkit_;
<a name="l00160"></a>00160     <a class="code" href="classsc_1_1RefSCDimension.html" title="The RefSCDimension class is a smart pointer to an SCDimension specialization.">RefSCDimension</a> basisdim_;
<a name="l00161"></a>00161 
<a name="l00162"></a>00162     <span class="keywordtype">int</span> ncenter_;
<a name="l00163"></a>00163 
<a name="l00164"></a>00164     std::vector&lt;int&gt; shell_to_center_;
<a name="l00165"></a>00165     std::vector&lt;int&gt; shell_to_primitive_;
<a name="l00166"></a>00166     std::vector&lt;int&gt; center_to_shell_;
<a name="l00167"></a>00167     std::vector&lt;int&gt; center_to_nshell_;
<a name="l00168"></a>00168     std::vector&lt;int&gt; center_to_nbasis_;
<a name="l00169"></a>00169 
<a name="l00170"></a>00170     <span class="keywordtype">int</span> nshell_;
<a name="l00171"></a>00171     <span class="keywordtype">int</span> nbasis_;
<a name="l00172"></a>00172     <span class="keywordtype">int</span> nprim_;
<a name="l00173"></a>00173     <span class="keywordtype">bool</span> has_pure_;
<a name="l00174"></a>00174 
<a name="l00175"></a>00175     <a class="code" href="classsc_1_1GaussianBasisSet.html" title="The GaussianBasisSet class is used describe a basis set composed of atomic gaussian...">GaussianBasisSet</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classsc_1_1GaussianBasisSet.html#3ba5ec206b5b54b65ccdd3c6c076a7b2" title="Return the name of the basis set (is nonnull only if keyword &amp;quot;name&amp;quot; was...">name</a>, <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classsc_1_1GaussianBasisSet.html#cb0d3d07183c4851ef28963537019006" title="Return the label of the basis set.">label</a>, <span class="keyword">const</span> <a class="code" href="classsc_1_1Ref.html">Ref&lt;Molecule&gt;</a>&amp; <a class="code" href="classsc_1_1GaussianBasisSet.html#fbf4412a25c32b3b8d6975587b1d4bc3" title="Return the Molecule object.">molecule</a>,
<a name="l00176"></a>00176                      <span class="keyword">const</span> <a class="code" href="classsc_1_1Ref.html">Ref&lt;SCMatrixKit&gt;</a>&amp; <a class="code" href="classsc_1_1GaussianBasisSet.html#d8da790554ea38b47a1854145e0fedc9" title="Returns the SCMatrixKit that is to be used for AO bases.">matrixkit</a>,
<a name="l00177"></a>00177                      <span class="keyword">const</span> <a class="code" href="classsc_1_1RefSCDimension.html" title="The RefSCDimension class is a smart pointer to an SCDimension specialization.">RefSCDimension</a>&amp; <a class="code" href="classsc_1_1GaussianBasisSet.html#2c8cc56d931c84679711db74facfcdff" title="Returns the SCDimension object for the dimension.">basisdim</a>,
<a name="l00178"></a>00178                      <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#7cfb021ed660160e7aa603f474c8bbb2" title="Return the number of centers.">ncenter</a>, <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#45fe96869a61e28949ac5934043248d1" title="Return the number of shells.">nshell</a>,
<a name="l00179"></a>00179                      <a class="code" href="classsc_1_1GaussianShell.html" title="A Gaussian orbital shell.">GaussianShell</a>** <a class="code" href="classsc_1_1GaussianBasisSet.html#b3b1541e18c78f038fb11791dfd28015" title="Return a reference to GaussianShell number i.">shell</a>,
<a name="l00180"></a>00180                      <span class="keyword">const</span> std::vector&lt;int&gt;&amp; center_to_nshell);
<a name="l00181"></a>00181 
<a name="l00182"></a>00182     <span class="comment">// Counts shells in this basis for this chemical element</span>
<a name="l00183"></a>00183     <span class="keywordtype">int</span> count_shells_(<a class="code" href="classsc_1_1Ref.html">Ref&lt;KeyVal&gt;</a>&amp; keyval, <span class="keyword">const</span> <span class="keywordtype">char</span>* elemname, <span class="keyword">const</span> <span class="keywordtype">char</span>* sbasisname, BasisFileSet&amp; bases,
<a name="l00184"></a>00184                       <span class="keywordtype">int</span> havepure, <span class="keywordtype">int</span> pure, <span class="keywordtype">bool</span> missing_ok);
<a name="l00185"></a>00185     <span class="comment">// Constructs this basis</span>
<a name="l00186"></a>00186     <span class="keywordtype">void</span> get_shells_(<span class="keywordtype">int</span>&amp; ishell, <a class="code" href="classsc_1_1Ref.html">Ref&lt;KeyVal&gt;</a>&amp; keyval, <span class="keyword">const</span> <span class="keywordtype">char</span>* elemname, <span class="keyword">const</span> <span class="keywordtype">char</span>* sbasisname, BasisFileSet&amp; bases,
<a name="l00187"></a>00187                      <span class="keywordtype">int</span> havepure, <span class="keywordtype">int</span> pure, <span class="keywordtype">bool</span> missing_ok);
<a name="l00188"></a>00188     <span class="comment">// Counts shells in an even-tempered primitive basis</span>
<a name="l00189"></a>00189     <span class="keywordtype">int</span> count_even_temp_shells_(<a class="code" href="classsc_1_1Ref.html">Ref&lt;KeyVal&gt;</a>&amp; keyval, <span class="keyword">const</span> <span class="keywordtype">char</span>* elemname, <span class="keyword">const</span> <span class="keywordtype">char</span>* sbasisname,
<a name="l00190"></a>00190                                 <span class="keywordtype">int</span> havepure, <span class="keywordtype">int</span> pure);
<a name="l00191"></a>00191     <span class="comment">// Constructs an even-tempered primitive basis</span>
<a name="l00192"></a>00192     <span class="keywordtype">void</span> get_even_temp_shells_(<span class="keywordtype">int</span>&amp; ishell, <a class="code" href="classsc_1_1Ref.html">Ref&lt;KeyVal&gt;</a>&amp; keyval, <span class="keyword">const</span> <span class="keywordtype">char</span>* elemname, <span class="keyword">const</span> <span class="keywordtype">char</span>* sbasisname,
<a name="l00193"></a>00193                                <span class="keywordtype">int</span> havepure, <span class="keywordtype">int</span> pure);
<a name="l00194"></a>00194     <span class="comment">// Constructs basis set specified as an array of shells</span>
<a name="l00195"></a>00195     <span class="keywordtype">void</span> recursively_get_shell(<span class="keywordtype">int</span>&amp;,<a class="code" href="classsc_1_1Ref.html">Ref&lt;KeyVal&gt;</a>&amp;,
<a name="l00196"></a>00196                                <span class="keyword">const</span> <span class="keywordtype">char</span>*,<span class="keyword">const</span> <span class="keywordtype">char</span>*,BasisFileSet&amp;,
<a name="l00197"></a>00197                                <span class="keywordtype">int</span>,<span class="keywordtype">int</span>,<span class="keywordtype">int</span>,<span class="keywordtype">bool</span> missing_ok);
<a name="l00198"></a>00198 
<a name="l00199"></a>00199     <span class="keywordtype">void</span> init(<a class="code" href="classsc_1_1Ref.html">Ref&lt;Molecule&gt;</a>&amp;,<a class="code" href="classsc_1_1Ref.html">Ref&lt;KeyVal&gt;</a>&amp;,
<a name="l00200"></a>00200               BasisFileSet&amp;,
<a name="l00201"></a>00201               <span class="keywordtype">int</span> have_userkeyval,
<a name="l00202"></a>00202               <span class="keywordtype">int</span> pure);
<a name="l00203"></a>00203     <span class="keywordtype">void</span> init2(<span class="keywordtype">int</span> skip_ghosts=0,<span class="keywordtype">bool</span> include_q=0);
<a name="l00204"></a>00204     
<a name="l00205"></a>00205   <span class="keyword">protected</span>:
<a name="l00206"></a>00206     <a class="code" href="classsc_1_1GaussianBasisSet.html" title="The GaussianBasisSet class is used describe a basis set composed of atomic gaussian...">GaussianBasisSet</a>(<span class="keyword">const</span> <a class="code" href="classsc_1_1GaussianBasisSet.html" title="The GaussianBasisSet class is used describe a basis set composed of atomic gaussian...">GaussianBasisSet</a>&amp;);
<a name="l00207"></a>00207     <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_matrixkit(<span class="keyword">const</span> <a class="code" href="classsc_1_1Ref.html">Ref&lt;SCMatrixKit&gt;</a>&amp;);
<a name="l00208"></a>00208     
<a name="l00209"></a>00209   <span class="keyword">public</span>:
<a name="l00211"></a><a class="code" href="classsc_1_1GaussianBasisSet_1_1ValueData.html">00211</a>     <span class="keyword">class </span><a class="code" href="classsc_1_1GaussianBasisSet_1_1ValueData.html" title="This holds scratch data needed to compute basis function values.">ValueData</a> {
<a name="l00212"></a>00212       <span class="keyword">protected</span>:
<a name="l00213"></a>00213         <a class="code" href="classsc_1_1CartesianIter.html" title="CartesianIter gives the ordering of the Cartesian functions within a shell for the...">CartesianIter</a> **civec_;
<a name="l00214"></a>00214         <a class="code" href="classsc_1_1SphericalTransformIter.html" title="This iterates through the components of a SphericalTransform.">SphericalTransformIter</a> **sivec_;
<a name="l00215"></a>00215         <span class="keywordtype">int</span> maxam_;
<a name="l00216"></a>00216       <span class="keyword">public</span>:
<a name="l00217"></a>00217         <a class="code" href="classsc_1_1GaussianBasisSet_1_1ValueData.html" title="This holds scratch data needed to compute basis function values.">ValueData</a>(<span class="keyword">const</span> <a class="code" href="classsc_1_1Ref.html">Ref&lt;GaussianBasisSet&gt;</a> &amp;, <span class="keyword">const</span> <a class="code" href="classsc_1_1Ref.html">Ref&lt;Integral&gt;</a> &amp;);
<a name="l00218"></a>00218         ~<a class="code" href="classsc_1_1GaussianBasisSet_1_1ValueData.html" title="This holds scratch data needed to compute basis function values.">ValueData</a>();
<a name="l00219"></a>00219         <a class="code" href="classsc_1_1CartesianIter.html" title="CartesianIter gives the ordering of the Cartesian functions within a shell for the...">CartesianIter</a> **civec() { <span class="keywordflow">return</span> civec_; }
<a name="l00220"></a>00220         <a class="code" href="classsc_1_1SphericalTransformIter.html" title="This iterates through the components of a SphericalTransform.">SphericalTransformIter</a> **sivec() { <span class="keywordflow">return</span> sivec_; }
<a name="l00221"></a>00221     };
<a name="l00222"></a>00222 
<a name="l00224"></a><a class="code" href="classsc_1_1GaussianBasisSet.html#abe02e5ecbc2a36a2d0d0eef69ce9b3c">00224</a>     <span class="keyword">enum</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#abe02e5ecbc2a36a2d0d0eef69ce9b3c" title="This can be given to a CTOR to construct a unit basis function.">UnitType</a> {Unit};
<a name="l00225"></a>00225 
<a name="l00381"></a>00381     <a class="code" href="classsc_1_1GaussianBasisSet.html" title="The GaussianBasisSet class is used describe a basis set composed of atomic gaussian...">GaussianBasisSet</a>(<span class="keyword">const</span> <a class="code" href="classsc_1_1Ref.html">Ref&lt;KeyVal&gt;</a>&amp;);
<a name="l00386"></a>00386     <a class="code" href="classsc_1_1GaussianBasisSet.html" title="The GaussianBasisSet class is used describe a basis set composed of atomic gaussian...">GaussianBasisSet</a>(<a class="code" href="classsc_1_1GaussianBasisSet.html#abe02e5ecbc2a36a2d0d0eef69ce9b3c" title="This can be given to a CTOR to construct a unit basis function.">UnitType</a>);
<a name="l00387"></a>00387     <a class="code" href="classsc_1_1GaussianBasisSet.html" title="The GaussianBasisSet class is used describe a basis set composed of atomic gaussian...">GaussianBasisSet</a>(<a class="code" href="classsc_1_1StateIn.html" title="Restores objects that derive from SavableState.">StateIn</a>&amp;);
<a name="l00388"></a>00388     <span class="keyword">virtual</span> ~<a class="code" href="classsc_1_1GaussianBasisSet.html" title="The GaussianBasisSet class is used describe a basis set composed of atomic gaussian...">GaussianBasisSet</a>();
<a name="l00389"></a>00389 
<a name="l00394"></a>00394     <a class="code" href="classsc_1_1Ref.html">Ref&lt;GaussianBasisSet&gt;</a> <a class="code" href="classsc_1_1GaussianBasisSet.html#461ed9a3b9dbc14a4aa12091095dde47" title="Returns a GaussianBasisSet object that consists of the basis functions for each atom...">operator+</a>(<span class="keyword">const</span> <a class="code" href="classsc_1_1Ref.html">Ref&lt;GaussianBasisSet&gt;</a>&amp; B);
<a name="l00395"></a>00395 
<a name="l00396"></a>00396     <span class="keywordtype">void</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#0847f5b840d5cea2a78cb0c07546c4c7" title="Save the base classes (with save_data_state) and the members in the same order that...">save_data_state</a>(<a class="code" href="classsc_1_1StateOut.html" title="Serializes objects that derive from SavableState.">StateOut</a>&amp;);
<a name="l00397"></a>00397 
<a name="l00399"></a><a class="code" href="classsc_1_1GaussianBasisSet.html#3ba5ec206b5b54b65ccdd3c6c076a7b2">00399</a>     <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classsc_1_1GaussianBasisSet.html#3ba5ec206b5b54b65ccdd3c6c076a7b2" title="Return the name of the basis set (is nonnull only if keyword &amp;quot;name&amp;quot; was...">name</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> name_; }
<a name="l00403"></a><a class="code" href="classsc_1_1GaussianBasisSet.html#cb0d3d07183c4851ef28963537019006">00403</a>     <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classsc_1_1GaussianBasisSet.html#cb0d3d07183c4851ef28963537019006" title="Return the label of the basis set.">label</a>()<span class="keyword"> const </span>{ <span class="keywordflow">if</span> (<a class="code" href="classsc_1_1GaussianBasisSet.html#3ba5ec206b5b54b65ccdd3c6c076a7b2" title="Return the name of the basis set (is nonnull only if keyword &amp;quot;name&amp;quot; was...">name</a>()) { <span class="keywordflow">return</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#3ba5ec206b5b54b65ccdd3c6c076a7b2" title="Return the name of the basis set (is nonnull only if keyword &amp;quot;name&amp;quot; was...">name</a>(); } <span class="keywordflow">else</span> { <span class="keywordflow">return</span> label_; } }
<a name="l00404"></a>00404 
<a name="l00406"></a><a class="code" href="classsc_1_1GaussianBasisSet.html#fbf4412a25c32b3b8d6975587b1d4bc3">00406</a>     <a class="code" href="classsc_1_1Ref.html">Ref&lt;Molecule&gt;</a> <a class="code" href="classsc_1_1GaussianBasisSet.html#fbf4412a25c32b3b8d6975587b1d4bc3" title="Return the Molecule object.">molecule</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> molecule_; }
<a name="l00408"></a><a class="code" href="classsc_1_1GaussianBasisSet.html#d8da790554ea38b47a1854145e0fedc9">00408</a>     <a class="code" href="classsc_1_1Ref.html">Ref&lt;SCMatrixKit&gt;</a> <a class="code" href="classsc_1_1GaussianBasisSet.html#d8da790554ea38b47a1854145e0fedc9" title="Returns the SCMatrixKit that is to be used for AO bases.">matrixkit</a>() { <span class="keywordflow">return</span> matrixkit_; }
<a name="l00410"></a><a class="code" href="classsc_1_1GaussianBasisSet.html#55005f690ee4a139175ca9f88c17ff06">00410</a>     <a class="code" href="classsc_1_1Ref.html">Ref&lt;SCMatrixKit&gt;</a> <a class="code" href="classsc_1_1GaussianBasisSet.html#55005f690ee4a139175ca9f88c17ff06" title="Returns the SCMatrixKit that is to be used for SO bases.">so_matrixkit</a>() { <span class="keywordflow">return</span> so_matrixkit_; }
<a name="l00412"></a><a class="code" href="classsc_1_1GaussianBasisSet.html#2c8cc56d931c84679711db74facfcdff">00412</a>     <a class="code" href="classsc_1_1RefSCDimension.html" title="The RefSCDimension class is a smart pointer to an SCDimension specialization.">RefSCDimension</a> <a class="code" href="classsc_1_1GaussianBasisSet.html#2c8cc56d931c84679711db74facfcdff" title="Returns the SCDimension object for the dimension.">basisdim</a>() { <span class="keywordflow">return</span> basisdim_; }
<a name="l00413"></a>00413 
<a name="l00415"></a>00415     <span class="keywordtype">int</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#7cfb021ed660160e7aa603f474c8bbb2" title="Return the number of centers.">ncenter</a>() <span class="keyword">const</span>;
<a name="l00417"></a><a class="code" href="classsc_1_1GaussianBasisSet.html#45fe96869a61e28949ac5934043248d1">00417</a>     <span class="keywordtype">int</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#45fe96869a61e28949ac5934043248d1" title="Return the number of shells.">nshell</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> nshell_; }
<a name="l00419"></a>00419     <span class="keywordtype">int</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#b95a75636ccfcb20464211b2267538de" title="Return the number of shells on the given center.">nshell_on_center</a>(<span class="keywordtype">int</span> icenter) <span class="keyword">const</span>;
<a name="l00422"></a>00422     <span class="keywordtype">int</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#27949a83fc05f03358328a4e6c67df6e" title="Return an overall shell number, given a center and the shell number on that center...">shell_on_center</a>(<span class="keywordtype">int</span> icenter, <span class="keywordtype">int</span> shell) <span class="keyword">const</span>;
<a name="l00424"></a><a class="code" href="classsc_1_1GaussianBasisSet.html#af9bc360bca7274faf8179c239ee4475">00424</a>     <span class="keywordtype">int</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#af9bc360bca7274faf8179c239ee4475" title="Return the center on which the given shell is located.">shell_to_center</a>(<span class="keywordtype">int</span> ishell)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> shell_to_center_[ishell]; }
<a name="l00426"></a><a class="code" href="classsc_1_1GaussianBasisSet.html#f2fdc60a230ddefacf77c3189a93d70b">00426</a>     <span class="keywordtype">int</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#f2fdc60a230ddefacf77c3189a93d70b" title="Return the overall index of the first primitive from the given shell.">shell_to_primitive</a>(<span class="keywordtype">int</span> ishell)<span class="keyword"> const </span>{<span class="keywordflow">return</span> shell_to_primitive_[ishell]; }
<a name="l00428"></a><a class="code" href="classsc_1_1GaussianBasisSet.html#d7b10a1a9f605ad3f35a5a34a1be6861">00428</a>     <span class="keywordtype">int</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#d7b10a1a9f605ad3f35a5a34a1be6861" title="Return the number of basis functions.">nbasis</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> nbasis_; }
<a name="l00430"></a>00430     <span class="keywordtype">int</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#bafabf6b5fa8a1594db71a3731fb6da8" title="Return the number of basis functions on the given center.">nbasis_on_center</a>(<span class="keywordtype">int</span> icenter) <span class="keyword">const</span>;
<a name="l00432"></a><a class="code" href="classsc_1_1GaussianBasisSet.html#c0a8ebaf7864d57ffde258c91ac45dcb">00432</a>     <span class="keywordtype">int</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#c0a8ebaf7864d57ffde258c91ac45dcb" title="Return the number of primitive Gaussians.">nprimitive</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> nprim_; }
<a name="l00434"></a><a class="code" href="classsc_1_1GaussianBasisSet.html#f5eddf79bf2d6001852cd32bc7a28c90">00434</a>     <span class="keywordtype">int</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#f5eddf79bf2d6001852cd32bc7a28c90" title="Return true if basis contains solid harmonics Gaussians.">has_pure</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> has_pure_; }
<a name="l00435"></a>00435 
<a name="l00437"></a>00437     <span class="keywordtype">int</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#5839a8d86d4b462ab55b459a5e88d781" title="Return the maximum number of functions that any shell has.">max_nfunction_in_shell</a>() <span class="keyword">const</span>;
<a name="l00440"></a>00440     <span class="keywordtype">int</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#6c46dca677c0b0175d28ab0c646c16dd" title="Return the maximum number of Cartesian functions that any shell has.">max_ncartesian_in_shell</a>(<span class="keywordtype">int</span> aminc=0) <span class="keyword">const</span>;
<a name="l00442"></a>00442     <span class="keywordtype">int</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#3c302dbe0115b650c6e93205609d9a07" title="Return the maximum number of primitive Gaussian that any shell has.">max_nprimitive_in_shell</a>() <span class="keyword">const</span>;
<a name="l00444"></a>00444     <span class="keywordtype">int</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#03311e639f153963e21ca8ad2a9e5d3c" title="Return the highest angular momentum in any shell.">max_angular_momentum</a>() <span class="keyword">const</span>;
<a name="l00446"></a>00446     <span class="keywordtype">int</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#d29e59765708a02cd0dc3e88177131e1" title="Return the maximum number of Gaussians in a contraction in any shell.">max_ncontraction</a>() <span class="keyword">const</span>;
<a name="l00449"></a>00449     <span class="keywordtype">int</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#a18bb75536e3359ce174ad890818c69d" title="Return the maximum angular momentum found in the given contraction number for any...">max_am_for_contraction</a>(<span class="keywordtype">int</span> con) <span class="keyword">const</span>;
<a name="l00451"></a>00451     <span class="keywordtype">int</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#d5f41765ebe2a2bbf83f1c637514ff2f" title="Return the maximum number of Cartesian functions in any shell.">max_cartesian</a>() <span class="keyword">const</span>;
<a name="l00452"></a>00452 
<a name="l00454"></a><a class="code" href="classsc_1_1GaussianBasisSet.html#dd6f96ee06894a527bb675dbccc42186">00454</a>     <span class="keywordtype">int</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#dd6f96ee06894a527bb675dbccc42186" title="Return the number of the first function in the given shell.">shell_to_function</a>(<span class="keywordtype">int</span> i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> shell_to_function_[i]; }
<a name="l00456"></a>00456     <span class="keywordtype">int</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#e39b92995608e971f5d4dbd5ace64cfd" title="Return the shell to which the given function belongs.">function_to_shell</a>(<span class="keywordtype">int</span> i) <span class="keyword">const</span>;
<a name="l00457"></a>00457 
<a name="l00459"></a><a class="code" href="classsc_1_1GaussianBasisSet.html#6255658d61adc3e17fa312a15b60fee0">00459</a>     <span class="keyword">const</span> <a class="code" href="classsc_1_1GaussianShell.html" title="A Gaussian orbital shell.">GaussianShell</a>&amp; <a class="code" href="classsc_1_1GaussianBasisSet.html#6255658d61adc3e17fa312a15b60fee0" title="Return a reference to GaussianShell number i.">operator()</a>(<span class="keywordtype">int</span> i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *shell_[i]; }
<a name="l00461"></a><a class="code" href="classsc_1_1GaussianBasisSet.html#d25b84aaca0eeac18b150bb840ac2a7a">00461</a>     <a class="code" href="classsc_1_1GaussianShell.html" title="A Gaussian orbital shell.">GaussianShell</a>&amp; <a class="code" href="classsc_1_1GaussianBasisSet.html#d25b84aaca0eeac18b150bb840ac2a7a" title="Return a reference to GaussianShell number i.">operator()</a>(<span class="keywordtype">int</span> i) { <span class="keywordflow">return</span> *shell_[i]; }
<a name="l00463"></a><a class="code" href="classsc_1_1GaussianBasisSet.html#b71db3d3e130449e31d22e56b6d9c091">00463</a>     <span class="keyword">const</span> <a class="code" href="classsc_1_1GaussianShell.html" title="A Gaussian orbital shell.">GaussianShell</a>&amp; <a class="code" href="classsc_1_1GaussianBasisSet.html#b71db3d3e130449e31d22e56b6d9c091" title="Return a reference to GaussianShell number i.">operator[]</a>(<span class="keywordtype">int</span> i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *shell_[i]; }
<a name="l00465"></a><a class="code" href="classsc_1_1GaussianBasisSet.html#9ec60bc9d531f939cd4e4442790263b9">00465</a>     <a class="code" href="classsc_1_1GaussianShell.html" title="A Gaussian orbital shell.">GaussianShell</a>&amp; <a class="code" href="classsc_1_1GaussianBasisSet.html#9ec60bc9d531f939cd4e4442790263b9" title="Return a reference to GaussianShell number i.">operator[]</a>(<span class="keywordtype">int</span> i) { <span class="keywordflow">return</span> *shell_[i]; }
<a name="l00467"></a><a class="code" href="classsc_1_1GaussianBasisSet.html#b3b1541e18c78f038fb11791dfd28015">00467</a>     <span class="keyword">const</span> <a class="code" href="classsc_1_1GaussianShell.html" title="A Gaussian orbital shell.">GaussianShell</a>&amp; <a class="code" href="classsc_1_1GaussianBasisSet.html#b3b1541e18c78f038fb11791dfd28015" title="Return a reference to GaussianShell number i.">shell</a>(<span class="keywordtype">int</span> i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *shell_[i]; }
<a name="l00469"></a><a class="code" href="classsc_1_1GaussianBasisSet.html#e836b121e72f7010beffc0b2c5a6ac73">00469</a>     <a class="code" href="classsc_1_1GaussianShell.html" title="A Gaussian orbital shell.">GaussianShell</a>&amp; <a class="code" href="classsc_1_1GaussianBasisSet.html#e836b121e72f7010beffc0b2c5a6ac73" title="Return a reference to GaussianShell number i.">shell</a>(<span class="keywordtype">int</span> i) { <span class="keywordflow">return</span> *shell_[i]; }
<a name="l00470"></a>00470 
<a name="l00472"></a>00472     <span class="keyword">const</span> <a class="code" href="classsc_1_1GaussianShell.html" title="A Gaussian orbital shell.">GaussianShell</a>&amp; <a class="code" href="classsc_1_1GaussianBasisSet.html#6255658d61adc3e17fa312a15b60fee0" title="Return a reference to GaussianShell number i.">operator()</a>(<span class="keywordtype">int</span> icenter,<span class="keywordtype">int</span> ishell) <span class="keyword">const</span>;
<a name="l00474"></a>00474     <a class="code" href="classsc_1_1GaussianShell.html" title="A Gaussian orbital shell.">GaussianShell</a>&amp; <a class="code" href="classsc_1_1GaussianBasisSet.html#6255658d61adc3e17fa312a15b60fee0" title="Return a reference to GaussianShell number i.">operator()</a>(<span class="keywordtype">int</span> icenter,<span class="keywordtype">int</span> ishell);
<a name="l00476"></a><a class="code" href="classsc_1_1GaussianBasisSet.html#c78b838b8df5200f156b716385d4df64">00476</a>     <span class="keyword">const</span> <a class="code" href="classsc_1_1GaussianShell.html" title="A Gaussian orbital shell.">GaussianShell</a>&amp; <a class="code" href="classsc_1_1GaussianBasisSet.html#c78b838b8df5200f156b716385d4df64" title="Return a reference to GaussianShell number j on center i.">shell</a>(<span class="keywordtype">int</span> i,<span class="keywordtype">int</span> j)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#6255658d61adc3e17fa312a15b60fee0" title="Return a reference to GaussianShell number i.">operator()</a>(i,j); }
<a name="l00478"></a><a class="code" href="classsc_1_1GaussianBasisSet.html#e6ba7aaa69b842c941de86b19c0aa379">00478</a>     <a class="code" href="classsc_1_1GaussianShell.html" title="A Gaussian orbital shell.">GaussianShell</a>&amp; <a class="code" href="classsc_1_1GaussianBasisSet.html#e6ba7aaa69b842c941de86b19c0aa379" title="Return a reference to GaussianShell number j on center i.">shell</a>(<span class="keywordtype">int</span> i,<span class="keywordtype">int</span> j) { <span class="keywordflow">return</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#6255658d61adc3e17fa312a15b60fee0" title="Return a reference to GaussianShell number i.">operator()</a>(i,j); }
<a name="l00479"></a>00479 
<a name="l00482"></a>00482     <span class="keywordtype">double</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#781d0b6a5736a794a17f717b665b1694" title="The location of center icenter.">r</a>(<span class="keywordtype">int</span> icenter,<span class="keywordtype">int</span> xyz) <span class="keyword">const</span>;
<a name="l00483"></a>00483     
<a name="l00486"></a>00486     <span class="keywordtype">int</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#07895a6283eec78d81c9f23b947008e5" title="Compute the values for this basis set at position r.">values</a>(<span class="keyword">const</span> SCVector3&amp; <a class="code" href="classsc_1_1GaussianBasisSet.html#781d0b6a5736a794a17f717b665b1694" title="The location of center icenter.">r</a>, ValueData *, <span class="keywordtype">double</span>* basis_values) <span class="keyword">const</span>;
<a name="l00491"></a>00491     <span class="keywordtype">int</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#8515fa25332523b5844bdaac723b03b3" title="Like values(.">grad_values</a>(<span class="keyword">const</span> SCVector3&amp; <a class="code" href="classsc_1_1GaussianBasisSet.html#781d0b6a5736a794a17f717b665b1694" title="The location of center icenter.">r</a>, ValueData *,
<a name="l00492"></a>00492                     <span class="keywordtype">double</span>*g_values,<span class="keywordtype">double</span>* basis_values=0) <span class="keyword">const</span>;
<a name="l00497"></a>00497     <span class="keywordtype">int</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#332b57f3b12351e3579214ba655cf8f6" title="Like values(.">hessian_values</a>(<span class="keyword">const</span> SCVector3&amp; <a class="code" href="classsc_1_1GaussianBasisSet.html#781d0b6a5736a794a17f717b665b1694" title="The location of center icenter.">r</a>, ValueData *, <span class="keywordtype">double</span> *h_values,
<a name="l00498"></a>00498                        <span class="keywordtype">double</span>*g_values=0,<span class="keywordtype">double</span>* basis_values=0) <span class="keyword">const</span>;
<a name="l00501"></a>00501     <span class="keywordtype">int</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#5ca4483c793d1a7344b5328a84bc6573" title="Compute the values for the given shell functions at position r.">shell_values</a>(<span class="keyword">const</span> SCVector3&amp; <a class="code" href="classsc_1_1GaussianBasisSet.html#781d0b6a5736a794a17f717b665b1694" title="The location of center icenter.">r</a>, <span class="keywordtype">int</span> sh,
<a name="l00502"></a>00502                      ValueData *, <span class="keywordtype">double</span>* basis_values) <span class="keyword">const</span>;
<a name="l00506"></a>00506     <span class="keywordtype">int</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#d6a1cca6de2b4a43ec4befa87ae6d2e2" title="Like values(.">grad_shell_values</a>(<span class="keyword">const</span> SCVector3&amp; <a class="code" href="classsc_1_1GaussianBasisSet.html#781d0b6a5736a794a17f717b665b1694" title="The location of center icenter.">r</a>, <span class="keywordtype">int</span> sh,
<a name="l00507"></a>00507                           ValueData *,
<a name="l00508"></a>00508                           <span class="keywordtype">double</span>*g_values, <span class="keywordtype">double</span>* basis_values=0) <span class="keyword">const</span>;
<a name="l00512"></a>00512     <span class="keywordtype">int</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#68a12fecb52fd576c83e9fe8ac27164c" title="Like values(.">hessian_shell_values</a>(<span class="keyword">const</span> SCVector3&amp; <a class="code" href="classsc_1_1GaussianBasisSet.html#781d0b6a5736a794a17f717b665b1694" title="The location of center icenter.">r</a>, <span class="keywordtype">int</span> sh,
<a name="l00513"></a>00513                        ValueData *, <span class="keywordtype">double</span> *h_values,
<a name="l00514"></a>00514                        <span class="keywordtype">double</span>*g_values=0,<span class="keywordtype">double</span>* basis_values=0) <span class="keyword">const</span>;
<a name="l00515"></a>00515 
<a name="l00517"></a>00517     <span class="keywordtype">int</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#7344b7edf9cd4f95c54d9582711740d6" title="Returns true if this and the argument are equivalent.">equiv</a>(<span class="keyword">const</span> <a class="code" href="classsc_1_1Ref.html">Ref&lt;GaussianBasisSet&gt;</a> &amp;b);
<a name="l00518"></a>00518 
<a name="l00520"></a>00520     <span class="keywordtype">void</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#1e9842031fd1d3416b835cc3411aaebd" title="Print a brief description of the basis set.">print_brief</a>(std::ostream&amp; =<a class="code" href="classsc_1_1ExEnv.html#360216acd1f990e999c0ed46cb350b1f" title="Return an ostream that writes from node 0.">ExEnv::out0</a>()) <span class="keyword">const</span>;
<a name="l00522"></a>00522     <span class="keywordtype">void</span> <a class="code" href="classsc_1_1GaussianBasisSet.html#748705e62ac8fdc0403afe663fe3ac3a" title="Print a detailed description of the basis set.">print</a>(std::ostream&amp; =<a class="code" href="classsc_1_1ExEnv.html#360216acd1f990e999c0ed46cb350b1f" title="Return an ostream that writes from node 0.">ExEnv::out0</a>()) <span class="keyword">const</span>;
<a name="l00523"></a>00523 };
<a name="l00524"></a>00524 
<a name="l00525"></a>00525 }
<a name="l00526"></a>00526 
<a name="l00527"></a>00527 <span class="preprocessor">#endif</span>
<a name="l00528"></a>00528 <span class="preprocessor"></span>
<a name="l00529"></a>00529 <span class="comment">// Local Variables:</span>
<a name="l00530"></a>00530 <span class="comment">// mode: c++</span>
<a name="l00531"></a>00531 <span class="comment">// c-file-style: "CLJ"</span>
<a name="l00532"></a>00532 <span class="comment">// End:</span>
</pre></div></div>
<hr>
<address>
<small>

Generated at Wed Oct 14 14:12:09 2009 for <a
href="http://www.mpqc.org">MPQC</a>
2.3.1 using the documentation package <a
href="http://www.doxygen.org">Doxygen</a>
1.5.9.

</small>
</address>
</body>
</html>