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
00029 #ifndef _chemistry_qc_mbpt_hsosv1e1_h
00030 #define _chemistry_qc_mbpt_hsosv1e1_h
00031
00032 #ifdef __GNUC__
00033 #pragma interface
00034 #endif
00035
00036 #include <util/misc/regtime.h>
00037 #include <util/group/memory.h>
00038 #include <util/group/thread.h>
00039 #include <chemistry/qc/basis/integral.h>
00040
00041 class HSOSV1Erep1Qtr: public Thread {
00042 private:
00043 int mythread;
00044 int nthread;
00045 int me;
00046 int nproc;
00047 Ref<RegionTimer> timer;
00048 Ref<ThreadLock> lock;
00049 Ref<GaussianBasisSet> basis;
00050 Ref<TwoBodyInt> tbint;
00051 int ni,i_offset;
00052 double **scf_vector;
00053 double tol;
00054 int debug;
00055
00056 double *trans_int1;
00057 double aoint_computed_;
00058 int nfuncmax;
00059 int nbasis;
00060 int nshell;
00061
00062 int R,S,nr,ns;
00063 public:
00064 HSOSV1Erep1Qtr(int mythread_a, int nthread_a,
00065 int me_a, int nproc_a,
00066 const Ref<ThreadLock> &lock_a,
00067 const Ref<GaussianBasisSet> &basis_a,
00068 const Ref<TwoBodyInt> &tbint_a,
00069 int ni_a, double **scf_vector_a,
00070 double tol_a, int debug_a);
00071 ~HSOSV1Erep1Qtr();
00072
00073 void run();
00074
00075 void accum_buffer(double *buffer);
00076 void set_data(int R_a,int nr_a,int S_a,int ns_a,int ni_a, int ioffset_a);
00077 double aoint_computed() { return aoint_computed_; }
00078 };
00079
00080 #endif
00081
00082
00083
00084
00085
00086
00087