<!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::DenFunctional 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 Page</span></a></li> <li><a href="pages.html"><span>Related 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 List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div class="navpath"><b>sc</b>::<a class="el" href="classsc_1_1DenFunctional.html">DenFunctional</a> </div> </div> <div class="contents"> <h1>sc::DenFunctional Class Reference</h1><!-- doxytag: class="sc::DenFunctional" --><!-- doxytag: inherits="sc::SavableState" -->An abstract base class for density functionals. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="functional_8h_source.html">functional.h</a>></code> <p> <div class="dynheader"> Inheritance diagram for sc::DenFunctional:</div> <div class="dynsection"> <p><center><img src="classsc_1_1DenFunctional.png" usemap="#sc::DenFunctional_map" border="0" alt=""></center> <map name="sc::DenFunctional_map"> <area href="classsc_1_1SavableState.html" alt="sc::SavableState" shape="rect" coords="0,168,148,192"> <area href="classsc_1_1DescribedClass.html" alt="sc::DescribedClass" shape="rect" coords="0,112,148,136"> <area href="classsc_1_1RefCount.html" alt="sc::RefCount" shape="rect" coords="0,56,148,80"> <area href="classsc_1_1Identity.html" alt="sc::Identity" shape="rect" coords="0,0,148,24"> <area href="classsc_1_1Becke88XFunctional.html" alt="sc::Becke88XFunctional" shape="rect" coords="158,280,306,304"> <area href="classsc_1_1G96XFunctional.html" alt="sc::G96XFunctional" shape="rect" coords="158,336,306,360"> <area href="classsc_1_1LSDACFunctional.html" alt="sc::LSDACFunctional" shape="rect" coords="158,392,306,416"> <area href="classsc_1_1LYPCFunctional.html" alt="sc::LYPCFunctional" shape="rect" coords="158,448,306,472"> <area href="classsc_1_1mPW91XFunctional.html" alt="sc::mPW91XFunctional" shape="rect" coords="158,504,306,528"> <area href="classsc_1_1NElFunctional.html" alt="sc::NElFunctional" shape="rect" coords="158,560,306,584"> <area href="classsc_1_1P86CFunctional.html" alt="sc::P86CFunctional" shape="rect" coords="158,616,306,640"> <area href="classsc_1_1PBECFunctional.html" alt="sc::PBECFunctional" shape="rect" coords="158,672,306,696"> <area href="classsc_1_1PBEXFunctional.html" alt="sc::PBEXFunctional" shape="rect" coords="158,728,306,752"> <area href="classsc_1_1PW86XFunctional.html" alt="sc::PW86XFunctional" shape="rect" coords="158,784,306,808"> <area href="classsc_1_1PW91CFunctional.html" alt="sc::PW91CFunctional" shape="rect" coords="158,840,306,864"> <area href="classsc_1_1PW91XFunctional.html" alt="sc::PW91XFunctional" shape="rect" coords="158,896,306,920"> <area href="classsc_1_1SlaterXFunctional.html" alt="sc::SlaterXFunctional" shape="rect" coords="158,952,306,976"> <area href="classsc_1_1SumDenFunctional.html" alt="sc::SumDenFunctional" shape="rect" coords="158,1008,306,1032"> <area href="classsc_1_1XalphaFunctional.html" alt="sc::XalphaFunctional" shape="rect" coords="158,1064,306,1088"> </map> </div> <p> <a href="classsc_1_1DenFunctional-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="b33fdceb09b9e726b2c08426fe4f2899"></a><!-- doxytag: member="sc::DenFunctional::DenFunctional" ref="b33fdceb09b9e726b2c08426fe4f2899" args="(const Ref< KeyVal > &)" --> </td><td class="memItemRight" valign="bottom"><b>DenFunctional</b> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>< <a class="el" href="classsc_1_1KeyVal.html">KeyVal</a> > &)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="01359e2e20de6637317aca47f1c2be1a"></a><!-- doxytag: member="sc::DenFunctional::DenFunctional" ref="01359e2e20de6637317aca47f1c2be1a" args="(StateIn &)" --> </td><td class="memItemRight" valign="bottom"><b>DenFunctional</b> (<a class="el" href="classsc_1_1StateIn.html">StateIn</a> &)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1DenFunctional.html#d4eedef269673357cfe99e6267a235da">save_data_state</a> (<a class="el" href="classsc_1_1StateOut.html">StateOut</a> &)</td></tr> <tr><td class="mdescLeft"> </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="#d4eedef269673357cfe99e6267a235da"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c52fafdab5d3d96e24a2a1091cff9578"></a><!-- doxytag: member="sc::DenFunctional::set_spin_polarized" ref="c52fafdab5d3d96e24a2a1091cff9578" args="(int i)" --> virtual void </td><td class="memItemRight" valign="bottom"><b>set_spin_polarized</b> (int i)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ac094346b5bf9f8cfeea45f4cd4f7ce9"></a><!-- doxytag: member="sc::DenFunctional::set_compute_potential" ref="ac094346b5bf9f8cfeea45f4cd4f7ce9" args="(int i)" --> virtual void </td><td class="memItemRight" valign="bottom"><b>set_compute_potential</b> (int i)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="61a242120d0718423fc6f0dc5aba8341"></a><!-- doxytag: member="sc::DenFunctional::need_density_gradient" ref="61a242120d0718423fc6f0dc5aba8341" args="()" --> virtual int </td><td class="memItemRight" valign="bottom"><b>need_density_gradient</b> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c59f8d9042e0feb0e7ae1154fba765a5"></a><!-- doxytag: member="sc::DenFunctional::need_density_hessian" ref="c59f8d9042e0feb0e7ae1154fba765a5" args="()" --> virtual int </td><td class="memItemRight" valign="bottom"><b>need_density_hessian</b> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1b4815b661dc682f90118338cee43c16"></a><!-- doxytag: member="sc::DenFunctional::point" ref="1b4815b661dc682f90118338cee43c16" args="(const PointInputData &, PointOutputData &)=0" --> virtual void </td><td class="memItemRight" valign="bottom"><b>point</b> (const <a class="el" href="structsc_1_1PointInputData.html">PointInputData</a> &, <a class="el" href="structsc_1_1PointOutputData.html">PointOutputData</a> &)=0</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="fa998a51594914bfc804203b2fe16ea0"></a><!-- doxytag: member="sc::DenFunctional::gradient" ref="fa998a51594914bfc804203b2fe16ea0" args="(const PointInputData &, PointOutputData &, double *gradient, int acenter, GaussianBasisSet *basis, const double *dmat_a, const double *dmat_b, int ncontrib, const int *contrib, int ncontrib_bf, const int *contrib_bf, const double *bs_values, const double *bsg_values, const double *bsh_values)" --> void </td><td class="memItemRight" valign="bottom"><b>gradient</b> (const <a class="el" href="structsc_1_1PointInputData.html">PointInputData</a> &, <a class="el" href="structsc_1_1PointOutputData.html">PointOutputData</a> &, double *gradient, int acenter, <a class="el" href="classsc_1_1GaussianBasisSet.html">GaussianBasisSet</a> *basis, const double *dmat_a, const double *dmat_b, int ncontrib, const int *contrib, int ncontrib_bf, const int *contrib_bf, const double *bs_values, const double *bsg_values, const double *bsh_values)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4725a705d39cdb7f4ba8ffc24115b91a"></a><!-- doxytag: member="sc::DenFunctional::a0" ref="4725a705d39cdb7f4ba8ffc24115b91a" args="() const " --> virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1DenFunctional.html#4725a705d39cdb7f4ba8ffc24115b91a">a0</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the fraction of Hartee-Fock exchange to be included. <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5dd2597d97eed316211ce783547fa28a"></a><!-- doxytag: member="sc::DenFunctional::fd_point" ref="5dd2597d97eed316211ce783547fa28a" args="(const PointInputData &, PointOutputData &)" --> void </td><td class="memItemRight" valign="bottom"><b>fd_point</b> (const <a class="el" href="structsc_1_1PointInputData.html">PointInputData</a> &, <a class="el" href="structsc_1_1PointOutputData.html">PointOutputData</a> &)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="444d2625c5667f07fe13ab86756115b5"></a><!-- doxytag: member="sc::DenFunctional::test" ref="444d2625c5667f07fe13ab86756115b5" args="(const PointInputData &)" --> int </td><td class="memItemRight" valign="bottom"><b>test</b> (const <a class="el" href="structsc_1_1PointInputData.html">PointInputData</a> &)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4622c1e35f6c969e6c205887e715afdb"></a><!-- doxytag: member="sc::DenFunctional::test" ref="4622c1e35f6c969e6c205887e715afdb" args="()" --> int </td><td class="memItemRight" valign="bottom"><b>test</b> ()</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="1b262af86fc6ee0a6e8f1c995ad5238f"></a><!-- doxytag: member="sc::DenFunctional::do_fd_point" ref="1b262af86fc6ee0a6e8f1c995ad5238f" args="(PointInputData &id, double &in, double &out, double lower_bound, double upper_bound)" --> void </td><td class="memItemRight" valign="bottom"><b>do_fd_point</b> (<a class="el" href="structsc_1_1PointInputData.html">PointInputData</a> &id, double &in, double &out, double lower_bound, double upper_bound)</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="78d5df46ba50ec6eb83a67f8daa4c578"></a><!-- doxytag: member="sc::DenFunctional::spin_polarized_" ref="78d5df46ba50ec6eb83a67f8daa4c578" args="" --> int </td><td class="memItemRight" valign="bottom"><b>spin_polarized_</b></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0f0f3e6651cc4c3acea4cbf3c991d655"></a><!-- doxytag: member="sc::DenFunctional::compute_potential_" ref="0f0f3e6651cc4c3acea4cbf3c991d655" args="" --> int </td><td class="memItemRight" valign="bottom"><b>compute_potential_</b></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e650779eafcfc35e6348dc243a0e7043"></a><!-- doxytag: member="sc::DenFunctional::a0_" ref="e650779eafcfc35e6348dc243a0e7043" args="" --> double </td><td class="memItemRight" valign="bottom"><b>a0_</b></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> An abstract base class for density functionals. <p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="d4eedef269673357cfe99e6267a235da"></a><!-- doxytag: member="sc::DenFunctional::save_data_state" ref="d4eedef269673357cfe99e6267a235da" args="(StateOut &)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void sc::DenFunctional::save_data_state </td> <td>(</td> <td class="paramtype"><a class="el" href="classsc_1_1StateOut.html">StateOut</a> & </td> <td class="paramname"> </td> <td> ) </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_1NElFunctional.html#dcfe5441d8b1485e180ff78aef7c557a">sc::NElFunctional</a>, <a class="el" href="classsc_1_1SumDenFunctional.html#b94ff40fca2c681d18735af77b9a8887">sc::SumDenFunctional</a>, <a class="el" href="classsc_1_1StdDenFunctional.html#74c2b5f68e264717013031e40bc383a1">sc::StdDenFunctional</a>, <a class="el" href="classsc_1_1LSDACFunctional.html#86f430025c2c8b39ea51cc6648108a42">sc::LSDACFunctional</a>, <a class="el" href="classsc_1_1PBECFunctional.html#e1b5ce0442fcfe05fcb3e1c51bbfd5a8">sc::PBECFunctional</a>, <a class="el" href="classsc_1_1PW91CFunctional.html#38469b6230a7401d4f164850c106b2a6">sc::PW91CFunctional</a>, <a class="el" href="classsc_1_1P86CFunctional.html#92b4da081ddcfdc4311c850446808daa">sc::P86CFunctional</a>, <a class="el" href="classsc_1_1SlaterXFunctional.html#8d8c2f82cb4c41cabc5071c1d7b941dd">sc::SlaterXFunctional</a>, <a class="el" href="classsc_1_1VWNLCFunctional.html#b7c7f6ecd557dc398db1600a5ee1c948">sc::VWNLCFunctional</a>, <a class="el" href="classsc_1_1VWN1LCFunctional.html#f97ae46540a066222dc31c4f5b31a17b">sc::VWN1LCFunctional</a>, <a class="el" href="classsc_1_1VWN2LCFunctional.html#899b57418817864f91143bcf844fb9de">sc::VWN2LCFunctional</a>, <a class="el" href="classsc_1_1VWN3LCFunctional.html#f334b58b771cf444974d52881fe7e81f">sc::VWN3LCFunctional</a>, <a class="el" href="classsc_1_1VWN4LCFunctional.html#4056315f4ca63deb0e5be7e89682f76b">sc::VWN4LCFunctional</a>, <a class="el" href="classsc_1_1VWN5LCFunctional.html#d7d4ceb992b45f48b754409ce354f141">sc::VWN5LCFunctional</a>, <a class="el" href="classsc_1_1PW92LCFunctional.html#6923bfbd22f39a026442139b9da0ac56">sc::PW92LCFunctional</a>, <a class="el" href="classsc_1_1PZ81LCFunctional.html#0531f182cd32aaefacc76764bd6c1366">sc::PZ81LCFunctional</a>, <a class="el" href="classsc_1_1XalphaFunctional.html#5aed7e7985204f8e96b3948c8adddcd6">sc::XalphaFunctional</a>, <a class="el" href="classsc_1_1Becke88XFunctional.html#608a85fa1e9cfac44e5d66b85a9cd5b1">sc::Becke88XFunctional</a>, <a class="el" href="classsc_1_1LYPCFunctional.html#d623114edcfeb17e9ab20029c70af756">sc::LYPCFunctional</a>, <a class="el" href="classsc_1_1PW86XFunctional.html#19681587083c50eefaed053e5d5afa73">sc::PW86XFunctional</a>, <a class="el" href="classsc_1_1PBEXFunctional.html#ffdbfa877cbed2f5b5f581c2f745b2ab">sc::PBEXFunctional</a>, <a class="el" href="classsc_1_1PW91XFunctional.html#a6b2bbd861fe83a941fbe41e8d8688c7">sc::PW91XFunctional</a>, <a class="el" href="classsc_1_1mPW91XFunctional.html#56169ee43f1d484dd8e1f437277efe40">sc::mPW91XFunctional</a>, and <a class="el" href="classsc_1_1G96XFunctional.html#d9026ed66adb100d933a74bce54ada1f">sc::G96XFunctional</a>.</p> </div> </div><p> <hr>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="functional_8h_source.html">functional.h</a></ul> </div> <hr> <address> <small> Generated at Wed Oct 14 14:12:14 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>