00001 00002 #ifndef _chemistry_qc_scf_hsoshfcontrib_h 00003 #define _chemistry_qc_scf_hsoshfcontrib_h 00004 00005 #include <scconfig.h> 00006 #include <util/misc/exenv.h> 00007 #include <chemistry/qc/scf/fockbuild.h> 00008 00009 namespace sc { 00010 00024 class HSOSHFContribution: public GenericFockContribution { 00025 public: 00026 HSOSHFContribution(const Ref<GaussianBasisSet> &f_b1, 00027 const Ref<GaussianBasisSet> &f_b2, 00028 const Ref<GaussianBasisSet> &p_b, 00029 const std::string &fockbuildmatrixtype); 00030 HSOSHFContribution(const HSOSHFContribution &); 00031 ~HSOSHFContribution(); 00032 00033 Ref<FockContribution> clone(); 00034 00039 void contrib_e_J(double factor, 00040 int I, int J, int K, int L, 00041 int nI, int nJ, int nK, int nL, 00042 const double * restrictxx buf); 00043 00048 void contrib_e_K(double factor, 00049 int I, int J, int K, int L, 00050 int nI, int nJ, int nK, int nL, 00051 const double * restrictxx buf); 00052 00053 void contrib_p12_p13p24_J(double factor, 00054 int I, int J, int K, int L, 00055 int nI, int nJ, int nK, int nL, 00056 const double * restrictxx buf); 00057 void contrib_p12_p13p24_K(double factor, 00058 int I, int J, int K, int L, 00059 int nI, int nJ, int nK, int nL, 00060 const double * restrictxx buf); 00061 void contrib_p34_p13p24_J(double factor, 00062 int I, int J, int K, int L, 00063 int nI, int nJ, int nK, int nL, 00064 const double * restrictxx buf); 00065 void contrib_p34_p13p24_K(double factor, 00066 int I, int J, int K, int L, 00067 int nI, int nJ, int nK, int nL, 00068 const double * restrictxx buf); 00069 void contrib_p12_p34_J(double factor, 00070 int I, int J, int K, int L, 00071 int nI, int nJ, int nK, int nL, 00072 const double * restrictxx buf); 00073 void contrib_p12_p34_K(double factor, 00074 int I, int J, int K, int L, 00075 int nI, int nJ, int nK, int nL, 00076 const double * restrictxx buf); 00077 void contrib_p34_J(double factor, 00078 int I, int J, int K, int L, 00079 int nI, int nJ, int nK, int nL, 00080 const double * restrictxx buf); 00081 void contrib_p34_K(double factor, 00082 int I, int J, int K, int L, 00083 int nI, int nJ, int nK, int nL, 00084 const double * restrictxx buf); 00085 void contrib_p13p24_J(double factor, 00086 int I, int J, int K, int L, 00087 int nI, int nJ, int nK, int nL, 00088 const double * restrictxx buf); 00089 void contrib_p13p24_K(double factor, 00090 int I, int J, int K, int L, 00091 int nI, int nJ, int nK, int nL, 00092 const double * restrictxx buf); 00093 00097 void contrib_all_J(double factor, 00098 int I, int J, int K, int L, 00099 int nI, int nJ, int nK, int nL, 00100 const double * restrictxx buf); 00101 00105 void contrib_all_K(double factor, 00106 int I, int J, int K, int L, 00107 int nI, int nJ, int nK, int nL, 00108 const double * restrictxx buf); 00109 }; 00110 00111 } 00112 00113 #endif