<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta name="robots" content="noindex"> <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>sc::MolecularEnergy class Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body bgcolor="#ffffff"> <!-- Generated by Doxygen 1.2.5 on Mon Oct 14 14:17:09 2002 --> <center> <a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> <a class="qindex" href="pages.html">Related Pages</a> </center> <hr><h1>sc::MolecularEnergy Class Reference</h1>The <a class="el" href="class_sc__MolecularEnergy.html">MolecularEnergy</a> abstract class inherits from the <a class="el" href="class_sc__Function.html">Function</a> class. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="energy_h-source.html">energy.h</a>></code> <p> Inheritance diagram for sc::MolecularEnergy<p><center><img src="class_sc__MolecularEnergy_inherit_graph.gif" border="0" usemap="#sc::MolecularEnergy_inherit_map" alt="Inheritance graph"></center> <map name="sc::MolecularEnergy_inherit_map"> <area href="class_sc__Wavefunction.html" shape="rect" coords="371,280,478,299"> <area href="class_sc__Function.html" shape="rect" coords="227,147,307,166"> <area href="class_sc__SavableState.html" shape="rect" coords="159,80,261,99"> <area href="class_sc__DescribedClass.html" shape="rect" coords="153,14,267,32"> <area href="class_sc__Compute.html" shape="rect" coords="285,80,365,99"> <area href="class_sc__MBPT2.html" shape="rect" coords="247,347,322,366"> <area href="class_sc__OneBodyWavefunction.html" shape="rect" coords="346,347,503,366"> <area href="class_sc__PsiWavefunction.html" shape="rect" coords="598,347,721,366"> <area href="class_sc__SCF.html" shape="rect" coords="445,414,501,432"> <area href="class_sc__PsiCCSD.html" shape="rect" coords="525,414,607,432"> <area href="class_sc__PsiCCSD_T.html" shape="rect" coords="631,414,730,432"> <area href="class_sc__PsiSCF.html" shape="rect" coords="754,414,826,432"> </map> <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for sc::MolecularEnergy:<p><center><img src="class_sc__MolecularEnergy_coll_graph.gif" border="0" usemap="#sc::MolecularEnergy_coll_map" alt="Collaboration graph"></center> <map name="sc::MolecularEnergy_coll_map"> <area href="class_sc__Function.html" shape="rect" coords="289,127,369,146"> <area href="class_sc__RefSCVector.html" shape="rect" coords="37,36,141,55"> <area href="class_sc__RefSCDimension.html" shape="rect" coords="26,158,151,176"> <area href="class_sc__Ref.html" shape="rect" coords="267,246,390,264"> <area href="class_sc__Ref.html" shape="rect" coords="253,306,405,324"> <area href="class_sc__Ref.html" shape="rect" coords="262,370,395,388"> <area href="class_sc__Ref.html" shape="rect" coords="245,450,413,468"> <area href="class_sc__RefSymmSCMatrix.html" shape="rect" coords="259,514,398,532"> </map> <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="class_sc__MolecularEnergy-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0> <tr><td colspan=2><br><h2>Public Methods</h2></td></tr> <tr><td nowrap align=right valign=top><a name="a0" doxytag="sc::MolecularEnergy::MolecularEnergy"></a> </td><td valign=bottom><b>MolecularEnergy</b> (const MolecularEnergy &)</td></tr> <tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="class_sc__MolecularEnergy.html#a1">MolecularEnergy</a> (const <a class="el" href="class_sc__Ref.html">Ref</a>< <a class="el" href="class_sc__KeyVal.html">KeyVal</a> > &)</td></tr> <tr><td> </td><td><font size=-1><em>The <a class="el" href="class_sc__KeyVal.html">KeyVal</a> constructor.</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a2" doxytag="sc::MolecularEnergy::MolecularEnergy"></a> </td><td valign=bottom><b>MolecularEnergy</b> (<a class="el" href="class_sc__StateIn.html">StateIn</a> &)</td></tr> <tr><td nowrap align=right valign=top><a name="a3" doxytag="sc::MolecularEnergy::~MolecularEnergy"></a> </td><td valign=bottom><b>~MolecularEnergy</b> ()</td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_sc__MolecularEnergy.html#a4">save_data_state</a> (<a class="el" href="class_sc__StateOut.html">StateOut</a> &)</td></tr> <tr><td> </td><td><font size=-1><em>Save the base classes (with save_data_state) and the members in the same order that the <a class="el" href="class_sc__StateIn.html">StateIn</a> CTOR initializes them.</em> <a href="#a4">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a5" doxytag="sc::MolecularEnergy::operator="></a> MolecularEnergy& </td><td valign=bottom><b>operator=</b> (const MolecularEnergy &)</td></tr> <tr><td nowrap align=right valign=top><a name="a6" doxytag="sc::MolecularEnergy::energy"></a> virtual double </td><td valign=bottom><a class="el" href="class_sc__MolecularEnergy.html#a6">energy</a> ()</td></tr> <tr><td> </td><td><font size=-1><em>A wrapper around <a class="el" href="class_sc__Function.html#a9">value</a>();.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a7" doxytag="sc::MolecularEnergy::molecule"></a> virtual <a class="el" href="class_sc__Ref.html">Ref</a><<a class="el" href="class_sc__Molecule.html">Molecule</a>> </td><td valign=bottom><b>molecule</b> () const</td></tr> <tr><td nowrap align=right valign=top><a name="a8" doxytag="sc::MolecularEnergy::moldim"></a> virtual <a class="el" href="class_sc__RefSCDimension.html">RefSCDimension</a> </td><td valign=bottom><b>moldim</b> () const</td></tr> <tr><td nowrap align=right valign=top><a name="a9" doxytag="sc::MolecularEnergy::guess_hessian"></a> void </td><td valign=bottom><a class="el" href="class_sc__MolecularEnergy.html#a9">guess_hessian</a> (<a class="el" href="class_sc__RefSymmSCMatrix.html">RefSymmSCMatrix</a> &)</td></tr> <tr><td> </td><td><font size=-1><em><a class="el" href="class_sc__Compute.html">Compute</a> a quick, approximate hessian.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a10" doxytag="sc::MolecularEnergy::inverse_hessian"></a> <a class="el" href="class_sc__RefSymmSCMatrix.html">RefSymmSCMatrix</a> </td><td valign=bottom><b>inverse_hessian</b> (<a class="el" href="class_sc__RefSymmSCMatrix.html">RefSymmSCMatrix</a> &)</td></tr> <tr><td nowrap align=right valign=top><a name="a11" doxytag="sc::MolecularEnergy::hessian"></a> <a class="el" href="class_sc__RefSymmSCMatrix.html">RefSymmSCMatrix</a> </td><td valign=bottom><a class="el" href="class_sc__MolecularEnergy.html#a11">hessian</a> ()</td></tr> <tr><td> </td><td><font size=-1><em>If a molecule hessian object is given, it will be used to provide a hessian.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a12" doxytag="sc::MolecularEnergy::hessian_implemented"></a> int </td><td valign=bottom><b>hessian_implemented</b> () const</td></tr> <tr><td nowrap align=right valign=top><a name="a13" doxytag="sc::MolecularEnergy::set_x"></a> void </td><td valign=bottom><a class="el" href="class_sc__MolecularEnergy.html#a13">set_x</a> (const <a class="el" href="class_sc__RefSCVector.html">RefSCVector</a> &)</td></tr> <tr><td> </td><td><font size=-1><em>Set and retrieve the coordinate values.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a14" doxytag="sc::MolecularEnergy::get_cartesian_x"></a> <a class="el" href="class_sc__RefSCVector.html">RefSCVector</a> </td><td valign=bottom><a class="el" href="class_sc__MolecularEnergy.html#a14">get_cartesian_x</a> ()</td></tr> <tr><td> </td><td><font size=-1><em>Return the cartesian coordinates.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a15" doxytag="sc::MolecularEnergy::get_cartesian_gradient"></a> <a class="el" href="class_sc__RefSCVector.html">RefSCVector</a> </td><td valign=bottom><a class="el" href="class_sc__MolecularEnergy.html#a15">get_cartesian_gradient</a> ()</td></tr> <tr><td> </td><td><font size=-1><em>Return the cartesian gradient.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a16" doxytag="sc::MolecularEnergy::get_cartesian_hessian"></a> <a class="el" href="class_sc__RefSymmSCMatrix.html">RefSymmSCMatrix</a> </td><td valign=bottom><a class="el" href="class_sc__MolecularEnergy.html#a16">get_cartesian_hessian</a> ()</td></tr> <tr><td> </td><td><font size=-1><em>Return the cartesian hessian.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a17" doxytag="sc::MolecularEnergy::molecularcoor"></a> <a class="el" href="class_sc__Ref.html">Ref</a><<a class="el" href="class_sc__MolecularCoor.html">MolecularCoor</a>> </td><td valign=bottom><b>molecularcoor</b> ()</td></tr> <tr><td nowrap align=right valign=top><a name="a18" doxytag="sc::MolecularEnergy::symmetry_changed"></a> virtual void </td><td valign=bottom><a class="el" href="class_sc__MolecularEnergy.html#a18">symmetry_changed</a> ()</td></tr> <tr><td> </td><td><font size=-1><em>Call this if you have changed the molecular symmetry of the molecule contained by this <a class="el" href="class_sc__MolecularEnergy.html">MolecularEnergy</a>.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a class="el" href="class_sc__Ref.html">Ref</a><<a class="el" href="class_sc__NonlinearTransform.html">NonlinearTransform</a>> </td><td valign=bottom><a class="el" href="class_sc__MolecularEnergy.html#a19">change_coordinates</a> ()</td></tr> <tr><td> </td><td><font size=-1><em>An optimizer can call change coordinates periodically to give the function an opportunity to change its coordinate system.</em> <a href="#a19">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a20" doxytag="sc::MolecularEnergy::print_natom_3"></a> void </td><td valign=bottom><a class="el" href="class_sc__MolecularEnergy.html#a20">print_natom_3</a> (const <a class="el" href="class_sc__RefSCVector.html">RefSCVector</a> &, const char *t=0, std::ostream &o=ExEnv::out0()) const</td></tr> <tr><td> </td><td><font size=-1><em>Nicely print n x 3 data that are stored in a vector.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a21" doxytag="sc::MolecularEnergy::print_natom_3"></a> void </td><td valign=bottom><b>print_natom_3</b> (double **, const char *t=0, std::ostream &o=ExEnv::out0()) const</td></tr> <tr><td nowrap align=right valign=top><a name="a22" doxytag="sc::MolecularEnergy::print_natom_3"></a> void </td><td valign=bottom><b>print_natom_3</b> (double *, const char *t=0, std::ostream &o=ExEnv::out0()) const</td></tr> <tr><td nowrap align=right valign=top><a name="a23" doxytag="sc::MolecularEnergy::print"></a> virtual void </td><td valign=bottom><a class="el" href="class_sc__MolecularEnergy.html#a23">print</a> (std::ostream &=ExEnv::out0()) const</td></tr> <tr><td> </td><td><font size=-1><em>Print information about the object.</em></font><br><br></td></tr> <tr><td colspan=2><br><h2>Protected Methods</h2></td></tr> <tr><td nowrap align=right valign=top><a name="b0" doxytag="sc::MolecularEnergy::failure"></a> void </td><td valign=bottom><b>failure</b> (const char *)</td></tr> <tr><td nowrap align=right valign=top><a name="b1" doxytag="sc::MolecularEnergy::set_energy"></a> virtual void </td><td valign=bottom><a class="el" href="class_sc__MolecularEnergy.html#b1">set_energy</a> (double)</td></tr> <tr><td> </td><td><font size=-1><em>This is just a wrapper around set_value().</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>virtual void </td><td valign=bottom><a class="el" href="class_sc__MolecularEnergy.html#b2">set_gradient</a> (<a class="el" href="class_sc__RefSCVector.html">RefSCVector</a> &)</td></tr> <tr><td> </td><td><font size=-1><em>These are passed gradients and hessian in cartesian coordinates.</em> <a href="#b2">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="b3" doxytag="sc::MolecularEnergy::set_hessian"></a> virtual void </td><td valign=bottom><b>set_hessian</b> (<a class="el" href="class_sc__RefSymmSCMatrix.html">RefSymmSCMatrix</a> &)</td></tr> <tr><td nowrap align=right valign=top><a name="b4" doxytag="sc::MolecularEnergy::x_to_molecule"></a> void </td><td valign=bottom><b>x_to_molecule</b> ()</td></tr> <tr><td nowrap align=right valign=top><a name="b5" doxytag="sc::MolecularEnergy::molecule_to_x"></a> void </td><td valign=bottom><b>molecule_to_x</b> ()</td></tr> <tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr> <tr><td nowrap align=right valign=top><a name="n0" doxytag="sc::MolecularEnergy::initial_pg_"></a> <a class="el" href="class_sc__Ref.html">Ref</a><<a class="el" href="class_sc__PointGroup.html">PointGroup</a>> </td><td valign=bottom><b>initial_pg_</b></td></tr> <tr><td nowrap align=right valign=top><a name="n1" doxytag="sc::MolecularEnergy::print_molecule_when_changed_"></a> int </td><td 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="class_sc__MolecularEnergy.html">MolecularEnergy</a> abstract class inherits from the <a class="el" href="class_sc__Function.html">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. <p> <hr><h2>Constructor & Destructor Documentation</h2> <a name="a1" doxytag="sc::MolecularEnergy::MolecularEnergy"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> sc::MolecularEnergy::MolecularEnergy ( </b></td> <td valign="bottom"><b> const <a class="el" href="class_sc__Ref.html">Ref</a>< <a class="el" href="class_sc__KeyVal.html">KeyVal</a> > & ) </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> The <a class="el" href="class_sc__KeyVal.html">KeyVal</a> constructor. <p> <dl compact> <p> <dt><code>molecule</code><dd> A <a class="el" href="class_sc__Molecule.html">Molecule</a> object. There is no default. <p> <dt><code>coor</code><dd> A <a class="el" href="class_sc__MolecularCoor.html">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="class_sc__MolecularCoor.html">MolecularCoor</a> object are automatically provided: natom3 and matrixkit. <p> <dt><code>value_accuracy</code><dd> Sets the accuracy to which values are computed. The default is 1.0e-6 atomic units. <p> <dt><code>gradient_accuracy</code><dd> Sets the accuracy to which gradients are computed. The default is 1.0e-6 atomic units. <p> <dt><code>hessian_accuracy</code><dd> Sets the accuracy to which hessians are computed. The default is 1.0e-4 atomic units. <p> <dt><code>print_molecule_when_changed</code><dd> If true, then whenever the molecule's coordinates are updated they will be printed. The default is true. <p> </dl> </td> </tr> </table> <hr><h2>Member Function Documentation</h2> <a name="a19" doxytag="sc::MolecularEnergy::change_coordinates"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> <a class="el" href="class_sc__Ref.html">Ref</a><<a class="el" href="class_sc__NonlinearTransform.html">NonlinearTransform</a>> sc::MolecularEnergy::change_coordinates ( </b></td> <td valign="bottom"><b> )<code> [virtual]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <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="class_sc__Function.html#a38">sc::Function</a>. </td> </tr> </table> <a name="a4" doxytag="sc::MolecularEnergy::save_data_state"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> void sc::MolecularEnergy::save_data_state ( </b></td> <td valign="bottom"><b> <a class="el" href="class_sc__StateOut.html">StateOut</a> & <em>s</em> )<code> [virtual]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Save the base classes (with save_data_state) and the members in the same order that the <a class="el" href="class_sc__StateIn.html">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="class_sc__Function.html#a8">sc::Function</a>. <p> Reimplemented in <a class="el" href="class_sc__MBPT2.html#a3">sc::MBPT2</a>, <a class="el" href="class_sc__PsiWavefunction.html#a3">sc::PsiWavefunction</a>, <a class="el" href="class_sc__PsiSCF.html#a3">sc::PsiSCF</a>, <a class="el" href="class_sc__PsiCCSD.html#a3">sc::PsiCCSD</a>, <a class="el" href="class_sc__PsiCCSD_T.html#a3">sc::PsiCCSD_T</a>, <a class="el" href="class_sc__CLHF.html#a3">sc::CLHF</a>, <a class="el" href="class_sc__CLSCF.html#a3">sc::CLSCF</a>, <a class="el" href="class_sc__HSOSHF.html#a3">sc::HSOSHF</a>, <a class="el" href="class_sc__HSOSSCF.html#a3">sc::HSOSSCF</a>, <a class="el" href="class_sc__SCF.html#a3">sc::SCF</a>, <a class="el" href="class_sc__UnrestrictedSCF.html#a3">sc::UnrestrictedSCF</a>, <a class="el" href="class_sc__OneBodyWavefunction.html#a3">sc::OneBodyWavefunction</a>, and <a class="el" href="class_sc__Wavefunction.html#a3">sc::Wavefunction</a>. </td> </tr> </table> <a name="b2" doxytag="sc::MolecularEnergy::set_gradient"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> void sc::MolecularEnergy::set_gradient ( </b></td> <td valign="bottom"><b> <a class="el" href="class_sc__RefSCVector.html">RefSCVector</a> & <em>g</em> )<code> [protected, virtual]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <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="class_sc__Function.html">sc::Function</a>. </td> </tr> </table> <hr>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="energy_h-source.html">energy.h</a></ul> <hr> <address> <small> Generated at Mon Oct 14 14:17:10 2002 for <a href="http://aros.ca.sandia.gov/~cljanss/mpqc">MPQC</a> 2.1.2 using the documentation package <a href="http://www.stack.nl/~dimitri/doxygen/index.html">Doxygen</a> 1.2.5. </small> </address> </body> </html>