Sophie

Sophie

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

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::MolecularEnergy 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_1MolecularEnergy.html">MolecularEnergy</a>
  </div>
</div>
<div class="contents">
<h1>sc::MolecularEnergy Class Reference</h1><!-- doxytag: class="sc::MolecularEnergy" --><!-- doxytag: inherits="sc::Function" -->The <a class="el" href="classsc_1_1MolecularEnergy.html" title="The MolecularEnergy abstract class inherits from the Function class.">MolecularEnergy</a> abstract class inherits from the <a class="el" href="classsc_1_1Function.html" title="The Function class is an abstract base class that, given a set of coordinates, will...">Function</a> class.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="energy_8h_source.html">energy.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for sc::MolecularEnergy:</div>
<div class="dynsection">

<p><center><img src="classsc_1_1MolecularEnergy.png" usemap="#sc::MolecularEnergy_map" border="0" alt=""></center>
<map name="sc::MolecularEnergy_map">
<area href="classsc_1_1Function.html" alt="sc::Function" shape="rect" coords="427,224,588,248">
<area href="classsc_1_1SavableState.html" alt="sc::SavableState" shape="rect" coords="342,168,503,192">
<area href="classsc_1_1Compute.html" alt="sc::Compute" shape="rect" coords="513,168,674,192">
<area href="classsc_1_1DescribedClass.html" alt="sc::DescribedClass" shape="rect" coords="342,112,503,136">
<area href="classsc_1_1RefCount.html" alt="sc::RefCount" shape="rect" coords="342,56,503,80">
<area href="classsc_1_1Identity.html" alt="sc::Identity" shape="rect" coords="342,0,503,24">
<area href="classsc_1_1Wavefunction.html" alt="sc::Wavefunction" shape="rect" coords="427,336,588,360">
<area href="classsc_1_1MBPT2.html" alt="sc::MBPT2" shape="rect" coords="0,392,161,416">
<area href="classsc_1_1OneBodyWavefunction.html" alt="sc::OneBodyWavefunction" shape="rect" coords="427,392,588,416">
<area href="classsc_1_1PsiWavefunction.html" alt="sc::PsiWavefunction" shape="rect" coords="769,392,930,416">
<area href="classsc_1_1MBPT2__R12.html" alt="sc::MBPT2_R12" shape="rect" coords="0,448,161,472">
<area href="classsc_1_1SCF.html" alt="sc::SCF" shape="rect" coords="427,448,588,472">
<area href="classsc_1_1PsiCCSD.html" alt="sc::PsiCCSD" shape="rect" coords="598,448,759,472">
<area href="classsc_1_1PsiCCSD__T.html" alt="sc::PsiCCSD_T" shape="rect" coords="769,448,930,472">
<area href="classsc_1_1PsiSCF.html" alt="sc::PsiSCF" shape="rect" coords="1111,448,1272,472">
<area href="classsc_1_1CLSCF.html" alt="sc::CLSCF" shape="rect" coords="85,504,246,528">
<area href="classsc_1_1HSOSSCF.html" alt="sc::HSOSSCF" shape="rect" coords="427,504,588,528">
<area href="classsc_1_1UnrestrictedSCF.html" alt="sc::UnrestrictedSCF" shape="rect" coords="769,504,930,528">
<area href="classsc_1_1PsiCLHF.html" alt="sc::PsiCLHF" shape="rect" coords="940,504,1101,528">
<area href="classsc_1_1PsiHSOSHF.html" alt="sc::PsiHSOSHF" shape="rect" coords="1111,504,1272,528">
<area href="classsc_1_1PsiUHF.html" alt="sc::PsiUHF" shape="rect" coords="1282,504,1443,528">
<area href="classsc_1_1CLHF.html" alt="sc::CLHF" shape="rect" coords="0,560,161,584">
<area href="classsc_1_1CLKS.html" alt="sc::CLKS" shape="rect" coords="171,560,332,584">
<area href="classsc_1_1HSOSHF.html" alt="sc::HSOSHF" shape="rect" coords="342,560,503,584">
<area href="classsc_1_1HSOSKS.html" alt="sc::HSOSKS" shape="rect" coords="513,560,674,584">
<area href="classsc_1_1UHF.html" alt="sc::UHF" shape="rect" coords="684,560,845,584">
<area href="classsc_1_1UKS.html" alt="sc::UKS" shape="rect" coords="855,560,1016,584">
</map>
</div>

