<!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::DenIntegrator 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:16:49 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::DenIntegrator Class Reference</h1>An abstract base class for integrating the electron density. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="integrator_h-source.html">integrator.h</a>></code> <p> Inheritance diagram for sc::DenIntegrator<p><center><img src="class_sc__DenIntegrator_inherit_graph.gif" border="0" usemap="#sc::DenIntegrator_inherit_map" alt="Inheritance graph"></center> <map name="sc::DenIntegrator_inherit_map"> <area href="class_sc__RadialAngularIntegrator.html" shape="rect" coords="14,347,177,365"> <area href="class_sc__SavableState.html" shape="rect" coords="45,213,146,232"> <area href="class_sc__DescribedClass.html" shape="rect" coords="38,147,153,165"> <area href="class_sc__RefCount.html" shape="rect" coords="54,80,137,99"> <area href="class_sc__Identity.html" shape="rect" coords="59,13,131,32"> </map> <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for sc::DenIntegrator:<p><center><img src="class_sc__DenIntegrator_coll_graph.gif" border="0" usemap="#sc::DenIntegrator_coll_map" alt="Collaboration graph"></center> <map name="sc::DenIntegrator_coll_map"> <area href="class_sc__SavableState.html" shape="rect" coords="21,222,122,241"> <area href="class_sc__DescribedClass.html" shape="rect" coords="14,153,129,171"> <area href="class_sc__RefCount.html" shape="rect" coords="30,83,113,102"> <area href="class_sc__Identity.html" shape="rect" coords="35,14,107,33"> <area href="class_sc__Ref.html" shape="rect" coords="146,222,293,241"> <area href="class_sc__RefBase.html" shape="rect" coords="395,153,473,171"> <area href="class_sc__Ref.html" shape="rect" coords="317,222,447,241"> <area href="class_sc__Ref.html" shape="rect" coords="471,222,610,241"> <area href="class_sc__Ref.html" shape="rect" coords="634,222,767,241"> </map> <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="class_sc__DenIntegrator-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::DenIntegrator::DenIntegrator"></a> </td><td valign=bottom><a class="el" href="class_sc__DenIntegrator.html#a0">DenIntegrator</a> ()</td></tr> <tr><td> </td><td><font size=-1><em>Construct a new <a class="el" href="class_sc__DenIntegrator.html">DenIntegrator</a>.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a1" doxytag="sc::DenIntegrator::DenIntegrator"></a> </td><td valign=bottom><a class="el" href="class_sc__DenIntegrator.html#a1">DenIntegrator</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>Construct a new <a class="el" href="class_sc__DenIntegrator.html">DenIntegrator</a> given the <a class="el" href="class_sc__KeyVal.html">KeyVal</a> input.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a2" doxytag="sc::DenIntegrator::DenIntegrator"></a> </td><td valign=bottom><a class="el" href="class_sc__DenIntegrator.html#a2">DenIntegrator</a> (<a class="el" href="class_sc__StateIn.html">StateIn</a> &)</td></tr> <tr><td> </td><td><font size=-1><em>Construct a new <a class="el" href="class_sc__DenIntegrator.html">DenIntegrator</a> given the <a class="el" href="class_sc__StateIn.html">StateIn</a> data.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a3" doxytag="sc::DenIntegrator::~DenIntegrator"></a> </td><td valign=bottom><b>~DenIntegrator</b> ()</td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_sc__DenIntegrator.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::DenIntegrator::wavefunction"></a> <a class="el" href="class_sc__Ref.html">Ref</a><<a class="el" href="class_sc__Wavefunction.html">Wavefunction</a>> </td><td valign=bottom><a class="el" href="class_sc__DenIntegrator.html#a5">wavefunction</a> () const</td></tr> <tr><td> </td><td><font size=-1><em>Returns the wavefunction used for the integration.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a6" doxytag="sc::DenIntegrator::value"></a> double </td><td valign=bottom><a class="el" href="class_sc__DenIntegrator.html#a6">value</a> () const</td></tr> <tr><td> </td><td><font size=-1><em>Returns the result of the integration.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a7" doxytag="sc::DenIntegrator::set_accuracy"></a> void </td><td valign=bottom><a class="el" href="class_sc__DenIntegrator.html#a7">set_accuracy</a> (double a)</td></tr> <tr><td> </td><td><font size=-1><em>Sets the accuracy to use in the integration.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a8" doxytag="sc::DenIntegrator::get_accuracy"></a> double </td><td valign=bottom><b>get_accuracy</b> (void)</td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_sc__DenIntegrator.html#a9">set_compute_potential_integrals</a> (int)</td></tr> <tr><td> </td><td><font size=-1><em>Call with non zero if the potential integrals are to be computed.</em> <a href="#a9">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>const double* </td><td valign=bottom><a class="el" href="class_sc__DenIntegrator.html#a10">alpha_vmat</a> () const</td></tr> <tr><td> </td><td><font size=-1><em>Returns the alpha potential integrals.</em> <a href="#a10">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>const double* </td><td valign=bottom><a class="el" href="class_sc__DenIntegrator.html#a11">beta_vmat</a> () const</td></tr> <tr><td> </td><td><font size=-1><em>Returns the beta potential integrals.</em> <a href="#a11">More...</a><em></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__DenIntegrator.html#a12">init</a> (const <a class="el" href="class_sc__Ref.html">Ref</a>< <a class="el" href="class_sc__Wavefunction.html">Wavefunction</a> > &)</td></tr> <tr><td> </td><td><font size=-1><em>Called before integrate.</em> <a href="#a12">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a13" doxytag="sc::DenIntegrator::done"></a> virtual void </td><td valign=bottom><a class="el" href="class_sc__DenIntegrator.html#a13">done</a> ()</td></tr> <tr><td> </td><td><font size=-1><em>Must be called between calls to init.</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__DenIntegrator.html#a14">integrate</a> (const <a class="el" href="class_sc__Ref.html">Ref</a>< <a class="el" href="class_sc__DenFunctional.html">DenFunctional</a> > &, const <a class="el" href="class_sc__RefSymmSCMatrix.html">RefSymmSCMatrix</a> &densa=0, const <a class="el" href="class_sc__RefSymmSCMatrix.html">RefSymmSCMatrix</a> &densb=0, double *nuclear_grad=0)=0</td></tr> <tr><td> </td><td><font size=-1><em>Performs the integration of the given functional using the given alpha and beta density matrices.</em> <a href="#a14">More...</a><em></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::DenIntegrator::init_integration"></a> void </td><td valign=bottom><b>init_integration</b> (const <a class="el" href="class_sc__Ref.html">Ref</a>< <a class="el" href="class_sc__DenFunctional.html">DenFunctional</a> > &func, const <a class="el" href="class_sc__RefSymmSCMatrix.html">RefSymmSCMatrix</a> &densa, const <a class="el" href="class_sc__RefSymmSCMatrix.html">RefSymmSCMatrix</a> &densb, double *nuclear_gradient)</td></tr> <tr><td nowrap align=right valign=top><a name="b1" doxytag="sc::DenIntegrator::done_integration"></a> void </td><td valign=bottom><b>done_integration</b> ()</td></tr> <tr><td nowrap align=right valign=top><a name="b2" doxytag="sc::DenIntegrator::init_object"></a> void </td><td valign=bottom><b>init_object</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::DenIntegrator::wfn_"></a> <a class="el" href="class_sc__Ref.html">Ref</a><<a class="el" href="class_sc__Wavefunction.html">Wavefunction</a>> </td><td valign=bottom><b>wfn_</b></td></tr> <tr><td nowrap align=right valign=top><a name="n1" doxytag="sc::DenIntegrator::extent_"></a> <a class="el" href="class_sc__Ref.html">Ref</a><ShellExtent> </td><td valign=bottom><b>extent_</b></td></tr> <tr><td nowrap align=right valign=top><a name="n2" doxytag="sc::DenIntegrator::threadgrp_"></a> <a class="el" href="class_sc__Ref.html">Ref</a><<a class="el" href="class_sc__ThreadGrp.html">ThreadGrp</a>> </td><td valign=bottom><b>threadgrp_</b></td></tr> <tr><td nowrap align=right valign=top><a name="n3" doxytag="sc::DenIntegrator::messagegrp_"></a> <a class="el" href="class_sc__Ref.html">Ref</a><<a class="el" href="class_sc__MessageGrp.html">MessageGrp</a>> </td><td valign=bottom><b>messagegrp_</b></td></tr> <tr><td nowrap align=right valign=top><a name="n4" doxytag="sc::DenIntegrator::value_"></a> double </td><td valign=bottom><b>value_</b></td></tr> <tr><td nowrap align=right valign=top><a name="n5" doxytag="sc::DenIntegrator::accuracy_"></a> double </td><td valign=bottom><b>accuracy_</b></td></tr> <tr><td nowrap align=right valign=top><a name="n6" doxytag="sc::DenIntegrator::alpha_vmat_"></a> double* </td><td valign=bottom><b>alpha_vmat_</b></td></tr> <tr><td nowrap align=right valign=top><a name="n7" doxytag="sc::DenIntegrator::beta_vmat_"></a> double* </td><td valign=bottom><b>beta_vmat_</b></td></tr> <tr><td nowrap align=right valign=top><a name="n8" doxytag="sc::DenIntegrator::alpha_dmat_"></a> double* </td><td valign=bottom><b>alpha_dmat_</b></td></tr> <tr><td nowrap align=right valign=top><a name="n9" doxytag="sc::DenIntegrator::beta_dmat_"></a> double* </td><td valign=bottom><b>beta_dmat_</b></td></tr> <tr><td nowrap align=right valign=top><a name="n10" doxytag="sc::DenIntegrator::dmat_bound_"></a> double* </td><td valign=bottom><b>dmat_bound_</b></td></tr> <tr><td nowrap align=right valign=top><a name="n11" doxytag="sc::DenIntegrator::spin_polarized_"></a> int </td><td valign=bottom><b>spin_polarized_</b></td></tr> <tr><td nowrap align=right valign=top><a name="n12" doxytag="sc::DenIntegrator::need_density_"></a> int </td><td valign=bottom><b>need_density_</b></td></tr> <tr><td nowrap align=right valign=top><a name="n13" doxytag="sc::DenIntegrator::density_"></a> double </td><td valign=bottom><b>density_</b></td></tr> <tr><td nowrap align=right valign=top><a name="n14" doxytag="sc::DenIntegrator::nbasis_"></a> int </td><td valign=bottom><b>nbasis_</b></td></tr> <tr><td nowrap align=right valign=top><a name="n15" doxytag="sc::DenIntegrator::nshell_"></a> int </td><td valign=bottom><b>nshell_</b></td></tr> <tr><td nowrap align=right valign=top><a name="n16" doxytag="sc::DenIntegrator::natom_"></a> int </td><td valign=bottom><b>natom_</b></td></tr> <tr><td nowrap align=right valign=top><a name="n17" doxytag="sc::DenIntegrator::compute_potential_integrals_"></a> int </td><td valign=bottom><b>compute_potential_integrals_</b></td></tr> <tr><td nowrap align=right valign=top><a name="n18" doxytag="sc::DenIntegrator::linear_scaling_"></a> int </td><td valign=bottom><b>linear_scaling_</b></td></tr> <tr><td nowrap align=right valign=top><a name="n19" doxytag="sc::DenIntegrator::use_dmat_bound_"></a> int </td><td valign=bottom><b>use_dmat_bound_</b></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> An abstract base class for integrating the electron density. <p> <hr><h2>Member Function Documentation</h2> <a name="a10" doxytag="sc::DenIntegrator::alpha_vmat"></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> const double * sc::DenIntegrator::alpha_vmat ( </b></td> <td valign="bottom"><b> ) const<code> [inline]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Returns the alpha potential integrals. <p> Stored as the lower triangular, row-major format. </td> </tr> </table> <a name="a11" doxytag="sc::DenIntegrator::beta_vmat"></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> const double * sc::DenIntegrator::beta_vmat ( </b></td> <td valign="bottom"><b> ) const<code> [inline]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Returns the beta potential integrals. <p> Stored as the lower triangular, row-major format. </td> </tr> </table> <a name="a12" doxytag="sc::DenIntegrator::init"></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::DenIntegrator::init ( </b></td> <td valign="bottom"><b> const <a class="el" href="class_sc__Ref.html">Ref</a>< <a class="el" href="class_sc__Wavefunction.html">Wavefunction</a> > & )<code> [virtual]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Called before integrate. <p> Does not need to be called again unless the geometry changes or done is called. </td> </tr> </table> <a name="a14" doxytag="sc::DenIntegrator::integrate"></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::DenIntegrator::integrate ( </b></td> <td valign="bottom"><b> const <a class="el" href="class_sc__Ref.html">Ref</a>< <a class="el" href="class_sc__DenFunctional.html">DenFunctional</a> > &, </b></td> </tr> <tr> <td></td> <td><b> const <a class="el" href="class_sc__RefSymmSCMatrix.html">RefSymmSCMatrix</a> & <em>densa</em> = 0, </b></td> </tr> <tr> <td></td> <td><b> const <a class="el" href="class_sc__RefSymmSCMatrix.html">RefSymmSCMatrix</a> & <em>densb</em> = 0, </b></td> </tr> <tr> <td></td> <td><b> double * <em>nuclear_gradient</em> = 0 )<code> [pure virtual]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Performs the integration of the given functional using the given alpha and beta density matrices. <p> The nuclear derivative contribution is placed in nuclear_grad, if it is non-null. <p> Reimplemented in <a class="el" href="class_sc__RadialAngularIntegrator.html#a5">sc::RadialAngularIntegrator</a>. </td> </tr> </table> <a name="a4" doxytag="sc::DenIntegrator::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::DenIntegrator::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__SavableState.html#a5">sc::SavableState</a>. <p> Reimplemented in <a class="el" href="class_sc__RadialAngularIntegrator.html#a4">sc::RadialAngularIntegrator</a>. </td> </tr> </table> <a name="a9" doxytag="sc::DenIntegrator::set_compute_potential_integrals"></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::DenIntegrator::set_compute_potential_integrals ( </b></td> <td valign="bottom"><b> int ) </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Call with non zero if the potential integrals are to be computed. <p> They can be returned with the vmat() member. </td> </tr> </table> <hr>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="integrator_h-source.html">integrator.h</a></ul> <hr> <address> <small> Generated at Mon Oct 14 14:16:50 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>