27 #ifndef DISTR_BASIS_SET_CHUNK_HEADER
28 #define DISTR_BASIS_SET_CHUNK_HEADER
30 #ifdef USE_CHUNKS_AND_TASKS
32 #include "chunks_and_tasks.h"
39 for(
int i = 0; i < 3; i++) {
46 class DistrBasisSetChunk :
public cht::Chunk {
49 void writeToBuffer (
char * dataBuffer,
50 size_t const bufferSize )
const;
51 size_t getSize()
const;
52 void assignFromBuffer (
char const * dataBuffer,
53 size_t const bufferSize);
54 size_t memoryUsage()
const;
55 void getChildChunks(std::list<cht::ChunkID> & childChunkIDs)
const;
57 DistrBasisSetChunk() : noOfBasisFuncs(0) { }
59 : noOfBasisFuncs(b.noOfBasisFuncs), basisInfo(b), maxExtent(0), boundingBoxForCenters(box) { }
61 : noOfBasisFuncs(b.noOfBasisFuncs), basisInfo(b), maxExtent(0), boundingBoxForCenters(box), basisFuncIndexList(indexList) { }
62 DistrBasisSetChunk(
const BasisInfoStruct & b,
const BoxStruct & box,
const std::vector<int> indexList,
const std::vector<ergo_real> extentList)
63 : noOfBasisFuncs(b.noOfBasisFuncs), basisInfo(b), boundingBoxForCenters(box), basisFuncIndexList(indexList), basisFuncExtentList(extentList) {
65 for(
int i = 0; i < basisFuncExtentList.size(); i++)
66 if(basisFuncExtentList[i] > maxExtent)
67 maxExtent = basisFuncExtentList[i];
69 DistrBasisSetChunk(
int nBasisFuncs,
const BoxStruct & box,
ergo_real maxExtent_, cht::ChunkID cid_child1, cht::ChunkID cid_child2)
70 : noOfBasisFuncs(nBasisFuncs), boundingBoxForCenters(box), maxExtent(maxExtent_) {
71 cid_child_chunks[0] = cid_child1;
72 cid_child_chunks[1] = cid_child2;
77 std::vector<int> basisFuncIndexList;
78 std::vector<ergo_real> basisFuncExtentList;
81 cht::ChunkID cid_child_chunks[2];
83 CHT_CHUNK_TYPE_DECLARATION;
double ergo_real
Definition: realtype.h:53
Definition: basisinfo.h:111
struct BoxStruct_ BoxStruct
Definition: cubature_rules.h:41
Definition: cubature_rules.h:37