28 #ifndef _chemistry_qc_mbptr12_r12ia_h
29 #define _chemistry_qc_mbptr12_r12ia_h
36 #include <util/ref/ref.h>
37 #include <util/state/state.h>
38 #include <util/state/statein.h>
39 #include <util/state/stateout.h>
40 #include <util/group/memory.h>
86 virtual int ntasks()
const =0;
88 virtual int taskid()
const =0;
90 void inc_next_orbital(
int ni);
93 R12IntsAcc(
int num_te_types,
int ni,
int nj,
int nx,
int ny);
100 static const int max_num_te_types_ = 4;
105 int ni()
const {
return ni_; }
107 int nj()
const {
return nj_; }
109 int nx()
const {
return nx_; }
111 int ny()
const {
return ny_; }
115 int next_orbital()
const;
129 virtual void store_memorygrp(
Ref<MemoryGrp>& mem,
int ni,
const size_t blksize = 0) =0;
133 virtual void store_pair_block(
int i,
int j,
double *ints)=0;
135 virtual void commit();
139 virtual void activate();
141 virtual void deactivate();
145 virtual double* retrieve_pair_block(
int i,
int j, tbint_type oper_type) =0;
147 virtual void release_pair_block(
int i,
int j, tbint_type oper_type) =0;
149 virtual bool is_local(
int i,
int j)
const =0;
151 virtual bool is_avail(
int i,
int j)
const =0;
153 virtual bool has_access(
int proc)
const =0;
157 int tasks_with_access(vector<int>& twa_map)
const;
159 virtual bool can_restart()
const =0;