Sophie

Sophie

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

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: sc::Integral Class Reference</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 class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath"><b>sc</b>::<a class="el" href="classsc_1_1Integral.html">Integral</a>
  </div>
</div>
<div class="contents">
<h1>sc::Integral Class Reference</h1><!-- doxytag: class="sc::Integral" --><!-- doxytag: inherits="sc::SavableState" -->The <a class="el" href="classsc_1_1Integral.html" title="The Integral abstract class acts as a factory to provide objects that compute one...">Integral</a> abstract class acts as a factory to provide objects that compute one and two electron integrals.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="integral_8h_source.html">integral.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for sc::Integral:</div>
<div class="dynsection">

<p><center><img src="classsc_1_1Integral.png" usemap="#sc::Integral_map" border="0" alt=""></center>
<map name="sc::Integral_map">
<area href="classsc_1_1SavableState.html" alt="sc::SavableState" shape="rect" coords="130,168,250,192">
<area href="classsc_1_1DescribedClass.html" alt="sc::DescribedClass" shape="rect" coords="130,112,250,136">
<area href="classsc_1_1RefCount.html" alt="sc::RefCount" shape="rect" coords="130,56,250,80">
<area href="classsc_1_1Identity.html" alt="sc::Identity" shape="rect" coords="130,0,250,24">
<area href="classsc_1_1IntegralCCA.html" alt="sc::IntegralCCA" shape="rect" coords="0,280,120,304">
<area href="classsc_1_1IntegralCints.html" alt="sc::IntegralCints" shape="rect" coords="130,280,250,304">
<area href="classsc_1_1IntegralV3.html" alt="sc::IntegralV3" shape="rect" coords="260,280,380,304">
</map>
</div>