<p>
<a href="classsc_1_1MolecularEnergy-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="fedcc8c722d628d2b6d362058f1e817e"></a><!-- doxytag: member="sc::MolecularEnergy::MolecularEnergy" ref="fedcc8c722d628d2b6d362058f1e817e" args="(const MolecularEnergy &amp;)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><b>MolecularEnergy</b> (const <a class="el" href="classsc_1_1MolecularEnergy.html">MolecularEnergy</a> &amp;)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MolecularEnergy.html#23b2fbe1770bf60480aaf5febcd0e9c0">MolecularEnergy</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">The <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> constructor.  <a href="#23b2fbe1770bf60480aaf5febcd0e9c0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="28fc2528822e9f7af6d05e77176e6cf4"></a><!-- doxytag: member="sc::MolecularEnergy::MolecularEnergy" ref="28fc2528822e9f7af6d05e77176e6cf4" args="(StateIn &amp;)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><b>MolecularEnergy</b> (<a class="el" href="classsc_1_1StateIn.html">StateIn</a> &amp;)</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_1MolecularEnergy.html#1ec669bc0334cafd4e6f462827df6f5e">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="#1ec669bc0334cafd4e6f462827df6f5e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a31ded722594ff736ce127bd02493170"></a><!-- doxytag: member="sc::MolecularEnergy::set_checkpoint" ref="a31ded722594ff736ce127bd02493170" args="()" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MolecularEnergy.html#a31ded722594ff736ce127bd02493170">set_checkpoint</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set up checkpointing. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="317d9c684f5aad5928e95b99178d1c6d"></a><!-- doxytag: member="sc::MolecularEnergy::set_checkpoint_file" ref="317d9c684f5aad5928e95b99178d1c6d" args="(const char *)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_checkpoint_file</b> (const char *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="16d80fd5c950bcd88f2b662a1da565a6"></a><!-- doxytag: member="sc::MolecularEnergy::set_checkpoint_freq" ref="16d80fd5c950bcd88f2b662a1da565a6" args="(int freq)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_checkpoint_freq</b> (int freq)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c74725251f86f8dc26a098ed911bbaf3"></a><!-- doxytag: member="sc::MolecularEnergy::if_to_checkpoint" ref="c74725251f86f8dc26a098ed911bbaf3" args="() const " -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MolecularEnergy.html#c74725251f86f8dc26a098ed911bbaf3">if_to_checkpoint</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check if need to checkpoint. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9240c4c3de95080d908a515f68a57fb8"></a><!-- doxytag: member="sc::MolecularEnergy::checkpoint_file" ref="9240c4c3de95080d908a515f68a57fb8" args="() const " -->
const char *&nbsp;</td><td class="memItemRight" valign="bottom"><b>checkpoint_file</b> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="41c53ba3f24e28dae4d4c0d00c1438e0"></a><!-- doxytag: member="sc::MolecularEnergy::checkpoint_freq" ref="41c53ba3f24e28dae4d4c0d00c1438e0" args="() const " -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>checkpoint_freq</b> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="df356341c0d869fc3bbfa4e77ad80855"></a><!-- doxytag: member="sc::MolecularEnergy::operator=" ref="df356341c0d869fc3bbfa4e77ad80855" args="(const MolecularEnergy &amp;)" -->
<a class="el" href="classsc_1_1MolecularEnergy.html">MolecularEnergy</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="classsc_1_1MolecularEnergy.html">MolecularEnergy</a> &amp;)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="39c918d7aefc3d389ec8ecbe54f10637"></a><!-- doxytag: member="sc::MolecularEnergy::energy" ref="39c918d7aefc3d389ec8ecbe54f10637" args="()" -->
virtual double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MolecularEnergy.html#39c918d7aefc3d389ec8ecbe54f10637">energy</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A wrapper around <a class="el" href="classsc_1_1Function.html#36e1b9c157780039752a3ea2e3736875" title="Return the value of the function.">value()</a>;. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b178dbe7c01b13476681c4252029b21a"></a><!-- doxytag: member="sc::MolecularEnergy::molecule" ref="b178dbe7c01b13476681c4252029b21a" args="() const " -->
virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1Molecule.html">Molecule</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><b>molecule</b> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ce52473cf27a89f6eea3a592b2cf68d1"></a><!-- doxytag: member="sc::MolecularEnergy::moldim" ref="ce52473cf27a89f6eea3a592b2cf68d1" args="() const " -->
virtual <a class="el" href="classsc_1_1RefSCDimension.html">RefSCDimension</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>moldim</b> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4500df28d0592e910df86571d84588ee"></a><!-- doxytag: member="sc::MolecularEnergy::guess_hessian" ref="4500df28d0592e910df86571d84588ee" args="(RefSymmSCMatrix &amp;)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MolecularEnergy.html#4500df28d0592e910df86571d84588ee">guess_hessian</a> (<a class="el" href="classsc_1_1RefSymmSCMatrix.html">RefSymmSCMatrix</a> &amp;)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classsc_1_1Compute.html" title="The Compute class provides a means of keeping results up to date.">Compute</a> a quick, approximate hessian. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="bb0d497c40cf4e17bc80f19fd6a1ac41"></a><!-- doxytag: member="sc::MolecularEnergy::inverse_hessian" ref="bb0d497c40cf4e17bc80f19fd6a1ac41" args="(RefSymmSCMatrix &amp;)" -->
<a class="el" href="classsc_1_1RefSymmSCMatrix.html">RefSymmSCMatrix</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>inverse_hessian</b> (<a class="el" href="classsc_1_1RefSymmSCMatrix.html">RefSymmSCMatrix</a> &amp;)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classsc_1_1RefSymmSCMatrix.html">RefSymmSCMatrix</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MolecularEnergy.html#7ca73b0e3a11675cca9992b0d1bf262f">hessian</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If a molecule hessian object is given, it will be used to provide a hessian.  <a href="#7ca73b0e3a11675cca9992b0d1bf262f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="72cba5666cfcf255b4265c2160bd07d2"></a><!-- doxytag: member="sc::MolecularEnergy::hessian_implemented" ref="72cba5666cfcf255b4265c2160bd07d2" args="() const " -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>hessian_implemented</b> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c60a11846b974541a1abeb88dbccdd6a"></a><!-- doxytag: member="sc::MolecularEnergy::set_x" ref="c60a11846b974541a1abeb88dbccdd6a" args="(const RefSCVector &amp;)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MolecularEnergy.html#c60a11846b974541a1abeb88dbccdd6a">set_x</a> (const <a class="el" href="classsc_1_1RefSCVector.html">RefSCVector</a> &amp;)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set and retrieve the coordinate values. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="25eb3e9547d3f6b62810d5670e3995ba"></a><!-- doxytag: member="sc::MolecularEnergy::get_cartesian_x" ref="25eb3e9547d3f6b62810d5670e3995ba" args="()" -->
<a class="el" href="classsc_1_1RefSCVector.html">RefSCVector</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MolecularEnergy.html#25eb3e9547d3f6b62810d5670e3995ba">get_cartesian_x</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the cartesian coordinates. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3984fd5f1ad86f80c91e76970c1c00b2"></a><!-- doxytag: member="sc::MolecularEnergy::get_cartesian_gradient" ref="3984fd5f1ad86f80c91e76970c1c00b2" args="()" -->
<a class="el" href="classsc_1_1RefSCVector.html">RefSCVector</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MolecularEnergy.html#3984fd5f1ad86f80c91e76970c1c00b2">get_cartesian_gradient</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the cartesian gradient. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0419a944538171a7d15f750f475c8171"></a><!-- doxytag: member="sc::MolecularEnergy::get_cartesian_hessian" ref="0419a944538171a7d15f750f475c8171" args="()" -->
<a class="el" href="classsc_1_1RefSymmSCMatrix.html">RefSymmSCMatrix</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MolecularEnergy.html#0419a944538171a7d15f750f475c8171">get_cartesian_hessian</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the cartesian hessian. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="349f5a3ad0387ceec612f8fc28bcdd28"></a><!-- doxytag: member="sc::MolecularEnergy::molecularcoor" ref="349f5a3ad0387ceec612f8fc28bcdd28" args="()" -->
<a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1MolecularCoor.html">MolecularCoor</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><b>molecularcoor</b> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MolecularEnergy.html#e6d35df9fa023502ffaffa9a5e15b918">symmetry_changed</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Call this if you have changed the molecular symmetry of the molecule contained by this <a class="el" href="classsc_1_1MolecularEnergy.html" title="The MolecularEnergy abstract class inherits from the Function class.">MolecularEnergy</a>.  <a href="#e6d35df9fa023502ffaffa9a5e15b918"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1NonlinearTransform.html">NonlinearTransform</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MolecularEnergy.html#10f7fa4c6c89628ddbfca08a7aafbb5b">change_coordinates</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An optimizer can call change coordinates periodically to give the function an opportunity to change its coordinate system.  <a href="#10f7fa4c6c89628ddbfca08a7aafbb5b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a2ee8c2bc231e365279c9da15216d6df"></a><!-- doxytag: member="sc::MolecularEnergy::print_natom_3" ref="a2ee8c2bc231e365279c9da15216d6df" args="(const RefSCVector &amp;, const char *t=0, std::ostream &amp;o=ExEnv::out0()) const " -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MolecularEnergy.html#a2ee8c2bc231e365279c9da15216d6df">print_natom_3</a> (const <a class="el" href="classsc_1_1RefSCVector.html">RefSCVector</a> &amp;, const char *t=0, std::ostream &amp;o=ExEnv::out0()) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Nicely print n x 3 data that are stored in a vector. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2c2c36732f5cb8231ce290f60ede7596"></a><!-- doxytag: member="sc::MolecularEnergy::print_natom_3" ref="2c2c36732f5cb8231ce290f60ede7596" args="(double **, const char *t=0, std::ostream &amp;o=ExEnv::out0()) const " -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>print_natom_3</b> (double **, const char *t=0, std::ostream &amp;o=ExEnv::out0()) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="698fa208dc4b19d72e02c32c2b8dcb46"></a><!-- doxytag: member="sc::MolecularEnergy::print_natom_3" ref="698fa208dc4b19d72e02c32c2b8dcb46" args="(double *, const char *t=0, std::ostream &amp;o=ExEnv::out0()) const " -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>print_natom_3</b> (double *, const char *t=0, std::ostream &amp;o=ExEnv::out0()) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6ab2f4cd626cfeade997271f1300df5b"></a><!-- doxytag: member="sc::MolecularEnergy::print" ref="6ab2f4cd626cfeade997271f1300df5b" args="(std::ostream &amp;=ExEnv::out0()) const " -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MolecularEnergy.html#6ab2f4cd626cfeade997271f1300df5b">print</a> (std::ostream &amp;=ExEnv::out0()) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Print information about the object. <br></td></tr>
<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c7520fdc6cb8a3eb5a126f7b7597147e"></a><!-- doxytag: member="sc::MolecularEnergy::failure" ref="c7520fdc6cb8a3eb5a126f7b7597147e" args="(const char *)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>failure</b> (const char *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="91f22cfda8dc508d1ce94479bf81ae41"></a><!-- doxytag: member="sc::MolecularEnergy::set_energy" ref="91f22cfda8dc508d1ce94479bf81ae41" args="(double)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MolecularEnergy.html#91f22cfda8dc508d1ce94479bf81ae41">set_energy</a> (double)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is just a wrapper around set_value(). <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MolecularEnergy.html#441d0e26ed9cea2fc38d81dc88dc5ea2">set_gradient</a> (<a class="el" href="classsc_1_1RefSCVector.html">RefSCVector</a> &amp;)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">These are passed gradients and hessian in cartesian coordinates.  <a href="#441d0e26ed9cea2fc38d81dc88dc5ea2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2339f48bba32a1f54184dfa5ec4a23b1"></a><!-- doxytag: member="sc::MolecularEnergy::set_hessian" ref="2339f48bba32a1f54184dfa5ec4a23b1" args="(RefSymmSCMatrix &amp;)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_hessian</b> (<a class="el" href="classsc_1_1RefSymmSCMatrix.html">RefSymmSCMatrix</a> &amp;)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c2911d4ea4f6a6067012a2e7372f2590"></a><!-- doxytag: member="sc::MolecularEnergy::x_to_molecule" ref="c2911d4ea4f6a6067012a2e7372f2590" args="()" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>x_to_molecule</b> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c8df8e002171c95928d7934da1d772ec"></a><!-- doxytag: member="sc::MolecularEnergy::molecule_to_x" ref="c8df8e002171c95928d7934da1d772ec" args="()" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>molecule_to_x</b> ()</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="2a957e42eb2dbb89a5dc5d418bfe2a27"></a><!-- doxytag: member="sc::MolecularEnergy::initial_pg_" ref="2a957e42eb2dbb89a5dc5d418bfe2a27" args="" -->
<a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1PointGroup.html">PointGroup</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><b>initial_pg_</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="08e3d141bef7556cbb1de87a14450155"></a><!-- doxytag: member="sc::MolecularEnergy::print_molecule_when_changed_" ref="08e3d141bef7556cbb1de87a14450155" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>print_molecule_when_changed_</b></td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
The <a class="el" href="classsc_1_1MolecularEnergy.html" title="The MolecularEnergy abstract class inherits from the Function class.">MolecularEnergy</a> abstract class inherits from the <a class="el" href="classsc_1_1Function.html" title="The Function class is an abstract base class that, given a set of coordinates, will...">Function</a> class. 
<p>
It computes the energy of the molecule as a function of the geometry. The coordinate system used can be either internal or cartesian. <hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="23b2fbe1770bf60480aaf5febcd0e9c0"></a><!-- doxytag: member="sc::MolecularEnergy::MolecularEnergy" ref="23b2fbe1770bf60480aaf5febcd0e9c0" args="(const Ref&lt; KeyVal &gt; &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">sc::MolecularEnergy::MolecularEnergy           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1KeyVal.html">KeyVal</a> &gt; &amp;&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The <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> constructor. 
<p>
<dl>
<dt><code>molecule</code></dt>
<dd>A <a class="el" href="classsc_1_1Molecule.html" title="The Molecule class contains information about molecules.">Molecule</a> object. There is no default.<p>
</dd>
<dt><code>coor</code></dt>
<dd>A <a class="el" href="classsc_1_1MolecularCoor.html" title="The MolecularCoor abstract class describes the coordinate system used to describe...">MolecularCoor</a> object that describes the coordinates. If this is not given cartesian coordinates will be used. For convenience, two keywords needed by the <a class="el" href="classsc_1_1MolecularCoor.html" title="The MolecularCoor abstract class describes the coordinate system used to describe...">MolecularCoor</a> object are automatically provided: natom3 and matrixkit.<p>
</dd>
<dt><code>value_accuracy</code></dt>
<dd>Sets the accuracy to which values are computed. The default is 1.0e-6 atomic units.<p>
</dd>
<dt><code>gradient_accuracy</code></dt>
<dd>Sets the accuracy to which gradients are computed. The default is 1.0e-6 atomic units.<p>
</dd>
<dt><code>hessian_accuracy</code></dt>
<dd>Sets the accuracy to which hessians are computed. The default is 1.0e-4 atomic units.<p>
</dd>
<dt><code>hessian</code></dt>
<dd>Specifies a <a class="el" href="classsc_1_1MolecularHessian.html" title="MolecularHessian is an abstract class that computes a molecule&#39;s second derivatives...">MolecularHessian</a> object that is used to compute the hessian. If this <a class="el" href="classsc_1_1MolecularEnergy.html" title="The MolecularEnergy abstract class inherits from the Function class.">MolecularEnergy</a> specialization does not provide a hessian of its own, and a hessian is needed, then this keyword must be specified.<p>
</dd>
<dt><code>guess_hessian</code></dt>
<dd>Specifies a <a class="el" href="classsc_1_1MolecularHessian.html" title="MolecularHessian is an abstract class that computes a molecule&#39;s second derivatives...">MolecularHessian</a> object that is used to compute a guess hessian. Guess hessians are used to improve the rate of convergence of optimizations. If this keyword is not specified, and a <a class="el" href="classsc_1_1MolecularCoor.html" title="The MolecularCoor abstract class describes the coordinate system used to describe...">MolecularCoor</a> object is given by <code>coor</code>, then the guess hessian is obtained from the <a class="el" href="classsc_1_1MolecularCoor.html" title="The MolecularCoor abstract class describes the coordinate system used to describe...">MolecularCoor</a> object. If neither this nor <code>coor</code> are given, then <a class="el" href="classsc_1_1Function.html#9824774dc9c2539de5237dd43c208e1f" title="Compute a quick, approximate hessian.">Function::guess_hessian</a> is used, which returns a unit matrix.<p>
</dd>
<dt><code>print_molecule_when_changed</code></dt>
<dd>If true, then whenever the molecule's coordinates are updated they will be printed. The default is true.<p>
</dd>
<dt><code>checkpoint</code></dt>
<dd>If true, then this object will be checkpointed during its evaluation. Not all implementations of <code><a class="el" href="classsc_1_1MolecularEnergy.html" title="The MolecularEnergy abstract class inherits from the Function class.">MolecularEnergy</a></code> support checkpointing. The default is false.<p>
</dd>
<dt><code>checkpoint_file</code></dt>
<dd>Specifies the name of the file into which this object will be checkpointed. Default is "&lt;inpubasename&gt;.ckpt", where "&lt;inputbasename&gt;" is the name of the input file without ".in".<p>
</dd>
<dt><code>checkpoint_freq</code></dt>
<dd>Specifies how often this object to be checkpointed. Only matters for objects which are computed iteratively. Default is 1. </dd>
</dl>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="10f7fa4c6c89628ddbfca08a7aafbb5b"></a><!-- doxytag: member="sc::MolecularEnergy::change_coordinates" ref="10f7fa4c6c89628ddbfca08a7aafbb5b" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classsc_1_1Ref.html">Ref</a>&lt;<a class="el" href="classsc_1_1NonlinearTransform.html">NonlinearTransform</a>&gt; sc::MolecularEnergy::change_coordinates           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
An optimizer can call change coordinates periodically to give the function an opportunity to change its coordinate system. 
<p>
A return value of 0 means the coordinates were not changed. Otherwise, a transform object to the new coordinate system is return. The function object applies the transform to any objects it contains. This will obsolete the function data. 
<p>Reimplemented from <a class="el" href="classsc_1_1Function.html#a97727905279ce992e25514f52766c37">sc::Function</a>.</p>

</div>
</div><p>
<a class="anchor" name="7ca73b0e3a11675cca9992b0d1bf262f"></a><!-- doxytag: member="sc::MolecularEnergy::hessian" ref="7ca73b0e3a11675cca9992b0d1bf262f" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classsc_1_1RefSymmSCMatrix.html">RefSymmSCMatrix</a> sc::MolecularEnergy::hessian           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
If a molecule hessian object is given, it will be used to provide a hessian. 
<p>

<p>Reimplemented from <a class="el" href="classsc_1_1Function.html">sc::Function</a>.</p>

</div>
</div><p>
<a class="anchor" name="1ec669bc0334cafd4e6f462827df6f5e"></a><!-- doxytag: member="sc::MolecularEnergy::save_data_state" ref="1ec669bc0334cafd4e6f462827df6f5e" args="(StateOut &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void sc::MolecularEnergy::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_1Function.html#5b48312329bddf00e7a44adb6c577dff">sc::Function</a>.</p>

<p>Reimplemented in <a class="el" href="classsc_1_1CLKS.html#21169fdfeb5542a3de2f06b032cf98be">sc::CLKS</a>, <a class="el" href="classsc_1_1HSOSKS.html#67094f2afdf9dd47a3d345ecd9f20971">sc::HSOSKS</a>, <a class="el" href="classsc_1_1UKS.html#bc444eb2a0a436b8b976749a4d8cbbe1">sc::UKS</a>, <a class="el" href="classsc_1_1MBPT2.html#a90c796fcab0f817548d7ac9dbed5433">sc::MBPT2</a>, <a class="el" href="classsc_1_1MBPT2__R12.html#b350b5b7de7d76a366e6e67f02700786">sc::MBPT2_R12</a>, <a class="el" href="classsc_1_1PsiWavefunction.html#9e8da0f3984a021692b31c92e3973efc">sc::PsiWavefunction</a>, <a class="el" href="classsc_1_1PsiSCF.html#730e6943d35d29c96f0bc852f55e0c40">sc::PsiSCF</a>, <a class="el" href="classsc_1_1PsiCCSD.html#db8d5ef6b2b1ff092a6cfdb6ce3fe127">sc::PsiCCSD</a>, <a class="el" href="classsc_1_1PsiCCSD__T.html#ffa8549a4672a9039b43b0ab7854ae2c">sc::PsiCCSD_T</a>, <a class="el" href="classsc_1_1CLHF.html#026656bcfc805db12be4aab363e28ba3">sc::CLHF</a>, <a class="el" href="classsc_1_1CLSCF.html#3b61717415569b103548a6d68bb36086">sc::CLSCF</a>, <a class="el" href="classsc_1_1HSOSHF.html#93ad9532bd65a5f099e6018af63943f5">sc::HSOSHF</a>, <a class="el" href="classsc_1_1HSOSSCF.html#e8e0badd4f65c1bc1fc269f38afc2065">sc::HSOSSCF</a>, <a class="el" href="classsc_1_1SCF.html#6727cd4ce9c36a67f8a420c979721dec">sc::SCF</a>, <a class="el" href="classsc_1_1UHF.html#103b404f8ec88592d21b6219ea003d92">sc::UHF</a>, <a class="el" href="classsc_1_1UnrestrictedSCF.html#ea95a6a9cfe22d2e75a71365e5858e09">sc::UnrestrictedSCF</a>, <a class="el" href="classsc_1_1OneBodyWavefunction.html#62df766f9b46b80b8a3621a8b1a21af8">sc::OneBodyWavefunction</a>, and <a class="el" href="classsc_1_1Wavefunction.html#7acd34ddf2ab8eec66dfdbd6b190d5c2">sc::Wavefunction</a>.</p>

</div>
</div><p>
<a class="anchor" name="441d0e26ed9cea2fc38d81dc88dc5ea2"></a><!-- doxytag: member="sc::MolecularEnergy::set_gradient" ref="441d0e26ed9cea2fc38d81dc88dc5ea2" args="(RefSCVector &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void sc::MolecularEnergy::set_gradient           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classsc_1_1RefSCVector.html">RefSCVector</a> &amp;&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
These are passed gradients and hessian in cartesian coordinates. 
<p>
The gradient and hessian in internal coordinates are computed. 
<p>Reimplemented from <a class="el" href="classsc_1_1Function.html">sc::Function</a>.</p>

</div>
</div><p>
<a class="anchor" name="e6d35df9fa023502ffaffa9a5e15b918"></a><!-- doxytag: member="sc::MolecularEnergy::symmetry_changed" ref="e6d35df9fa023502ffaffa9a5e15b918" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void sc::MolecularEnergy::symmetry_changed           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Call this if you have changed the molecular symmetry of the molecule contained by this <a class="el" href="classsc_1_1MolecularEnergy.html" title="The MolecularEnergy abstract class inherits from the Function class.">MolecularEnergy</a>. 
<p>

<p>Reimplemented in <a class="el" href="classsc_1_1MBPT2.html#b302fc5baea760ec78006d5e6d32e737">sc::MBPT2</a>, <a class="el" href="classsc_1_1CLSCF.html#d78b394fc002aca15a2a826ad72a118b">sc::CLSCF</a>, <a class="el" href="classsc_1_1HSOSSCF.html#b2b4b0016d3a733e98a205fd895ea9db">sc::HSOSSCF</a>, <a class="el" href="classsc_1_1SCF.html#7389e5956792af122d4dac8341842435">sc::SCF</a>, <a class="el" href="classsc_1_1UnrestrictedSCF.html#fcc7f633b37a59e765647f8fd3cad315">sc::UnrestrictedSCF</a>, <a class="el" href="classsc_1_1OneBodyWavefunction.html#0de7f66bc51466614a4b4dc71e91ab16">sc::OneBodyWavefunction</a>, and <a class="el" href="classsc_1_1Wavefunction.html#430436194aba4f7b0842de283aecd37e">sc::Wavefunction</a>.</p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="energy_8h_source.html">energy.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>