00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifdef __GNUG__
00029 #pragma interface
00030 #endif
00031
00032 #ifndef _chemistry_qc_intcca_obintcca_h
00033 #define _chemistry_qc_intcca_obintcca_h
00034
00035 #include <chemistry/qc/basis/obint.h>
00036 #include <chemistry/qc/intcca/int1e.h>
00037 #include <Chemistry_QC_GaussianBasis_IntegralEvaluatorFactory.hh>
00038 #include <Chemistry_QC_GaussianBasis_DerivCenters.hh>
00039
00040 using namespace Chemistry::QC::GaussianBasis;
00041
00042 namespace sc {
00043
00044
00045
00049 class OneBodyIntCCA : public OneBodyInt {
00050 private:
00051 IntegralEvaluatorFactory eval_factory_;
00052 bool use_opaque_;
00053 protected:
00054 Ref<sc::Int1eCCA> int1ecca_;
00055 typedef void (sc::Int1eCCA::*IntegralFunction)(int,int);
00056 IntegralFunction intfunc_;
00057 public:
00058 OneBodyIntCCA(Integral*,
00059 const Ref<GaussianBasisSet>&, const Ref<GaussianBasisSet>&,
00060 IntegralEvaluatorFactory, IntegralFunction, bool );
00061 ~OneBodyIntCCA();
00062 void compute_shell(int,int);
00063 bool cloneable();
00064 Ref<OneBodyInt> clone();
00065 };
00066
00068
00072 class OneBodyDerivIntCCA : public OneBodyDerivInt {
00073 private:
00074 IntegralEvaluatorFactory eval_factory_;
00075 bool use_opaque_;
00076 string eval_type_;
00077 protected:
00078 Ref<Int1eCCA> int1ecca_;
00079 typedef void (Int1eCCA::*IntegralFunction)(int, int, DerivCenters&);
00080 public:
00081 OneBodyDerivIntCCA(Integral*,
00082 const Ref<GaussianBasisSet>&,
00083 const Ref<GaussianBasisSet>&,
00084 IntegralEvaluatorFactory,
00085 bool, string);
00086 ~OneBodyDerivIntCCA();
00087 void compute_shell(int, int, DerivCenters&);
00088 void compute_shell(int, int, int);
00089 };
00090
00091 }
00092
00093 #endif
00094
00095
00096
00097
00098