Sophie

Sophie

distrib > Mandriva > 9.1 > ppc > media > contrib > by-pkgid > 263386785cefb9ae5d63b926d214d809 > files > 728

mpqc-2.1.2-4mdk.ppc.rpm

<!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::SimpleCo 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:49 2002 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="pages.html">Related Pages</a> &nbsp; </center>
<hr><h1>sc::SimpleCo  Class Reference</h1>The <a class="el" href="class_sc__SimpleCo.html">SimpleCo</a> abstract class describes a simple internal coordinate of a molecule. 
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="simple_h-source.html">simple.h</a>&gt;</code>
<p>
Inheritance diagram for sc::SimpleCo<p><center><img src="class_sc__SimpleCo_inherit_graph.gif" border="0" usemap="#sc::SimpleCo_inherit_map" alt="Inheritance graph"></center>
<map name="sc::SimpleCo_inherit_map">
<area href="class_sc__BendSimpleCo.html" shape="rect" coords="14,414,126,432">
<area href="class_sc__LinIPSimpleCo.html" shape="rect" coords="150,414,265,432">
<area href="class_sc__LinOPSimpleCo.html" shape="rect" coords="289,414,409,432">
<area href="class_sc__ScaledTorsSimpleCo.html" shape="rect" coords="561,414,705,432">
<area href="class_sc__StreSimpleCo.html" shape="rect" coords="729,414,835,432">
<area href="class_sc__TorsSimpleCo.html" shape="rect" coords="859,414,969,432">
<area href="class_sc__IntCoor.html" shape="rect" coords="449,280,521,299">
<area href="class_sc__SavableState.html" shape="rect" coords="434,214,535,232">
<area href="class_sc__DescribedClass.html" shape="rect" coords="427,147,542,166">
<area href="class_sc__RefCount.html" shape="rect" coords="443,80,526,99">
<area href="class_sc__Identity.html" shape="rect" coords="449,14,521,32">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for sc::SimpleCo:<p><center><img src="class_sc__SimpleCo_coll_graph.gif" border="0" usemap="#sc::SimpleCo_coll_map" alt="Collaboration graph"></center>
<map name="sc::SimpleCo_coll_map">
<area href="class_sc__IntCoor.html" shape="rect" coords="35,280,107,299">
<area href="class_sc__SavableState.html" shape="rect" coords="21,213,122,232">
<area href="class_sc__DescribedClass.html" shape="rect" coords="14,147,129,165">
<area href="class_sc__RefCount.html" shape="rect" coords="30,80,113,99">
<area href="class_sc__Identity.html" shape="rect" coords="35,13,107,32">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="class_sc__SimpleCo-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::SimpleCo::SimpleCo"></a>
&nbsp;</td><td valign=bottom><b>SimpleCo</b> ()</td></tr>
<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="class_sc__SimpleCo.html#a1">SimpleCo</a> (int, const char *=0)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>This constructor takes an integer argument which is the number of atoms needed to describe the coordinate.</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::SimpleCo::SimpleCo"></a>
&nbsp;</td><td valign=bottom><a class="el" href="class_sc__SimpleCo.html#a2">SimpleCo</a> (const <a class="el" href="class_sc__Ref.html">Ref</a>&lt; <a class="el" href="class_sc__KeyVal.html">KeyVal</a> &gt; &amp;,int natom)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>The <a class="el" href="class_sc__KeyVal.html">KeyVal</a> constructor requires the number of atoms.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a3" doxytag="sc::SimpleCo::~SimpleCo"></a>
virtual&nbsp;</td><td valign=bottom><b>~SimpleCo</b> ()</td></tr>
<tr><td nowrap align=right valign=top><a name="a4" doxytag="sc::SimpleCo::natoms"></a>
int&nbsp;</td><td valign=bottom><a class="el" href="class_sc__SimpleCo.html#a4">natoms</a> () const</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Returns the number of atoms in the coordinate.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a5" doxytag="sc::SimpleCo::operator[]"></a>
int&nbsp;</td><td valign=bottom><a class="el" href="class_sc__SimpleCo.html#a5">operator[]</a> (int i) const</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Returns the index of the i'th atom in the coordinate.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="class_sc__SimpleCo.html#a6">save_data_state</a> (<a class="el" href="class_sc__StateOut.html">StateOut</a> &amp;)</td></tr>
<tr><td>&nbsp;</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="#a6">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a7" doxytag="sc::SimpleCo::SimpleCo"></a>
&nbsp;</td><td valign=bottom><b>SimpleCo</b> (<a class="el" href="class_sc__StateIn.html">StateIn</a> &amp;)</td></tr>
<tr><td nowrap align=right valign=top><a name="a8" doxytag="sc::SimpleCo::operator=="></a>
virtual int&nbsp;</td><td valign=bottom><b>operator==</b> (SimpleCo &amp;)</td></tr>
<tr><td nowrap align=right valign=top><a name="a9" doxytag="sc::SimpleCo::operator!="></a>
int&nbsp;</td><td valign=bottom><b>operator!=</b> (SimpleCo &amp;u)</td></tr>
<tr><td nowrap align=right valign=top><a name="a10" doxytag="sc::SimpleCo::force_constant"></a>
double&nbsp;</td><td valign=bottom><a class="el" href="class_sc__SimpleCo.html#a10">force_constant</a> (<a class="el" href="class_sc__Ref.html">Ref</a>&lt; <a class="el" href="class_sc__Molecule.html">Molecule</a> &gt; &amp;)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Returns an approximate force constant (a la Almlof).</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a11" doxytag="sc::SimpleCo::update_value"></a>
void&nbsp;</td><td valign=bottom><a class="el" href="class_sc__SimpleCo.html#a11">update_value</a> (const <a class="el" href="class_sc__Ref.html">Ref</a>&lt; <a class="el" href="class_sc__Molecule.html">Molecule</a> &gt; &amp;)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Recalculates the value of the coordinate based on the geometry in the <a class="el" href="class_sc__Molecule.html">Molecule</a>.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a12" doxytag="sc::SimpleCo::bmat"></a>
void&nbsp;</td><td valign=bottom><a class="el" href="class_sc__SimpleCo.html#a12">bmat</a> (const <a class="el" href="class_sc__Ref.html">Ref</a>&lt; <a class="el" href="class_sc__Molecule.html">Molecule</a> &gt; &amp;,<a class="el" href="class_sc__RefSCVector.html">RefSCVector</a> &amp;bmat, double coef=1.0)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Fill in a row of the B matrix.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a13" doxytag="sc::SimpleCo::calc_force_con"></a>
virtual double&nbsp;</td><td valign=bottom><a class="el" href="class_sc__SimpleCo.html#a13">calc_force_con</a> (<a class="el" href="class_sc__Molecule.html">Molecule</a> &amp;)=0</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Calculates an approximate force constant and returns it's value.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>virtual double&nbsp;</td><td valign=bottom><a class="el" href="class_sc__SimpleCo.html#a14">calc_intco</a> (<a class="el" href="class_sc__Molecule.html">Molecule</a> &amp;, double *=0, double=1)=0</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Calculate the value of the coordinate based on what's in <a class="el" href="class_sc__Molecule.html">Molecule</a>.</em> <a href="#a14">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a15" doxytag="sc::SimpleCo::print_details"></a>
void&nbsp;</td><td valign=bottom><a class="el" href="class_sc__SimpleCo.html#a15">print_details</a> (const <a class="el" href="class_sc__Ref.html">Ref</a>&lt; <a class="el" href="class_sc__Molecule.html">Molecule</a> &gt; &amp;, std::ostream &amp;=ExEnv::out0()) const</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Print the coordinate.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="class_sc__SimpleCo.html#a16">equivalent</a> (<a class="el" href="class_sc__Ref.html">Ref</a>&lt; <a class="el" href="class_sc__IntCoor.html">IntCoor</a> &gt; &amp;)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Tests to see if two coordinates are equivalent to each other.</em> <a href="#a16">More...</a><em></em></font><br><br></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::SimpleCo::natoms_"></a>
int&nbsp;</td><td valign=bottom><b>natoms_</b></td></tr>
<tr><td nowrap align=right valign=top><a name="n1" doxytag="sc::SimpleCo::atoms"></a>
int*&nbsp;</td><td valign=bottom><b>atoms</b></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
The <a class="el" href="class_sc__SimpleCo.html">SimpleCo</a> abstract class describes a simple internal coordinate of a molecule.
<p>
The number atoms involved can be 2, 3 or 4 and is determined by the specialization of <a class="el" href="class_sc__SimpleCo.html">SimpleCo</a>.
<p>
There are three ways to specify the atoms involved in the internal coordinate. The first way is a shorthand notation, just a vector of a label followed by the atom numbers (starting at 1) is given. For example, a stretch between two atoms, 1 and 2, is given, in the <a class="el" href="class_sc__ParsedKeyVal.html">ParsedKeyVal</a> format, as <pre>
  stretch&lt;<a class="el" href="class_sc__StreSimpleCo.html">StreSimpleCo</a>&gt;: [ R12 1 2 ]
