A block array is a partition of an array into blocks or subarrays, see Wikipedia for a more extensive description. This package has two purposes. Firstly, it defines an interface for an AbstractBlockArray block arrays that can be shared among types representing different types of block arrays. The advantage to this is that it provides a consistent API for block arrays. Secondly, it also implements two different types of block arrays that follow the AbstractBlockArray interface. The type BlockArray stores each block contiguously while the type PseudoBlockArray stores the full matrix contiguously. This means that BlockArray supports fast noncopying extraction and insertion of blocks while PseudoBlockArray supports fast access to the full matrix to use in for example a linear solver.
Features
- A simple way to produce BlockArrays is via mortar, which combines an array of arrays into a BlockArray
- Documentation available
- Implements two different type of block arrays
- It provides a consistent API for block arrays
- The type BlockArray stores each block contiguously
- BlockArray supports fast non copying extraction and insertion of blocks