12#ifndef MFEM_BLOCKVECTOR
13#define MFEM_BLOCKVECTOR
A class to handle Vectors in a block fashion.
BlockVector & operator=(const BlockVector &original)
Assignment operator. this and original must have the same block structure.
void Update(real_t *data, const Array< int > &bOffsets)
Update method.
void SyncFromBlocks() const
Synchronize the memory location flags (i.e. the memory validity flags) of the big/monolithic block-ve...
const int * blockOffsets
Offset for each block start. (length numBlocks+1)
~BlockVector()
Destructor.
int numBlocks
Number of blocks in the blockVector.
void SyncToBlocks() const
Synchronize the memory location flags (i.e. the memory validity flags) of the big/monolithic block-ve...
const Vector & GetBlock(int i) const
Get the i-th vector in the block (const version).
Vector * blocks
array of Vector objects used to extract blocks without allocating memory.
void GetBlockView(int i, Vector &blockView)
Get the i-th vector in the block.
Vector & GetBlock(int i)
Get the i-th vector in the block.
int NumBlocks() const
Return the number of blocks.
BlockVector()
empty constructor
MemoryType
Memory types supported by MFEM.