r12ia.h
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 #ifndef _chemistry_qc_mbptr12_r12ia_h
00029 #define _chemistry_qc_mbptr12_r12ia_h
00030
00031 #ifdef __GNUC__
00032 #pragma interface
00033 #endif
00034
00035 #include <util/ref/ref.h>
00036 #include <util/group/memory.h>
00037
00038 namespace sc {
00039
00041
00042
00043
00044
00045 class R12IntsAcc: public RefCount {
00046
00047 int num_te_types_;
00048
00049 protected:
00050 int nocc_, nocc_act_, nfzc_;
00051 int nbasis1_, nbasis2_;
00052 size_t nbasis__2_;
00053 size_t blksize_;
00054 size_t blocksize_;
00055 bool committed_;
00056
00057 public:
00058 R12IntsAcc(int num_te_types, int nbasis1, int nbasis2, int nocc, int nfzc);
00059 ~R12IntsAcc();
00060
00062 enum tbint_type { eri=0, r12=1, r12t1=2, r12t2=3};
00063 static const int max_num_te_types_ = 4;
00064
00066 int num_te_types() const { return num_te_types_; };
00067
00071 virtual void store_memorygrp(Ref<MemoryGrp>& mem, int ni)=0;
00075 virtual void store_pair_block(int i, int j, double *ints)=0;
00077 virtual void commit() { committed_ = true; };
00079 virtual void deactivate() {};
00081 virtual double* retrieve_pair_block(int i, int j, tbint_type oper_type) =0;
00083 virtual void release_pair_block(int i, int j, tbint_type oper_type) =0;
00085 virtual bool is_local(int i, int j) const =0;
00087 virtual bool is_avail(int i, int j) const =0;
00089 virtual bool has_access(int proc) const =0;
00091 virtual bool can_restart() const =0;
00092 };
00093
00094 }
00095
00096 #endif
00097
00098
00099
00100
00101
Generated at Sat Dec 18 15:14:22 2004 for MPQC
2.2.3 using the documentation package Doxygen
1.3.7-20040617.