</pre>
<p>
The other two ways to specify the atoms are more general. With them, it is possible to give parameters for the <a class="el" href="class_sc__IntCoor.html">IntCoor</a> base class (and thus give the value of the coordinate). In the first of these input formats, a vector associated with the keyword atoms gives the atom numbers. The following specification for stretch is equivalent to that above: <pre>
  stretch&lt;<a class="el" href="class_sc__StreSimpleCo.html">StreSimpleCo</a>&gt;:( label = R12 atoms = [ 1 2 ] )
</pre>
<p>
In the second, a vector, atom_labels, is given along with a <a class="el" href="class_sc__Molecule.html">Molecule</a> object. The atom labels are looked up in the <a class="el" href="class_sc__Molecule.html">Molecule</a> object to find the atom numbers. The following specification for stretch is equivalent to those above: <pre>
  molecule&lt;<a class="el" href="class_sc__Molecule.html">Molecule</a>&gt;: (
    { atom_labels atoms   geometry      } = {
          H1         H   [ 1.0 0.0 0.0 ]
          H2         H   [-1.0 0.0 0.0 ] } )
  stretch&lt;<a class="el" href="class_sc__StreSimpleCo.html">StreSimpleCo</a>&gt;:( label = R12
                          atom_labels = [ H1 H2 ]
                          molecule = $:molecule )
