<!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>uhftmpl.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>uhftmpl.h</h1><div class="fragment"><pre>00001 00002 <font class="keyword">namespace </font>sc { 00003 00004 <font class="keyword">class </font>LocalUHFContribution { 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 00011 <font class="keyword">public</font>: 00012 LocalUHFContribution(<font class="keywordtype">double</font> *ga, <font class="keywordtype">double</font> *pa, <font class="keywordtype">double</font> *gb, <font class="keywordtype">double</font> *pb) : 00013 gmata(ga), gmatb(gb), pmata(pa), pmatb(pb) {} 00014 ~LocalUHFContribution()<font class="keyword"> </font>{} 00015 00016 <font class="keywordtype">void</font> set_bound(<font class="keywordtype">double</font>,<font class="keywordtype">double</font>)<font class="keyword"> </font>{}; 00017 00018 <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>{ 00019 gmata[ij] += val*(pmata[kl]+pmatb[kl]); 00020 gmata[kl] += val*(pmata[ij]+pmatb[ij]); 00021 00022 gmatb[ij] += val*(pmata[kl]+pmatb[kl]); 00023 gmatb[kl] += val*(pmata[ij]+pmatb[ij]); 00024 } 00025 00026 <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>{ 00027 val *= 0.5; 00028 gmata[ij] -= val*pmata[kl]; 00029 gmata[kl] -= val*pmata[ij]; 00030 00031 gmatb[ij] -= val*pmatb[kl]; 00032 gmatb[kl] -= val*pmatb[ij]; 00033 } 00034 00035 <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>{ 00036 gmata[ij] -= val*pmata[kl]; 00037 gmata[kl] -= val*pmata[ij]; 00038 00039 gmatb[ij] -= val*pmatb[kl]; 00040 gmatb[kl] -= val*pmatb[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 cont1(ij,kl,val); 00045 cont2(ij,kl,val); 00046 } 00047 00048 <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>{ 00049 cont1(ij,kl,val); 00050 cont3(ij,kl,val); 00051 } 00052 }; 00053 00054 <font class="keyword">class </font>LocalUHFEnergyContribution { 00055 <font class="keyword">private</font>: 00056 <font class="keywordtype">double</font> * <font class="keyword">const</font> pmata; 00057 <font class="keywordtype">double</font> * <font class="keyword">const</font> pmatb; 00058 00059 <font class="keyword">public</font>: 00060 <font class="keywordtype">double</font> ec; 00061 <font class="keywordtype">double</font> ex; 00062 00063 LocalUHFEnergyContribution(<font class="keywordtype">double</font> *a, <font class="keywordtype">double</font> *b) : pmata(a), pmatb(b) { 00064 ec=ex=0; 00065 } 00066 00067 ~LocalUHFEnergyContribution()<font class="keyword"> </font>{} 00068 00069 <font class="keywordtype">void</font> set_bound(<font class="keywordtype">double</font>,<font class="keywordtype">double</font>)<font class="keyword"> </font>{}; 00070 00071 <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>{ 00072 ec += val*(pmata[ij]+pmatb[ij])*(pmata[kl]+pmatb[kl]); 00073 } 00074 00075 <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>{ 00076 ex -= 0.5*val*(pmata[ij]*pmata[kl]+pmatb[ij]*pmatb[kl]); 00077 } 00078 00079 <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>{ 00080 ex -= val*(pmata[ij]*pmata[kl]+pmatb[ij]*pmatb[kl]); 00081 } 00082 00083 <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>{ 00084 cont1(ij,kl,val); 00085 cont2(ij,kl,val); 00086 } 00087 00088 <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>{ 00089 cont1(ij,kl,val); 00090 cont3(ij,kl,val); 00091 } 00092 }; 00093 00094 <font class="keyword">class </font>LocalUHFGradContribution { 00095 <font class="keyword">private</font>: 00096 <font class="keywordtype">double</font> * <font class="keyword">const</font> pmata; 00097 <font class="keywordtype">double</font> * <font class="keyword">const</font> pmatb; 00098 00099 <font class="keyword">public</font>: 00100 LocalUHFGradContribution(<font class="keywordtype">double</font> *a, <font class="keywordtype">double</font> *b) : pmata(a), pmatb(b) {} 00101 ~LocalUHFGradContribution()<font class="keyword"> </font>{} 00102 00103 <font class="keyword">inline</font> <font class="keywordtype">double</font> cont1(<font class="keywordtype">int</font> ij, <font class="keywordtype">int</font> kl)<font class="keyword"> </font>{ 00104 <font class="keywordflow">return</font> (pmata[ij]*pmata[kl])+(pmatb[ij]*pmatb[kl]) + 00105 (pmata[ij]*pmatb[kl])+(pmatb[ij]*pmata[kl]); 00106 } 00107 00108 <font class="keyword">inline</font> <font class="keywordtype">double</font> cont2(<font class="keywordtype">int</font> ij, <font class="keywordtype">int</font> kl)<font class="keyword"> </font>{ 00109 <font class="keywordflow">return</font> 2*((pmata[ij]*pmata[kl])+(pmatb[ij]*pmatb[kl])); 00110 } 00111 }; 00112 00113 } </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>