00001 00002 #ifndef _chemistry_qc_scf_clhfcontrib_h 00003 #define _chemistry_qc_scf_clhfcontrib_h 00004 00005 #include <scconfig.h> 00006 #include <util/misc/exenv.h> 00007 #include <chemistry/qc/scf/fockbuild.h> 00008 00009 namespace sc { 00010 00017 class CLHFContribution: public GenericFockContribution { 00018 public: 00019 CLHFContribution(const Ref<GaussianBasisSet> &f_b1, 00020 const Ref<GaussianBasisSet> &f_b2, 00021 const Ref<GaussianBasisSet> &p_b, 00022 const std::string &fockbuildmatrixtype); 00023 CLHFContribution(const CLHFContribution &); 00024 ~CLHFContribution(); 00025 00026 Ref<FockContribution> clone(); 00027 00032 void contrib_e_J(double factor, 00033 int I, int J, int K, int L, 00034 int nI, int nJ, int nK, int nL, 00035 const double * restrictxx buf); 00036 00041 void contrib_e_K(double factor, 00042 int I, int J, int K, int L, 00043 int nI, int nJ, int nK, int nL, 00044 const double * restrictxx buf); 00045 00046 void contrib_p12_p13p24_J(double factor, 00047 int I, int J, int K, int L, 00048 int nI, int nJ, int nK, int nL, 00049 const double * restrictxx buf); 00050 void contrib_p12_p13p24_K(double factor, 00051 int I, int J, int K, int L, 00052 int nI, int nJ, int nK, int nL, 00053 const double * restrictxx buf); 00054 void contrib_p34_p13p24_J(double factor, 00055 int I, int J, int K, int L, 00056 int nI, int nJ, int nK, int nL, 00057 const double * restrictxx buf); 00058 void contrib_p34_p13p24_K(double factor, 00059 int I, int J, int K, int L, 00060 int nI, int nJ, int nK, int nL, 00061 const double * restrictxx buf); 00062 void contrib_p12_p34_J(double factor, 00063 int I, int J, int K, int L, 00064 int nI, int nJ, int nK, int nL, 00065 const double * restrictxx buf); 00066 void contrib_p12_p34_K(double factor, 00067 int I, int J, int K, int L, 00068 int nI, int nJ, int nK, int nL, 00069 const double * restrictxx buf); 00070 void contrib_p34_J(double factor, 00071 int I, int J, int K, int L, 00072 int nI, int nJ, int nK, int nL, 00073 const double * restrictxx buf); 00074 void contrib_p34_K(double factor, 00075 int I, int J, int K, int L, 00076 int nI, int nJ, int nK, int nL, 00077 const double * restrictxx buf); 00078 void contrib_p13p24_J(double factor, 00079 int I, int J, int K, int L, 00080 int nI, int nJ, int nK, int nL, 00081 const double * restrictxx buf); 00082 void contrib_p13p24_K(double factor, 00083 int I, int J, int K, int L, 00084 int nI, int nJ, int nK, int nL, 00085 const double * restrictxx buf); 00086 00090 void contrib_all_J(double factor, 00091 int I, int J, int K, int L, 00092 int nI, int nJ, int nK, int nL, 00093 const double * restrictxx buf); 00094 00098 void contrib_all_K(double factor, 00099 int I, int J, int K, int L, 00100 int nI, int nJ, int nK, int nL, 00101 const double * restrictxx buf); 00102 }; 00103 00104 } 00105 00106 #endif