<!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>ukstmpl.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:39 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>ukstmpl.h</h1><div class="fragment"><pre>00001 00002 <font class="keyword">namespace </font>sc { 00003 00004 <font class="keyword">class </font>LocalUKSContribution { 00005 <font class="keyword">private</font>: 00006 <font class="keywordtype">double</font> * <font class="keyword">const</font> gmata; 00007 <font class="keywordtype">double</font> * <font class="keyword">const</font> gmatb; 00008 <font class="keywordtype">double</font> * <font class="keyword">const</font> pmata; 00009 <font class="keywordtype">double</font> * <font class="keyword">const</font> pmatb; 00010 <font class="keywordtype">double</font> a0; 00011 00012 <font class="keyword">public</font>: 00013 LocalUKSContribution(<font class="keywordtype">double</font> *ga, <font class="keywordtype">double</font> *pa, <font class="keywordtype">double</font> *gb, <font class="keywordtype">double</font> *pb, 00014 <font class="keywordtype">double</font> a) : 00015 gmata(ga), gmatb(gb), pmata(pa), pmatb(pb), a0(a) {} 00016 ~LocalUKSContribution()<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 gmata[ij] += val*(pmata[kl]+pmatb[kl]); 00022 gmata[kl] += val*(pmata[ij]+pmatb[ij]); 00023 00024 gmatb[ij] += val*(pmata[kl]+pmatb[kl]); 00025 gmatb[kl] += val*(pmata[ij]+pmatb[ij]); 00026 } 00027 00028 <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>{ 00029 val *= a0*0.5; 00030 gmata[ij] -= val*pmata[kl]; 00031 gmata[kl] -= val*pmata[ij]; 00032 00033 gmatb[ij] -= val*pmatb[kl]; 00034 gmatb[kl] -= val*pmatb[ij]; 00035 } 00036 00037 <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>{ 00038 val *= a0; 00039 gmata[ij] -= val*pmata[kl]; 00040 gmata[kl] -= val*pmata[ij]; 00041 00042 gmatb[ij] -= val*pmatb[kl]; 00043 gmatb[kl] -= val*pmatb[ij]; 00044 } 00045 00046 <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>{ 00047 cont1(ij,kl,val); 00048 cont2(ij,kl,val); 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 cont1(ij,kl,val); 00053 cont3(ij,kl,val); 00054 } 00055 }; 00056 00057 <font class="keyword">class </font>LocalUKSEnergyContribution { 00058 <font class="keyword">private</font>: 00059 <font class="keywordtype">double</font> * <font class="keyword">const</font> pmata; 00060 <font class="keywordtype">double</font> * <font class="keyword">const</font> pmatb; 00061 <font class="keywordtype">double</font> a0; 00062 00063 <font class="keyword">public</font>: 00064 <font class="keywordtype">double</font> ec; 00065 <font class="keywordtype">double</font> ex; 00066 00067 LocalUKSEnergyContribution(<font class="keywordtype">double</font> *a, <font class="keywordtype">double</font> *b, <font class="keywordtype">double</font> an) : 00068 pmata(a), pmatb(b), a0(an) { 00069 ec=ex=0; 00070 } 00071 00072 ~LocalUKSEnergyContribution()<font class="keyword"> </font>{} 00073 00074 <font class="keywordtype">void</font> set_bound(<font class="keywordtype">double</font>, <font class="keywordtype">double</font>)<font class="keyword"> </font>{} 00075 00076 <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>{ 00077 ec += val*(pmata[ij]+pmatb[ij])*(pmata[kl]+pmatb[kl]); 00078 } 00079 00080 <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>{ 00081 ex -= a0*0.5*val*(pmata[ij]*pmata[kl]+pmatb[ij]*pmatb[kl]); 00082 } 00083 00084 <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>{ 00085 ex -= a0*val*(pmata[ij]*pmata[kl]+pmatb[ij]*pmatb[kl]); 00086 } 00087 00088 <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>{ 00089 cont1(ij,kl,val); 00090 cont2(ij,kl,val); 00091 } 00092 00093 <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>{ 00094 cont1(ij,kl,val); 00095 cont3(ij,kl,val); 00096 } 00097 }; 00098 00099 } </div></pre><hr> <address> <small> Generated at Mon Oct 14 14:16:39 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>