<!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::mPW91XFunctional 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_1mPW91XFunctional.html">mPW91XFunctional</a> </div> </div> <div class="contents"> <h1>sc::mPW91XFunctional Class Reference</h1><!-- doxytag: class="sc::mPW91XFunctional" --><!-- doxytag: inherits="sc::DenFunctional" -->Implements a modified 1991 Perdew-Wang exchange functional. <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::mPW91XFunctional:</div> <div class="dynsection"> <p><center><img src="classsc_1_1mPW91XFunctional.png" usemap="#sc::mPW91XFunctional_map" border="0" alt=""></center> <map name="sc::mPW91XFunctional_map"> <area href="classsc_1_1DenFunctional.html" alt="sc::DenFunctional" shape="rect" coords="0,224,141,248"> <area href="classsc_1_1SavableState.html" alt="sc::SavableState" shape="rect" coords="0,168,141,192"> <area href="classsc_1_1DescribedClass.html" alt="sc::DescribedClass" shape="rect" coords="0,112,141,136"> <area href="classsc_1_1RefCount.html" alt="sc::RefCount" shape="rect" coords="0,56,141,80"> <area href="classsc_1_1Identity.html" alt="sc::Identity" shape="rect" coords="0,0,141,24"> </map> </div> <p> <a href="classsc_1_1mPW91XFunctional-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 Types</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><b>Func</b> { <b>B88</b>, <b>PW91</b>, <b>mPW91</b> }</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="8d86bd7fc192edaecac9bad0fde84b96"></a><!-- doxytag: member="sc::mPW91XFunctional::mPW91XFunctional" ref="8d86bd7fc192edaecac9bad0fde84b96" args="()" --> </td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1mPW91XFunctional.html#8d86bd7fc192edaecac9bad0fde84b96">mPW91XFunctional</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Construct an mPW exchange functional. <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1mPW91XFunctional.html#20f060c6faf388abffdf0d63b8b1d81c">mPW91XFunctional</a> (Func variant)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Construct an mPW form exchange functional using the given functional variant. <a href="#20f060c6faf388abffdf0d63b8b1d81c"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1mPW91XFunctional.html#65525c5e5032d41bce5de37aca4a0dd5">mPW91XFunctional</a> (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="mdescLeft"> </td><td class="mdescRight">Construct an mPW form exchange functional. <a href="#65525c5e5032d41bce5de37aca4a0dd5"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d8eda8b84024523a7abf12d53376e0d6"></a><!-- doxytag: member="sc::mPW91XFunctional::mPW91XFunctional" ref="d8eda8b84024523a7abf12d53376e0d6" args="(StateIn &)" --> </td><td class="memItemRight" valign="bottom"><b>mPW91XFunctional</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_1mPW91XFunctional.html#56169ee43f1d484dd8e1f437277efe40">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="#56169ee43f1d484dd8e1f437277efe40"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4ddd090fd58c613c6e986253db2c5dc7"></a><!-- doxytag: member="sc::mPW91XFunctional::need_density_gradient" ref="4ddd090fd58c613c6e986253db2c5dc7" args="()" --> 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="4e81302c18db6e723be3ab7e24a744f3"></a><!-- doxytag: member="sc::mPW91XFunctional::point" ref="4e81302c18db6e723be3ab7e24a744f3" args="(const PointInputData &, PointOutputData &)" --> 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> &)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="261b5d58ecaa53e6d3e9c6c3b508b17e"></a><!-- doxytag: member="sc::mPW91XFunctional::init_constants" ref="261b5d58ecaa53e6d3e9c6c3b508b17e" args="(Func)" --> void </td><td class="memItemRight" valign="bottom"><b>init_constants</b> (Func)</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="40f8b579dc397fef68c2c43e02c11df6"></a><!-- doxytag: member="sc::mPW91XFunctional::spin_contrib" ref="40f8b579dc397fef68c2c43e02c11df6" args="(const PointInputData::SpinData &, double &mpw, double &dmpw_dr, double &dmpw_dg)" --> void </td><td class="memItemRight" valign="bottom"><b>spin_contrib</b> (const PointInputData::SpinData &, double &mpw, double &dmpw_dr, double &dmpw_dg)</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="6edef3bb4c3bcaba26b0a565d33b556c"></a><!-- doxytag: member="sc::mPW91XFunctional::b" ref="6edef3bb4c3bcaba26b0a565d33b556c" args="" --> double </td><td class="memItemRight" valign="bottom"><b>b</b></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="515bbd94eb9a3beb4b0b5a46c35be0d4"></a><!-- doxytag: member="sc::mPW91XFunctional::beta" ref="515bbd94eb9a3beb4b0b5a46c35be0d4" args="" --> double </td><td class="memItemRight" valign="bottom"><b>beta</b></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="98a26bf3b9bbaf29d37171e9852025d7"></a><!-- doxytag: member="sc::mPW91XFunctional::c" ref="98a26bf3b9bbaf29d37171e9852025d7" args="" --> double </td><td class="memItemRight" valign="bottom"><b>c</b></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f658bce70726da26cb1c53f1858609a9"></a><!-- doxytag: member="sc::mPW91XFunctional::d" ref="f658bce70726da26cb1c53f1858609a9" args="" --> double </td><td class="memItemRight" valign="bottom"><b>d</b></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8bfb5f21d55f5a3c468aa88b61a5cc46"></a><!-- doxytag: member="sc::mPW91XFunctional::a_x" ref="8bfb5f21d55f5a3c468aa88b61a5cc46" args="" --> double </td><td class="memItemRight" valign="bottom"><b>a_x</b></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9b991590a0840a1ff2b137482a1ee091"></a><!-- doxytag: member="sc::mPW91XFunctional::x_d_coef" ref="9b991590a0840a1ff2b137482a1ee091" args="" --> double </td><td class="memItemRight" valign="bottom"><b>x_d_coef</b></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> Implements a modified 1991 Perdew-Wang exchange functional. <p> C. Adamo and V. Barone, J. Chem. Phys., 108(2), pp. 664-674, 1998. <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="20f060c6faf388abffdf0d63b8b1d81c"></a><!-- doxytag: member="sc::mPW91XFunctional::mPW91XFunctional" ref="20f060c6faf388abffdf0d63b8b1d81c" args="(Func variant)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">sc::mPW91XFunctional::mPW91XFunctional </td> <td>(</td> <td class="paramtype">Func </td> <td class="paramname"> <em>variant</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Construct an mPW form exchange functional using the given functional variant. <p> The variant can be B88, PW91, or mPW91. </div> </div><p> <a class="anchor" name="65525c5e5032d41bce5de37aca4a0dd5"></a><!-- doxytag: member="sc::mPW91XFunctional::mPW91XFunctional" ref="65525c5e5032d41bce5de37aca4a0dd5" args="(const Ref< KeyVal > &)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">sc::mPW91XFunctional::mPW91XFunctional </td> <td>(</td> <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>< <a class="el" href="classsc_1_1KeyVal.html">KeyVal</a> > & </td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Construct an mPW form exchange functional. <p> The following keywords are recognized: <dl> <dt><code>constants</code></dt> <dd>This can be B88 to give the Becke88 exchange functional; PW91, to give results similar to the PW91 exchange functional; or mPW91, to give the new functional developed by Adamo and Barone.<p> </dd> <dt><code>b</code></dt> <dd></dd> <dt><code>beta</code></dt> <dd></dd> <dt><code>c</code></dt> <dd></dd> <dt><code>d</code></dt> <dd></dd> <dt><code>x_d_coef</code></dt> <dd>The coefficient of <img class="formulaInl" alt="$x^d$" src="form_51.png">, where <img class="formulaInl" alt="$x$" src="form_52.png"> is the reduced gradient. </dd> </dl> </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="56169ee43f1d484dd8e1f437277efe40"></a><!-- doxytag: member="sc::mPW91XFunctional::save_data_state" ref="56169ee43f1d484dd8e1f437277efe40" args="(StateOut &)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void sc::mPW91XFunctional::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_1DenFunctional.html#d4eedef269673357cfe99e6267a235da">sc::DenFunctional</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>