Sophie

Sophie

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

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>hsoskstmpl.h Source File</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:37 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>hsoskstmpl.h</h1><div class="fragment"><pre>00001 
00002 <font class="keyword">namespace </font>sc {
00003 
00004 <font class="keyword">class </font>LocalHSOSKSContribution {
00005   <font class="keyword">private</font>:
00006     <font class="keywordtype">double</font> * <font class="keyword">const</font> gmat;
00007     <font class="keywordtype">double</font> * <font class="keyword">const</font> gmato;
00008     <font class="keywordtype">double</font> * <font class="keyword">const</font> pmat;
00009     <font class="keywordtype">double</font> * <font class="keyword">const</font> pmato;
00010     <font class="keywordtype">double</font> a0;
00011 
00012   <font class="keyword">public</font>:
00013     LocalHSOSKSContribution(<font class="keywordtype">double</font> *g, <font class="keywordtype">double</font> *p, <font class="keywordtype">double</font> *go, <font class="keywordtype">double</font> *po,
00014                           <font class="keywordtype">double</font> _a0) :
00015       gmat(g), gmato(go), pmat(p), pmato(po), a0(_a0) {}
00016     ~LocalHSOSKSContribution()<font class="keyword"> </font>{}
00017 
00018     <font class="keywordtype">void</font> set_bound(<font class="keywordtype">double</font>, <font class="keywordtype">double</font>)<font class="keyword"> </font>{}
00019 
00020     <font class="keyword">inline</font> <font class="keywordtype">void</font> cont1(<font class="keywordtype">int</font> ij, <font class="keywordtype">int</font> kl, <font class="keywordtype">double</font> val)<font class="keyword"> </font>{
00021       gmat[ij] += val*pmat[kl];
00022       gmat[kl] += val*pmat[ij];
00023     }
00024     
00025     <font class="keyword">inline</font> <font class="keywordtype">void</font> cont2(<font class="keywordtype">int</font> ij, <font class="keywordtype">int</font> kl, <font class="keywordtype">double</font> val)<font class="keyword"> </font>{
00026       val *= 0.25*a0;
00027       gmat[ij] -= val*pmat[kl];
00028       gmat[kl] -= val*pmat[ij];
00029 
00030       gmato[ij] += val*pmato[kl];
00031       gmato[kl] += val*pmato[ij];
00032     }
00033     
00034     <font class="keyword">inline</font> <font class="keywordtype">void</font> cont3(<font class="keywordtype">int</font> ij, <font class="keywordtype">int</font> kl, <font class="keywordtype">double</font> val)<font class="keyword"> </font>{
00035       val *= 0.5*a0;
00036       gmat[ij] -= val*pmat[kl];
00037       gmat[kl] -= val*pmat[ij];
00038 
00039       gmato[ij] += val*pmato[kl];
00040       gmato[kl] += val*pmato[ij];
00041     }
00042     
00043     <font class="keyword">inline</font> <font class="keywordtype">void</font> cont4(<font class="keywordtype">int</font> ij, <font class="keywordtype">int</font> kl, <font class="keywordtype">double</font> val)<font class="keyword"> </font>{
00044       gmat[ij] += (1.0 - 0.25*a0)*val*pmat[kl];
00045       gmat[kl] += (1.0 - 0.25*a0)*val*pmat[ij];
00046 
00047       gmato[ij] += a0*0.25*val*pmato[kl];
00048       gmato[kl] += a0*0.25*val*pmato[ij];
00049     }
00050     
00051     <font class="keyword">inline</font> <font class="keywordtype">void</font> cont5(<font class="keywordtype">int</font> ij, <font class="keywordtype">int</font> kl, <font class="keywordtype">double</font> val)<font class="keyword"> </font>{
00052       gmat[ij] += (1.0 - 0.5*a0)*val*pmat[kl];
00053       gmat[kl] += (1.0 - 0.5*a0)*val*pmat[ij];
00054 
00055       gmato[ij] += 0.5*a0*val*pmato[kl];
00056       gmato[kl] += 0.5*a0*val*pmato[ij];
00057     }
00058 };
00059 
00060 <font class="keyword">class </font>LocalHSOSKSEnergyContribution {
00061   <font class="keyword">private</font>:
00062     <font class="keywordtype">double</font> * <font class="keyword">const</font> pmat;
00063     <font class="keywordtype">double</font> * <font class="keyword">const</font> pmato;
00064     <font class="keywordtype">double</font> a0;
00065 
00066   <font class="keyword">public</font>:
00067     <font class="keywordtype">double</font> ec;
00068     <font class="keywordtype">double</font> ex;
00069     
00070     LocalHSOSKSEnergyContribution(<font class="keywordtype">double</font> *p, <font class="keywordtype">double</font> *po,
00071                                 <font class="keywordtype">double</font> _a0) : pmat(p), pmato(po), a0(_a0) {
00072       ec=ex=0;
00073     }
00074 
00075     ~LocalHSOSKSEnergyContribution()<font class="keyword"> </font>{}
00076 
00077     <font class="keywordtype">void</font> set_bound(<font class="keywordtype">double</font>, <font class="keywordtype">double</font>)<font class="keyword"> </font>{}
00078 
00079     <font class="keyword">inline</font> <font class="keywordtype">void</font> cont1(<font class="keywordtype">int</font> ij, <font class="keywordtype">int</font> kl, <font class="keywordtype">double</font> val)<font class="keyword"> </font>{
00080       ec += val*pmat[ij]*pmat[kl];
00081     }
00082     
00083     <font class="keyword">inline</font> <font class="keywordtype">void</font> cont2(<font class="keywordtype">int</font> ij, <font class="keywordtype">int</font> kl, <font class="keywordtype">double</font> val)<font class="keyword"> </font>{
00084       ex -= a0*0.25*val*(pmat[ij]*pmat[kl] + pmato[ij]*pmato[kl]);
00085     }
00086     
00087     <font class="keyword">inline</font> <font class="keywordtype">void</font> cont3(<font class="keywordtype">int</font> ij, <font class="keywordtype">int</font> kl, <font class="keywordtype">double</font> val)<font class="keyword"> </font>{
00088       ex -= a0*0.5*val*(pmat[ij]*pmat[kl] + pmato[ij]*pmato[kl]);
00089     }
00090     
00091     <font class="keyword">inline</font> <font class="keywordtype">void</font> cont4(<font class="keywordtype">int</font> ij, <font class="keywordtype">int</font> kl, <font class="keywordtype">double</font> val)<font class="keyword"> </font>{
00092       ec += val*pmat[ij]*pmat[kl];
00093       ex -= a0*0.25*val*(pmat[ij]*pmat[kl] + pmato[ij]*pmato[kl]);
00094     }
00095     
00096     <font class="keyword">inline</font> <font class="keywordtype">void</font> cont5(<font class="keywordtype">int</font> ij, <font class="keywordtype">int</font> kl, <font class="keywordtype">double</font> val)<font class="keyword"> </font>{
00097       ec += val*pmat[ij]*pmat[kl];
00098       ex -= a0*0.5*val*(pmat[ij]*pmat[kl] + pmato[ij]*pmato[kl]);
00099     }
00100 };
00101 
00102 }
</div></pre><hr>
<address>
<small>

Generated at Mon Oct 14 14:16:37 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>