<p>
<a href="classsc_1_1Integral-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="598741fa0ee74ba92358379a379482f3"></a><!-- doxytag: member="sc::Integral::Integral" ref="598741fa0ee74ba92358379a379482f3" args="(StateIn &amp;)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#598741fa0ee74ba92358379a379482f3">Integral</a> (<a class="el" href="classsc_1_1StateIn.html">StateIn</a> &amp;)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Restore the <a class="el" href="classsc_1_1Integral.html" title="The Integral abstract class acts as a factory to provide objects that compute one...">Integral</a> object from the given <a class="el" href="classsc_1_1StateIn.html" title="Restores objects that derive from SavableState.">StateIn</a> object. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a8201c2bc003f4c303111b82643682a5"></a><!-- doxytag: member="sc::Integral::Integral" ref="a8201c2bc003f4c303111b82643682a5" args="(const Ref&lt; KeyVal &gt; &amp;)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#a8201c2bc003f4c303111b82643682a5">Integral</a> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1KeyVal.html">KeyVal</a> &gt; &amp;)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct the <a class="el" href="classsc_1_1Integral.html" title="The Integral abstract class acts as a factory to provide objects that compute one...">Integral</a> object from the given <a class="el" href="classsc_1_1KeyVal.html" title="The KeyVal class is designed to simplify the process of allowing a user to specify...">KeyVal</a> object. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#5a029c2e671f83f63e090d8a4bcbaaa2">save_data_state</a> (<a class="el" href="classsc_1_1StateOut.html">StateOut</a> &amp;)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Save the base classes (with save_data_state) and the members in the same order that the <a class="el" href="classsc_1_1StateIn.html" title="Restores objects that derive from SavableState.">StateIn</a> CTOR initializes them.  <a href="#5a029c2e671f83f63e090d8a4bcbaaa2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="26791a34ef40af544836caa9c97362c9"></a><!-- doxytag: member="sc::Integral::clone" ref="26791a34ef40af544836caa9c97362c9" args="()=0" -->
virtual <a class="el" href="classsc_1_1Integral.html">Integral</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#26791a34ef40af544836caa9c97362c9">clone</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clones the given <a class="el" href="classsc_1_1Integral.html" title="The Integral abstract class acts as a factory to provide objects that compute one...">Integral</a> factory. The new factory may need to have set_basis and set_storage to be called on it. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#033bb9ba148376d6e9c43e7bbb8e1f25">equiv</a> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1Integral.html">Integral</a> &gt; &amp;)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns nonzero if this and the given <a class="el" href="classsc_1_1Integral.html" title="The Integral abstract class acts as a factory to provide objects that compute one...">Integral</a> object have the same integral ordering, normalization conventions, etc.  <a href="#033bb9ba148376d6e9c43e7bbb8e1f25"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b5ea8c76e5e2b5985718c9374c110f8d"></a><!-- doxytag: member="sc::Integral::set_storage" ref="b5ea8c76e5e2b5985718c9374c110f8d" args="(size_t i)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#b5ea8c76e5e2b5985718c9374c110f8d">set_storage</a> (size_t i)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the total amount of storage, in bytes, that is available. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="876afe999824584595525b5251766ebf"></a><!-- doxytag: member="sc::Integral::storage_used" ref="876afe999824584595525b5251766ebf" args="()" -->
size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#876afe999824584595525b5251766ebf">storage_used</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns how much storage has been used. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7fd548dc5d426a9cf1f38e842a696d4b"></a><!-- doxytag: member="sc::Integral::storage_unused" ref="7fd548dc5d426a9cf1f38e842a696d4b" args="()" -->
size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#7fd548dc5d426a9cf1f38e842a696d4b">storage_unused</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns how much storage was not needed. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#15af6c01e8f3ff5826bcbcceeb2bddd0">storage_required_eri</a> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;b1, const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;b2=0, const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;b3=0, const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;b4=0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns how much storage will be needed to initialize a two-body integrals evaluator for electron repulsion integrals.  <a href="#15af6c01e8f3ff5826bcbcceeb2bddd0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#0eaf219a5910e66921edaa5fb4e7df4e">storage_required_grt</a> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;b1, const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;b2=0, const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;b3=0, const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;b4=0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns how much storage will be needed to initialize a two-body integrals evaluator for linear R12 integrals.  <a href="#0eaf219a5910e66921edaa5fb4e7df4e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#98173be8265c2ced4f0aafb700ee3bad">storage_required_eri_deriv</a> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;b1, const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;b2=0, const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;b3=0, const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;b4=0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns how much storage will be needed to initialize a two-body integrals evaluator for derivative electron repulsion integrals.  <a href="#98173be8265c2ced4f0aafb700ee3bad"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#507da17e21b8767d3eb8157f62e56855">adjust_storage</a> (ptrdiff_t s)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The specific integral classes use this to tell <a class="el" href="classsc_1_1Integral.html" title="The Integral abstract class acts as a factory to provide objects that compute one...">Integral</a> how much memory they are using/freeing.  <a href="#507da17e21b8767d3eb8157f62e56855"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="30f74e5b0aa850c7b44384d94b7b9fa3"></a><!-- doxytag: member="sc::Integral::petite_list" ref="30f74e5b0aa850c7b44384d94b7b9fa3" args="()" -->
<a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; PetiteList &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#30f74e5b0aa850c7b44384d94b7b9fa3">petite_list</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the PetiteList object. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="57aa5093eb30adec4089ce2f84b70c16"></a><!-- doxytag: member="sc::Integral::petite_list" ref="57aa5093eb30adec4089ce2f84b70c16" args="(const Ref&lt; GaussianBasisSet &gt; &amp;)" -->
<a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; PetiteList &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#57aa5093eb30adec4089ce2f84b70c16">petite_list</a> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the PetiteList object for the given basis set. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classsc_1_1ShellRotation.html">ShellRotation</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#82e4c39be7b2176b530ebff5d2c66df4">shell_rotation</a> (int am, <a class="el" href="classsc_1_1SymmetryOperation.html">SymmetryOperation</a> &amp;, int pure=0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the <a class="el" href="classsc_1_1ShellRotation.html" title="Compute the transformation matrices that maps a set of Cartesian functions to another...">ShellRotation</a> object for a shell of the given angular momentum.  <a href="#82e4c39be7b2176b530ebff5d2c66df4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3a7c3a0de392408758ae3414a07713eb"></a><!-- doxytag: member="sc::Integral::set_basis" ref="3a7c3a0de392408758ae3414a07713eb" args="(const Ref&lt; GaussianBasisSet &gt; &amp;b1, const Ref&lt; GaussianBasisSet &gt; &amp;b2=0, const Ref&lt; GaussianBasisSet &gt; &amp;b3=0, const Ref&lt; GaussianBasisSet &gt; &amp;b4=0)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#3a7c3a0de392408758ae3414a07713eb">set_basis</a> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;b1, const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;b2=0, const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;b3=0, const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;b4=0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the basis set for each center. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classsc_1_1CartesianIter.html">CartesianIter</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#6379de753613a427efadbef4bb246751">new_cartesian_iter</a> (int)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a <a class="el" href="classsc_1_1CartesianIter.html" title="CartesianIter gives the ordering of the Cartesian functions within a shell for the...">CartesianIter</a> object.  <a href="#6379de753613a427efadbef4bb246751"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classsc_1_1RedundantCartesianIter.html">RedundantCartesianIter</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#141b2581d10b08a5179c5187387cda1f">new_redundant_cartesian_iter</a> (int)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a <a class="el" href="classsc_1_1RedundantCartesianIter.html" title="RedundantCartesianIter objects loop through all possible combinations of a given...">RedundantCartesianIter</a> object.  <a href="#141b2581d10b08a5179c5187387cda1f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classsc_1_1RedundantCartesianSubIter.html">RedundantCartesianSubIter</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#a74d18679e069d673bcc5bb8fa7a80f0">new_redundant_cartesian_sub_iter</a> (int)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a <a class="el" href="classsc_1_1RedundantCartesianSubIter.html" title="Like RedundantCartesianIter, except a, b, and c are fixed to a given value.">RedundantCartesianSubIter</a> object.  <a href="#a74d18679e069d673bcc5bb8fa7a80f0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classsc_1_1SphericalTransformIter.html">SphericalTransformIter</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#e7faa94651a33699fb11b8756a5f0f78">new_spherical_transform_iter</a> (int l, int inv=0, int subl=-1)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a <a class="el" href="classsc_1_1SphericalTransformIter.html" title="This iterates through the components of a SphericalTransform.">SphericalTransformIter</a> object.  <a href="#e7faa94651a33699fb11b8756a5f0f78"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const <a class="el" href="classsc_1_1SphericalTransform.html">SphericalTransform</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#e6d4afdbb3d5cdf69b0e082fb30e7400">spherical_transform</a> (int l, int inv=0, int subl=-1)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a <a class="el" href="classsc_1_1SphericalTransform.html" title="This is a base class for a container for a sparse Cartesian to solid harmonic basis...">SphericalTransform</a> object.  <a href="#e6d4afdbb3d5cdf69b0e082fb30e7400"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="492e86b39ea36402e14876813ade570c"></a><!-- doxytag: member="sc::Integral::overlap" ref="492e86b39ea36402e14876813ade570c" args="()=0" -->
virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1OneBodyInt.html">OneBodyInt</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#492e86b39ea36402e14876813ade570c">overlap</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a <a class="el" href="classsc_1_1OneBodyInt.html" title="OneBodyInt is an abstract base class for objects that compute integrals between two...">OneBodyInt</a> that computes the overlap. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="30e4d3cef6022766c8679196a0838ec7"></a><!-- doxytag: member="sc::Integral::kinetic" ref="30e4d3cef6022766c8679196a0838ec7" args="()=0" -->
virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1OneBodyInt.html">OneBodyInt</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#30e4d3cef6022766c8679196a0838ec7">kinetic</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a <a class="el" href="classsc_1_1OneBodyInt.html" title="OneBodyInt is an abstract base class for objects that compute integrals between two...">OneBodyInt</a> that computes the kinetic energy. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1OneBodyInt.html">OneBodyInt</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#1d675afe29b03e87042d46aab0ad9566">point_charge</a> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; PointChargeData &gt; &amp;)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a <a class="el" href="classsc_1_1OneBodyInt.html" title="OneBodyInt is an abstract base class for objects that compute integrals between two...">OneBodyInt</a> that computes the integrals for interactions with point charges.  <a href="#1d675afe29b03e87042d46aab0ad9566"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1OneBodyOneCenterInt.html">OneBodyOneCenterInt</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#20d4f07ccfb80db13221d213b5dc7ade">point_charge1</a> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; PointChargeData &gt; &amp;)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a <a class="el" href="classsc_1_1OneBodyInt.html" title="OneBodyInt is an abstract base class for objects that compute integrals between two...">OneBodyInt</a> that computes the integrals for interactions with point charges.  <a href="#20d4f07ccfb80db13221d213b5dc7ade"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1OneBodyInt.html">OneBodyInt</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#560894dc5dded4796e174946cab6bfdd">nuclear</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a <a class="el" href="classsc_1_1OneBodyInt.html" title="OneBodyInt is an abstract base class for objects that compute integrals between two...">OneBodyInt</a> that computes the nuclear repulsion integrals.  <a href="#560894dc5dded4796e174946cab6bfdd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1b880e24e832144e16cc67fbc3ccd579"></a><!-- doxytag: member="sc::Integral::hcore" ref="1b880e24e832144e16cc67fbc3ccd579" args="()=0" -->
virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1OneBodyInt.html">OneBodyInt</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#1b880e24e832144e16cc67fbc3ccd579">hcore</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a <a class="el" href="classsc_1_1OneBodyInt.html" title="OneBodyInt is an abstract base class for objects that compute integrals between two...">OneBodyInt</a> that computes the core Hamiltonian integrals. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1OneBodyInt.html">OneBodyInt</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#b0da84e472955b9969545213831d0302">efield_dot_vector</a> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; EfieldDotVectorData &gt; &amp;)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a <a class="el" href="classsc_1_1OneBodyInt.html" title="OneBodyInt is an abstract base class for objects that compute integrals between two...">OneBodyInt</a> that computes the electric field integrals dotted with a given vector.  <a href="#b0da84e472955b9969545213831d0302"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1OneBodyInt.html">OneBodyInt</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#286e6432c227e3f9aaa6473c0dc0cf00">dipole</a> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; DipoleData &gt; &amp;)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a <a class="el" href="classsc_1_1OneBodyInt.html" title="OneBodyInt is an abstract base class for objects that compute integrals between two...">OneBodyInt</a> that computes electric dipole moment integrals.  <a href="#286e6432c227e3f9aaa6473c0dc0cf00"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1OneBodyInt.html">OneBodyInt</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#faaf6ba309a4cccf2a9958f84d0c58ea">quadrupole</a> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; DipoleData &gt; &amp;)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a <a class="el" href="classsc_1_1OneBodyInt.html" title="OneBodyInt is an abstract base class for objects that compute integrals between two...">OneBodyInt</a> that computes electric quadrupole moment integrals.  <a href="#faaf6ba309a4cccf2a9958f84d0c58ea"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f9bd28a686d9f40a5445cb759be8ce42"></a><!-- doxytag: member="sc::Integral::overlap_deriv" ref="f9bd28a686d9f40a5445cb759be8ce42" args="()=0" -->
virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1OneBodyDerivInt.html">OneBodyDerivInt</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#f9bd28a686d9f40a5445cb759be8ce42">overlap_deriv</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a <a class="el" href="classsc_1_1OneBodyDerivInt.html" title="OneBodyDerivInt is an abstract base class for objects that compute one body derivative...">OneBodyDerivInt</a> that computes overlap derivatives. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="113456b8de85856c0ee7dbfd1bab3239"></a><!-- doxytag: member="sc::Integral::kinetic_deriv" ref="113456b8de85856c0ee7dbfd1bab3239" args="()=0" -->
virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1OneBodyDerivInt.html">OneBodyDerivInt</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#113456b8de85856c0ee7dbfd1bab3239">kinetic_deriv</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a <a class="el" href="classsc_1_1OneBodyDerivInt.html" title="OneBodyDerivInt is an abstract base class for objects that compute one body derivative...">OneBodyDerivInt</a> that computes kinetic energy derivatives. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="592b6732fc5740a102c01556b63d9fcc"></a><!-- doxytag: member="sc::Integral::nuclear_deriv" ref="592b6732fc5740a102c01556b63d9fcc" args="()=0" -->
virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1OneBodyDerivInt.html">OneBodyDerivInt</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#592b6732fc5740a102c01556b63d9fcc">nuclear_deriv</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a <a class="el" href="classsc_1_1OneBodyDerivInt.html" title="OneBodyDerivInt is an abstract base class for objects that compute one body derivative...">OneBodyDerivInt</a> that computes nuclear repulsion derivatives. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="18cbdf57288f2ab4aa0c9345fdb7889c"></a><!-- doxytag: member="sc::Integral::hcore_deriv" ref="18cbdf57288f2ab4aa0c9345fdb7889c" args="()=0" -->
virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1OneBodyDerivInt.html">OneBodyDerivInt</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#18cbdf57288f2ab4aa0c9345fdb7889c">hcore_deriv</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a <a class="el" href="classsc_1_1OneBodyDerivInt.html" title="OneBodyDerivInt is an abstract base class for objects that compute one body derivative...">OneBodyDerivInt</a> that computes core Hamiltonian derivatives. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classsc_1_1Ref.html">Ref</a><br class="typebreak">
&lt; <a class="el" href="classsc_1_1TwoBodyThreeCenterInt.html">TwoBodyThreeCenterInt</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#a649cdab3c9eedf9e6b7aa6426d5ff9d">electron_repulsion3</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a <a class="el" href="classsc_1_1TwoBodyThreeCenterInt.html" title="This is an abstract base type for classes that compute integrals involving two electrons...">TwoBodyThreeCenterInt</a> that computes electron repulsion integrals.  <a href="#a649cdab3c9eedf9e6b7aa6426d5ff9d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classsc_1_1Ref.html">Ref</a><br class="typebreak">
&lt; <a class="el" href="classsc_1_1TwoBodyThreeCenterDerivInt.html">TwoBodyThreeCenterDerivInt</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#0bd06fccc8543a8d84936f25b1fec314">electron_repulsion3_deriv</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a <a class="el" href="classsc_1_1TwoBodyThreeCenterInt.html" title="This is an abstract base type for classes that compute integrals involving two electrons...">TwoBodyThreeCenterInt</a> that computes electron repulsion integrals.  <a href="#0bd06fccc8543a8d84936f25b1fec314"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1TwoBodyTwoCenterInt.html">TwoBodyTwoCenterInt</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#22d535c1487c98d6225ec3b6331e25b9">electron_repulsion2</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a <a class="el" href="classsc_1_1TwoBodyTwoCenterInt.html" title="This is an abstract base type for classes that compute integrals involving two electrons...">TwoBodyTwoCenterInt</a> that computes electron repulsion integrals.  <a href="#22d535c1487c98d6225ec3b6331e25b9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classsc_1_1Ref.html">Ref</a><br class="typebreak">
&lt; <a class="el" href="classsc_1_1TwoBodyTwoCenterDerivInt.html">TwoBodyTwoCenterDerivInt</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#c9d22d43a9821c6e08402dfcfc1ff856">electron_repulsion2_deriv</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a <a class="el" href="classsc_1_1TwoBodyTwoCenterInt.html" title="This is an abstract base type for classes that compute integrals involving two electrons...">TwoBodyTwoCenterInt</a> that computes electron repulsion integrals.  <a href="#c9d22d43a9821c6e08402dfcfc1ff856"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d1279cc9c6f661c18f11f0eac86c6664"></a><!-- doxytag: member="sc::Integral::electron_repulsion" ref="d1279cc9c6f661c18f11f0eac86c6664" args="()=0" -->
virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1TwoBodyInt.html">TwoBodyInt</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#d1279cc9c6f661c18f11f0eac86c6664">electron_repulsion</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a <a class="el" href="classsc_1_1TwoBodyInt.html" title="This is an abstract base type for classes that compute integrals involving two electrons...">TwoBodyInt</a> that computes electron repulsion integrals. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="17e48b321d62f579bde6d012ea8433aa"></a><!-- doxytag: member="sc::Integral::electron_repulsion_deriv" ref="17e48b321d62f579bde6d012ea8433aa" args="()=0" -->
virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1TwoBodyDerivInt.html">TwoBodyDerivInt</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#17e48b321d62f579bde6d012ea8433aa">electron_repulsion_deriv</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a <a class="el" href="classsc_1_1TwoBodyDerivInt.html" title="This is an abstract base type for classes that compute integrals involving two electrons...">TwoBodyDerivInt</a> that computes electron repulsion derivatives. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1TwoBodyInt.html">TwoBodyInt</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#ed8756d357f4a5e922413d2a0ff25bc4">grt</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a <a class="el" href="classsc_1_1TwoBodyInt.html" title="This is an abstract base type for classes that compute integrals involving two electrons...">TwoBodyInt</a> that computes two-electron integrals specific to linear R12 methods.  <a href="#ed8756d357f4a5e922413d2a0ff25bc4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6484fdba0cb22600e11bc028112b1290"></a><!-- doxytag: member="sc::Integral::messagegrp" ref="6484fdba0cb22600e11bc028112b1290" args="()" -->
<a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1MessageGrp.html">MessageGrp</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#6484fdba0cb22600e11bc028112b1290">messagegrp</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the <a class="el" href="classsc_1_1MessageGrp.html" title="The MessageGrp abstract class provides a mechanism for moving data and objects between...">MessageGrp</a> used by the integrals objects. <br></td></tr>
<tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classsc_1_1Integral.html">Integral</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#ebbd02bf34f2527e361d298b0e0255cf">initial_integral</a> (int &amp;argc, char **argv)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create an integral factory.  <a href="#ebbd02bf34f2527e361d298b0e0255cf"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b1ccff8d6f1b4b237eed4c153b44339c"></a><!-- doxytag: member="sc::Integral::set_default_integral" ref="b1ccff8d6f1b4b237eed4c153b44339c" args="(const Ref&lt; Integral &gt; &amp;)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#b1ccff8d6f1b4b237eed4c153b44339c">set_default_integral</a> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1Integral.html">Integral</a> &gt; &amp;)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specifies a new default <a class="el" href="classsc_1_1Integral.html" title="The Integral abstract class acts as a factory to provide objects that compute one...">Integral</a> factory. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="907eabe634a6fe5ec54472b863349f21"></a><!-- doxytag: member="sc::Integral::get_default_integral" ref="907eabe634a6fe5ec54472b863349f21" args="()" -->
static <a class="el" href="classsc_1_1Integral.html">Integral</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#907eabe634a6fe5ec54472b863349f21">get_default_integral</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the default <a class="el" href="classsc_1_1Integral.html" title="The Integral abstract class acts as a factory to provide objects that compute one...">Integral</a> factory. <br></td></tr>
<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Integral.html#25764163996fa16fb982187ccdcd99d1">Integral</a> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;b1, const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;b2, const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;b3, const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;b4)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize the <a class="el" href="classsc_1_1Integral.html" title="The Integral abstract class acts as a factory to provide objects that compute one...">Integral</a> object given a <a class="el" href="classsc_1_1GaussianBasisSet.html" title="The GaussianBasisSet class is used describe a basis set composed of atomic gaussian...">GaussianBasisSet</a> for each center.  <a href="#25764163996fa16fb982187ccdcd99d1"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a58300fd25fed2c95eba3bbf53f017b7"></a><!-- doxytag: member="sc::Integral::bs1_" ref="a58300fd25fed2c95eba3bbf53f017b7" args="" -->
<a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><b>bs1_</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d6669e6a64a15bd590012064466cfba0"></a><!-- doxytag: member="sc::Integral::bs2_" ref="d6669e6a64a15bd590012064466cfba0" args="" -->
<a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><b>bs2_</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2aa48d8f6d31e64ce899b8b4e58750b9"></a><!-- doxytag: member="sc::Integral::bs3_" ref="2aa48d8f6d31e64ce899b8b4e58750b9" args="" -->
<a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><b>bs3_</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="42cc728ef3d1e15a97255413cf078db7"></a><!-- doxytag: member="sc::Integral::bs4_" ref="42cc728ef3d1e15a97255413cf078db7" args="" -->
<a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><b>bs4_</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5dec4aa40a111766f879a5b3c0a44d3f"></a><!-- doxytag: member="sc::Integral::storage_" ref="5dec4aa40a111766f879a5b3c0a44d3f" args="" -->
size_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>storage_</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8028616c787f53c23a088d0d2366d781"></a><!-- doxytag: member="sc::Integral::storage_used_" ref="8028616c787f53c23a088d0d2366d781" args="" -->
size_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>storage_used_</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f4f7c250c17a72654755ca36919b8473"></a><!-- doxytag: member="sc::Integral::grp_" ref="f4f7c250c17a72654755ca36919b8473" args="" -->
<a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1MessageGrp.html">MessageGrp</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><b>grp_</b></td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
The <a class="el" href="classsc_1_1Integral.html" title="The Integral abstract class acts as a factory to provide objects that compute one...">Integral</a> abstract class acts as a factory to provide objects that compute one and two electron integrals. 
<p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="25764163996fa16fb982187ccdcd99d1"></a><!-- doxytag: member="sc::Integral::Integral" ref="25764163996fa16fb982187ccdcd99d1" args="(const Ref&lt; GaussianBasisSet &gt; &amp;b1, const Ref&lt; GaussianBasisSet &gt; &amp;b2, const Ref&lt; GaussianBasisSet &gt; &amp;b3, const Ref&lt; GaussianBasisSet &gt; &amp;b4)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">sc::Integral::Integral           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>b1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>b2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>b3</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>b4</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize the <a class="el" href="classsc_1_1Integral.html" title="The Integral abstract class acts as a factory to provide objects that compute one...">Integral</a> object given a <a class="el" href="classsc_1_1GaussianBasisSet.html" title="The GaussianBasisSet class is used describe a basis set composed of atomic gaussian...">GaussianBasisSet</a> for each center. 
<p>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="507da17e21b8767d3eb8157f62e56855"></a><!-- doxytag: member="sc::Integral::adjust_storage" ref="507da17e21b8767d3eb8157f62e56855" args="(ptrdiff_t s)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void sc::Integral::adjust_storage           </td>
          <td>(</td>
          <td class="paramtype">ptrdiff_t&nbsp;</td>
          <td class="paramname"> <em>s</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The specific integral classes use this to tell <a class="el" href="classsc_1_1Integral.html" title="The Integral abstract class acts as a factory to provide objects that compute one...">Integral</a> how much memory they are using/freeing. 
<p>

</div>
</div><p>
<a class="anchor" name="286e6432c227e3f9aaa6473c0dc0cf00"></a><!-- doxytag: member="sc::Integral::dipole" ref="286e6432c227e3f9aaa6473c0dc0cf00" args="(const Ref&lt; DipoleData &gt; &amp;)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt;<a class="el" href="classsc_1_1OneBodyInt.html">OneBodyInt</a>&gt; sc::Integral::dipole           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; DipoleData &gt; &amp;&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return a <a class="el" href="classsc_1_1OneBodyInt.html" title="OneBodyInt is an abstract base class for objects that compute integrals between two...">OneBodyInt</a> that computes electric dipole moment integrals. 
<p>
The canonical order of integrals in a set is x, y, z. 
<p>Implemented in <a class="el" href="classsc_1_1IntegralCints.html#e7c1fdcd8809a7264a1a40cb33d5ce34">sc::IntegralCints</a>, <a class="el" href="classsc_1_1IntegralCCA.html#ca81b29c3d709986f99107dcc5c4b0f4">sc::IntegralCCA</a>, and <a class="el" href="classsc_1_1IntegralV3.html#c1b0aeac0153e9cc5a51c1bc43f5d7ef">sc::IntegralV3</a>.</p>

</div>
</div><p>
<a class="anchor" name="b0da84e472955b9969545213831d0302"></a><!-- doxytag: member="sc::Integral::efield_dot_vector" ref="b0da84e472955b9969545213831d0302" args="(const Ref&lt; EfieldDotVectorData &gt; &amp;)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt;<a class="el" href="classsc_1_1OneBodyInt.html">OneBodyInt</a>&gt; sc::Integral::efield_dot_vector           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; EfieldDotVectorData &gt; &amp;&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return a <a class="el" href="classsc_1_1OneBodyInt.html" title="OneBodyInt is an abstract base class for objects that compute integrals between two...">OneBodyInt</a> that computes the electric field integrals dotted with a given vector. 
<p>

<p>Implemented in <a class="el" href="classsc_1_1IntegralCints.html#adeb8b6ff302c868d50abe04e2f92d8a">sc::IntegralCints</a>, <a class="el" href="classsc_1_1IntegralCCA.html#8ed1e4aee05d772b73f451285d4ca62c">sc::IntegralCCA</a>, and <a class="el" href="classsc_1_1IntegralV3.html#46ac9740a35ec038fe1382d66345c456">sc::IntegralV3</a>.</p>

</div>
</div><p>
<a class="anchor" name="22d535c1487c98d6225ec3b6331e25b9"></a><!-- doxytag: member="sc::Integral::electron_repulsion2" ref="22d535c1487c98d6225ec3b6331e25b9" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt;<a class="el" href="classsc_1_1TwoBodyTwoCenterInt.html">TwoBodyTwoCenterInt</a>&gt; sc::Integral::electron_repulsion2           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return a <a class="el" href="classsc_1_1TwoBodyTwoCenterInt.html" title="This is an abstract base type for classes that compute integrals involving two electrons...">TwoBodyTwoCenterInt</a> that computes electron repulsion integrals. 
<p>
If this is not re-implemented it will throw. 
<p>Reimplemented in <a class="el" href="classsc_1_1IntegralV3.html#c8d50b33b5fd5c8951586cd9e7839c49">sc::IntegralV3</a>.</p>

</div>
</div><p>
<a class="anchor" name="c9d22d43a9821c6e08402dfcfc1ff856"></a><!-- doxytag: member="sc::Integral::electron_repulsion2_deriv" ref="c9d22d43a9821c6e08402dfcfc1ff856" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt;<a class="el" href="classsc_1_1TwoBodyTwoCenterDerivInt.html">TwoBodyTwoCenterDerivInt</a>&gt; sc::Integral::electron_repulsion2_deriv           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return a <a class="el" href="classsc_1_1TwoBodyTwoCenterInt.html" title="This is an abstract base type for classes that compute integrals involving two electrons...">TwoBodyTwoCenterInt</a> that computes electron repulsion integrals. 
<p>
If this is not re-implemented it will throw. 
</div>
</div><p>
<a class="anchor" name="a649cdab3c9eedf9e6b7aa6426d5ff9d"></a><!-- doxytag: member="sc::Integral::electron_repulsion3" ref="a649cdab3c9eedf9e6b7aa6426d5ff9d" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt;<a class="el" href="classsc_1_1TwoBodyThreeCenterInt.html">TwoBodyThreeCenterInt</a>&gt; sc::Integral::electron_repulsion3           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return a <a class="el" href="classsc_1_1TwoBodyThreeCenterInt.html" title="This is an abstract base type for classes that compute integrals involving two electrons...">TwoBodyThreeCenterInt</a> that computes electron repulsion integrals. 
<p>
If this is not re-implemented it will throw. 
<p>Reimplemented in <a class="el" href="classsc_1_1IntegralV3.html#bf4028b6ac6dde97fec61957f6f639d2">sc::IntegralV3</a>.</p>

</div>
</div><p>
<a class="anchor" name="0bd06fccc8543a8d84936f25b1fec314"></a><!-- doxytag: member="sc::Integral::electron_repulsion3_deriv" ref="0bd06fccc8543a8d84936f25b1fec314" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt;<a class="el" href="classsc_1_1TwoBodyThreeCenterDerivInt.html">TwoBodyThreeCenterDerivInt</a>&gt; sc::Integral::electron_repulsion3_deriv           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return a <a class="el" href="classsc_1_1TwoBodyThreeCenterInt.html" title="This is an abstract base type for classes that compute integrals involving two electrons...">TwoBodyThreeCenterInt</a> that computes electron repulsion integrals. 
<p>
If this is not re-implemented it will throw. 
</div>
</div><p>
<a class="anchor" name="033bb9ba148376d6e9c43e7bbb8e1f25"></a><!-- doxytag: member="sc::Integral::equiv" ref="033bb9ba148376d6e9c43e7bbb8e1f25" args="(const Ref&lt; Integral &gt; &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int sc::Integral::equiv           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1Integral.html">Integral</a> &gt; &amp;&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns nonzero if this and the given <a class="el" href="classsc_1_1Integral.html" title="The Integral abstract class acts as a factory to provide objects that compute one...">Integral</a> object have the same integral ordering, normalization conventions, etc. 
<p>

</div>
</div><p>
<a class="anchor" name="ed8756d357f4a5e922413d2a0ff25bc4"></a><!-- doxytag: member="sc::Integral::grt" ref="ed8756d357f4a5e922413d2a0ff25bc4" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt;<a class="el" href="classsc_1_1TwoBodyInt.html">TwoBodyInt</a>&gt; sc::Integral::grt           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return a <a class="el" href="classsc_1_1TwoBodyInt.html" title="This is an abstract base type for classes that compute integrals involving two electrons...">TwoBodyInt</a> that computes two-electron integrals specific to linear R12 methods. 
<p>
According to the convention in the literature, "g" stands for electron repulsion integral, "r" for the integral of r12 operator, and "t" for the commutator integrals. Implementation for this kind of <a class="el" href="classsc_1_1TwoBodyInt.html" title="This is an abstract base type for classes that compute integrals involving two electrons...">TwoBodyInt</a> is optional. 
<p>Reimplemented in <a class="el" href="classsc_1_1IntegralCints.html#1784b8496abeef4561794e8b3950df80">sc::IntegralCints</a>.</p>

</div>
</div><p>
<a class="anchor" name="ebbd02bf34f2527e361d298b0e0255cf"></a><!-- doxytag: member="sc::Integral::initial_integral" ref="ebbd02bf34f2527e361d298b0e0255cf" args="(int &amp;argc, char **argv)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classsc_1_1Integral.html">Integral</a>* sc::Integral::initial_integral           </td>
          <td>(</td>
          <td class="paramtype">int &amp;&nbsp;</td>
          <td class="paramname"> <em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&nbsp;</td>
          <td class="paramname"> <em>argv</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create an integral factory. 
<p>
This routine looks for a -integral argument, then the environmental variable INTEGRAL. The argument to -integral should be either string for a <a class="el" href="classsc_1_1ParsedKeyVal.html" title="Converts textual information into keyword/value assocations.">ParsedKeyVal</a> constructor or a classname. This factory is not guaranteed to have its storage and basis sets set up properly, hence set_basis and set_storage need to be called on it. 
</div>
</div><p>
<a class="anchor" name="6379de753613a427efadbef4bb246751"></a><!-- doxytag: member="sc::Integral::new_cartesian_iter" ref="6379de753613a427efadbef4bb246751" args="(int)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classsc_1_1CartesianIter.html">CartesianIter</a>* sc::Integral::new_cartesian_iter           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return a <a class="el" href="classsc_1_1CartesianIter.html" title="CartesianIter gives the ordering of the Cartesian functions within a shell for the...">CartesianIter</a> object. 
<p>
The caller is responsible for freeing the object. 
<p>Implemented in <a class="el" href="classsc_1_1IntegralCints.html#86129f06099c094c35a53c508558e353">sc::IntegralCints</a>, <a class="el" href="classsc_1_1IntegralCCA.html#fc48606f7a055908656476165f0eb62d">sc::IntegralCCA</a>, and <a class="el" href="classsc_1_1IntegralV3.html#ef50efb990efe32bed9cea4b1bd80d5c">sc::IntegralV3</a>.</p>

</div>
</div><p>
<a class="anchor" name="141b2581d10b08a5179c5187387cda1f"></a><!-- doxytag: member="sc::Integral::new_redundant_cartesian_iter" ref="141b2581d10b08a5179c5187387cda1f" args="(int)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classsc_1_1RedundantCartesianIter.html">RedundantCartesianIter</a>* sc::Integral::new_redundant_cartesian_iter           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return a <a class="el" href="classsc_1_1RedundantCartesianIter.html" title="RedundantCartesianIter objects loop through all possible combinations of a given...">RedundantCartesianIter</a> object. 
<p>
The caller is responsible for freeing the object. 
<p>Implemented in <a class="el" href="classsc_1_1IntegralCints.html#122f03d761ee9e9cb5d2b1bafe78dc6d">sc::IntegralCints</a>, <a class="el" href="classsc_1_1IntegralCCA.html#2b3bc17794fedbb631e76dc581bae28e">sc::IntegralCCA</a>, and <a class="el" href="classsc_1_1IntegralV3.html#ad62b1f546a5e360d63231745d00cbaf">sc::IntegralV3</a>.</p>

</div>
</div><p>
<a class="anchor" name="a74d18679e069d673bcc5bb8fa7a80f0"></a><!-- doxytag: member="sc::Integral::new_redundant_cartesian_sub_iter" ref="a74d18679e069d673bcc5bb8fa7a80f0" args="(int)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classsc_1_1RedundantCartesianSubIter.html">RedundantCartesianSubIter</a>* sc::Integral::new_redundant_cartesian_sub_iter           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return a <a class="el" href="classsc_1_1RedundantCartesianSubIter.html" title="Like RedundantCartesianIter, except a, b, and c are fixed to a given value.">RedundantCartesianSubIter</a> object. 
<p>
The caller is responsible for freeing the object. 
<p>Implemented in <a class="el" href="classsc_1_1IntegralCints.html#44d3f983c0666a1b46280b67d09257f4">sc::IntegralCints</a>, <a class="el" href="classsc_1_1IntegralCCA.html#f0a7c948ed0d1e561741bc08164f5840">sc::IntegralCCA</a>, and <a class="el" href="classsc_1_1IntegralV3.html#9099e2b4a03888cb482d9107b6d69a64">sc::IntegralV3</a>.</p>

</div>
</div><p>
<a class="anchor" name="e7faa94651a33699fb11b8756a5f0f78"></a><!-- doxytag: member="sc::Integral::new_spherical_transform_iter" ref="e7faa94651a33699fb11b8756a5f0f78" args="(int l, int inv=0, int subl=&#45;1)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classsc_1_1SphericalTransformIter.html">SphericalTransformIter</a>* sc::Integral::new_spherical_transform_iter           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>l</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>inv</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>subl</em> = <code>-1</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return a <a class="el" href="classsc_1_1SphericalTransformIter.html" title="This iterates through the components of a SphericalTransform.">SphericalTransformIter</a> object. 
<p>
The caller is responsible for freeing the object. 
<p>Implemented in <a class="el" href="classsc_1_1IntegralCints.html#1464e2e20198030000b3e38ba1dc3060">sc::IntegralCints</a>, <a class="el" href="classsc_1_1IntegralCCA.html#5c2c73f2b76441e718db29ca4bf05324">sc::IntegralCCA</a>, and <a class="el" href="classsc_1_1IntegralV3.html#bf56054f9d13b4fccb97eeed3db2f45c">sc::IntegralV3</a>.</p>

</div>
</div><p>
<a class="anchor" name="560894dc5dded4796e174946cab6bfdd"></a><!-- doxytag: member="sc::Integral::nuclear" ref="560894dc5dded4796e174946cab6bfdd" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt;<a class="el" href="classsc_1_1OneBodyInt.html">OneBodyInt</a>&gt; sc::Integral::nuclear           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return a <a class="el" href="classsc_1_1OneBodyInt.html" title="OneBodyInt is an abstract base class for objects that compute integrals between two...">OneBodyInt</a> that computes the nuclear repulsion integrals. 
<p>
Charges from the atoms on center one are used. If center two is not identical to center one, then the charges on center two are included as well. 
<p>Implemented in <a class="el" href="classsc_1_1IntegralCints.html#312ca5727d4f1ddf584bdd790457c4f0">sc::IntegralCints</a>, <a class="el" href="classsc_1_1IntegralCCA.html#5ed5b4e44bb5cc3dbf710794ca867108">sc::IntegralCCA</a>, and <a class="el" href="classsc_1_1IntegralV3.html#f6b5562bbbe84dc3437a97550d764c0b">sc::IntegralV3</a>.</p>

</div>
</div><p>
<a class="anchor" name="1d675afe29b03e87042d46aab0ad9566"></a><!-- doxytag: member="sc::Integral::point_charge" ref="1d675afe29b03e87042d46aab0ad9566" args="(const Ref&lt; PointChargeData &gt; &amp;)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt;<a class="el" href="classsc_1_1OneBodyInt.html">OneBodyInt</a>&gt; sc::Integral::point_charge           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; PointChargeData &gt; &amp;&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return a <a class="el" href="classsc_1_1OneBodyInt.html" title="OneBodyInt is an abstract base class for objects that compute integrals between two...">OneBodyInt</a> that computes the integrals for interactions with point charges. 
<p>

<p>Implemented in <a class="el" href="classsc_1_1IntegralCints.html#1f02c425012a3084bf54c8261fd539ee">sc::IntegralCints</a>, <a class="el" href="classsc_1_1IntegralCCA.html#1b28a56feb76d807d7e58b3f257c113b">sc::IntegralCCA</a>, and <a class="el" href="classsc_1_1IntegralV3.html#c9fa285cdb7b740547b45485f9528226">sc::IntegralV3</a>.</p>

</div>
</div><p>
<a class="anchor" name="20d4f07ccfb80db13221d213b5dc7ade"></a><!-- doxytag: member="sc::Integral::point_charge1" ref="20d4f07ccfb80db13221d213b5dc7ade" args="(const Ref&lt; PointChargeData &gt; &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt;<a class="el" href="classsc_1_1OneBodyOneCenterInt.html">OneBodyOneCenterInt</a>&gt; sc::Integral::point_charge1           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; PointChargeData &gt; &amp;&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return a <a class="el" href="classsc_1_1OneBodyInt.html" title="OneBodyInt is an abstract base class for objects that compute integrals between two...">OneBodyInt</a> that computes the integrals for interactions with point charges. 
<p>

<p>Reimplemented in <a class="el" href="classsc_1_1IntegralV3.html#abca95f016b57f8771323949f20a5500">sc::IntegralV3</a>.</p>

</div>
</div><p>
<a class="anchor" name="faaf6ba309a4cccf2a9958f84d0c58ea"></a><!-- doxytag: member="sc::Integral::quadrupole" ref="faaf6ba309a4cccf2a9958f84d0c58ea" args="(const Ref&lt; DipoleData &gt; &amp;)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt;<a class="el" href="classsc_1_1OneBodyInt.html">OneBodyInt</a>&gt; sc::Integral::quadrupole           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; DipoleData &gt; &amp;&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return a <a class="el" href="classsc_1_1OneBodyInt.html" title="OneBodyInt is an abstract base class for objects that compute integrals between two...">OneBodyInt</a> that computes electric quadrupole moment integrals. 
<p>
The canonical order of integrals in a set is x^2, xy, xz, y^2, yz, z^2. 
<p>Implemented in <a class="el" href="classsc_1_1IntegralCints.html#04e17aa06cf3e45162734032427aca4f">sc::IntegralCints</a>, <a class="el" href="classsc_1_1IntegralCCA.html#378ce76b6d8dbb492e23aca32a21a7ff">sc::IntegralCCA</a>, and <a class="el" href="classsc_1_1IntegralV3.html#701249087fa6ecac3aa850aee58da22c">sc::IntegralV3</a>.</p>

</div>
</div><p>
<a class="anchor" name="5a029c2e671f83f63e090d8a4bcbaaa2"></a><!-- doxytag: member="sc::Integral::save_data_state" ref="5a029c2e671f83f63e090d8a4bcbaaa2" args="(StateOut &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void sc::Integral::save_data_state           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classsc_1_1StateOut.html">StateOut</a> &amp;&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Save the base classes (with save_data_state) and the members in the same order that the <a class="el" href="classsc_1_1StateIn.html" title="Restores objects that derive from SavableState.">StateIn</a> CTOR initializes them. 
<p>
This must be implemented by the derived class if the class has data. 
<p>Reimplemented from <a class="el" href="classsc_1_1SavableState.html#f9e0c212322d3c0f43e2dcb33e111acf">sc::SavableState</a>.</p>

<p>Reimplemented in <a class="el" href="classsc_1_1IntegralCints.html#a5b70426340cbcc994307d600885932b">sc::IntegralCints</a>, <a class="el" href="classsc_1_1IntegralCCA.html#72dda136880c1f056a96cbd3dc25e242">sc::IntegralCCA</a>, and <a class="el" href="classsc_1_1IntegralV3.html#4de49f987e4221a6164ff70848b3f6f7">sc::IntegralV3</a>.</p>

</div>
</div><p>
<a class="anchor" name="82e4c39be7b2176b530ebff5d2c66df4"></a><!-- doxytag: member="sc::Integral::shell_rotation" ref="82e4c39be7b2176b530ebff5d2c66df4" args="(int am, SymmetryOperation &amp;, int pure=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classsc_1_1ShellRotation.html">ShellRotation</a> sc::Integral::shell_rotation           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>am</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classsc_1_1SymmetryOperation.html">SymmetryOperation</a> &amp;&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>pure</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the <a class="el" href="classsc_1_1ShellRotation.html" title="Compute the transformation matrices that maps a set of Cartesian functions to another...">ShellRotation</a> object for a shell of the given angular momentum. 
<p>
Pass nonzero to pure to do solid harmonics. 
</div>
</div><p>
<a class="anchor" name="e6d4afdbb3d5cdf69b0e082fb30e7400"></a><!-- doxytag: member="sc::Integral::spherical_transform" ref="e6d4afdbb3d5cdf69b0e082fb30e7400" args="(int l, int inv=0, int subl=&#45;1)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="classsc_1_1SphericalTransform.html">SphericalTransform</a>* sc::Integral::spherical_transform           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>l</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>inv</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>subl</em> = <code>-1</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return a <a class="el" href="classsc_1_1SphericalTransform.html" title="This is a base class for a container for a sparse Cartesian to solid harmonic basis...">SphericalTransform</a> object. 
<p>
The pointer is only valid while this <a class="el" href="classsc_1_1Integral.html" title="The Integral abstract class acts as a factory to provide objects that compute one...">Integral</a> object is valid. 
<p>Implemented in <a class="el" href="classsc_1_1IntegralCints.html#b1e892d0051f98df47260c041ec700a7">sc::IntegralCints</a>, <a class="el" href="classsc_1_1IntegralCCA.html#b2478b2e4012ecd7c23665297f3e4626">sc::IntegralCCA</a>, and <a class="el" href="classsc_1_1IntegralV3.html#8b175905dde489cd7070624c0851fad9">sc::IntegralV3</a>.</p>

</div>
</div><p>
<a class="anchor" name="15af6c01e8f3ff5826bcbcceeb2bddd0"></a><!-- doxytag: member="sc::Integral::storage_required_eri" ref="15af6c01e8f3ff5826bcbcceeb2bddd0" args="(const Ref&lt; GaussianBasisSet &gt; &amp;b1, const Ref&lt; GaussianBasisSet &gt; &amp;b2=0, const Ref&lt; GaussianBasisSet &gt; &amp;b3=0, const Ref&lt; GaussianBasisSet &gt; &amp;b4=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual size_t sc::Integral::storage_required_eri           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>b1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>b2</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>b3</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>b4</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns how much storage will be needed to initialize a two-body integrals evaluator for electron repulsion integrals. 
<p>

<p>Reimplemented in <a class="el" href="classsc_1_1IntegralCints.html#19d52ddf6f96d6f7a6b9029b229a905e">sc::IntegralCints</a>.</p>

</div>
</div><p>
<a class="anchor" name="98173be8265c2ced4f0aafb700ee3bad"></a><!-- doxytag: member="sc::Integral::storage_required_eri_deriv" ref="98173be8265c2ced4f0aafb700ee3bad" args="(const Ref&lt; GaussianBasisSet &gt; &amp;b1, const Ref&lt; GaussianBasisSet &gt; &amp;b2=0, const Ref&lt; GaussianBasisSet &gt; &amp;b3=0, const Ref&lt; GaussianBasisSet &gt; &amp;b4=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual size_t sc::Integral::storage_required_eri_deriv           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>b1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>b2</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>b3</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>b4</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns how much storage will be needed to initialize a two-body integrals evaluator for derivative electron repulsion integrals. 
<p>

</div>
</div><p>
<a class="anchor" name="0eaf219a5910e66921edaa5fb4e7df4e"></a><!-- doxytag: member="sc::Integral::storage_required_grt" ref="0eaf219a5910e66921edaa5fb4e7df4e" args="(const Ref&lt; GaussianBasisSet &gt; &amp;b1, const Ref&lt; GaussianBasisSet &gt; &amp;b2=0, const Ref&lt; GaussianBasisSet &gt; &amp;b3=0, const Ref&lt; GaussianBasisSet &gt; &amp;b4=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual size_t sc::Integral::storage_required_grt           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>b1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>b2</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>b3</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>b4</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns how much storage will be needed to initialize a two-body integrals evaluator for linear R12 integrals. 
<p>

<p>Reimplemented in <a class="el" href="classsc_1_1IntegralCints.html#6630242027c748dc94410a46a424ccc1">sc::IntegralCints</a>.</p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="integral_8h_source.html">integral.h</a></ul>
</div>
<hr>
<address>
<small>

Generated at Wed Oct 14 14:12:13 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>