28 #ifndef _chemistry_qc_mbptr12_distarray4_memgrp_h
29 #define _chemistry_qc_mbptr12_distarray4_memgrp_h
31 #include <util/ref/ref.h>
32 #include <util/group/memory.h>
33 #include <math/distarray4/distarray4.h>
49 size_t blksize_memgrp_;
55 const double *ints_[max_num_te_types];
56 mutable int refcount_[max_num_te_types];
63 int ij_proc(
int i,
int j)
const {
return ij_index(i,j)%
ntasks();};
68 size_t memorygrp_blksize,
69 DistArray4Storage
storage = DistArray4Storage_XY);
83 int xstart,
int xfence,
int ystart,
int yfence,
86 double* buf = 0)
const;
88 int xstart,
int xfence,
int ystart,
int yfence,
94 bool is_local(
int i,
int j)
const {
return (ij_proc(i,j) == mem_->me());};
96 bool is_avail(
int i,
int j)
const {
return true;};
int nj() const
Rank of index space j.
Definition: distarray4.h:116
bool is_local(int i, int j) const
Is this block stored locally?
Definition: distarray4_memgrp.h:94
DistArray4 contains a set of one or more distributed dense 4-index arrays.
Definition: distarray4.h:94
int num_te_types() const
The number of types of integrals that are being handled together.
Definition: distarray4.h:112
A template class that maintains references counts.
Definition: ref.h:361
bool is_avail(int i, int j) const
In this implementation all blocks are globally available.
Definition: distarray4_memgrp.h:96
int ny() const
Rank of index space y.
Definition: distarray4.h:120
Ref< DistArray4 > clone(const DistArray4Dimensions &dim=DistArray4Dimensions::default_dim())
how to clone.
int ntasks() const
total number of tasks
Definition: distarray4.h:198
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
void store_pair_block(int i, int j, tbint_type oper_type, const double *ints)
Stores an ij pair block of integrals.
DistArray4_MemoryGrp handles transformed integrals held in memory by MemoryGrp.
Definition: distarray4_memgrp.h:46
const double * retrieve_pair_block(int i, int j, tbint_type oper_type, double *buf=0) const
Retrieves an ij block of integrals.
void deactivate()
call this after operations on this object are finished. May destroy data (see data_persistent()).
const DistArray4Storage & storage() const
physical storage of the integrals. The default storage is XY. Storage is not mutable.
Definition: distarray4.h:122
void store_pair_subblock(int i, int j, tbint_type oper_type, int xstart, int xfence, int ystart, int yfence, const double *ints)
Stores an rectangular subblock of ij block of integrals.
bool has_access(int proc) const
Does this task have access to all the integrals?
Definition: distarray4_memgrp.h:98
Definition: stateout.h:71
int ni() const
Rank of index space i.
Definition: distarray4.h:114
unsigned int tbint_type
Types of two-body operators that DistArray4 understands.
Definition: distarray4.h:108
Definition: distarray4.h:43
void release_pair_block(int i, int j, tbint_type oper_type) const
Releases an ij pair block of integrals (if needed)
bool data_persistent() const
if this returns false, call to deactivate may destroy data
Definition: distarray4_memgrp.h:79
int nx() const
Rank of index space x.
Definition: distarray4.h:118
Contains all MPQC code up to version 3.
Definition: mpqcin.h:14
void retrieve_pair_subblock(int i, int j, tbint_type oper_type, int xstart, int xfence, int ystart, int yfence, double *buf) const
Retrieves a rectangular subblock of ij block of integrals.
Generated at Sun Jan 26 2020 23:24:00 for MPQC
3.0.0-alpha using the documentation package Doxygen
1.8.16.