</pre> 
<p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a name="a1" doxytag="sc::SimpleCo::SimpleCo"></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::SimpleCo::SimpleCo (
          </b></td>
          <td valign="bottom"><b>
int, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
const char * = 0&nbsp;)
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
This constructor takes an integer argument which is the number of atoms needed to describe the coordinate.
<p>
A second optional char* argument is a label for the coordinate. This argument is passed on to the <a class="el" href="class_sc__IntCoor.html">IntCoor</a> constructor.     </td>
  </tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a name="a14" doxytag="sc::SimpleCo::calc_intco"></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> 
double sc::SimpleCo::calc_intco (
          </b></td>
          <td valign="bottom"><b>
<a class="el" href="class_sc__Molecule.html">Molecule</a> &amp;, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
double * = 0, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
double = 1&nbsp;)<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Calculate the value of the coordinate based on what's in <a class="el" href="class_sc__Molecule.html">Molecule</a>.
<p>
If given a double*, fill in that part of the B matrix. If the bmatrix is to be calculated, the third argument gives the coefficient.     </td>
  </tr>
</table>
<a name="a16" doxytag="sc::SimpleCo::equivalent"></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> 
int sc::SimpleCo::equivalent (
          </b></td>
          <td valign="bottom"><b>
<a class="el" href="class_sc__Ref.html">Ref</a>&lt; <a class="el" href="class_sc__IntCoor.html">IntCoor</a> &gt; &amp;&nbsp;)<code> [virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Tests to see if two coordinates are equivalent to each other.
<p>
This is false if the atoms don't match. 
<p>
Reimplemented from <a class="el" href="class_sc__IntCoor.html#a16">sc::IntCoor</a>.    </td>
  </tr>
</table>
<a name="a6" doxytag="sc::SimpleCo::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::SimpleCo::save_data_state (
          </b></td>
          <td valign="bottom"><b>
<a class="el" href="class_sc__StateOut.html">StateOut</a> &amp; <em>s</em>&nbsp;)<code> [virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </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__IntCoor.html#a5">sc::IntCoor</a>.    </td>
  </tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="simple_h-source.html">simple.h</a></ul>
<hr>
<address>
<small>

Generated at Mon Oct 14 14:17:49 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>