Dune::VariableBlockVector< B, A > Class Template Reference
[Sparse Matrix and Vector classes]
#include <vbvector.hh>

Detailed Description
template<class B, class A = ISTLAllocator>
class Dune::VariableBlockVector< B, A >
A Vector of blocks with different blocksizes.
implements a vector consisting of a number of blocks (to be given at run-time) which themselves consist of a number of blocks (also given at run-time) of the given type B.
VariableBlockVector is a container of containers!
Public Types | |
enum | { blocklevel = B::blocklevel+2 } |
typedef B::field_type | field_type |
export the type representing the field | |
typedef A | allocator_type |
export the allocator type | |
typedef BlockVector< B, A > | block_type |
typedef A::size_type | size_type |
The size type for the index access. | |
typedef base_array_unmanaged < B, A >::iterator | Iterator |
make iterators available as types | |
typedef base_array_unmanaged < B, A >::const_iterator | ConstIterator |
make iterators available as types | |
typedef B | value_type |
for STL compatibility | |
typedef B | member_type |
export the type representing the components | |
typedef RealIterator< B > | iterator |
iterator type for sequential access | |
typedef RealIterator< const B > | const_iterator |
iterator class for sequential access | |
Public Member Functions | |
VariableBlockVector () | |
VariableBlockVector (int _nblocks) | |
VariableBlockVector (int _nblocks, int m) | |
VariableBlockVector (const VariableBlockVector &a) | |
copy constructor, has copy semantics | |
~VariableBlockVector () | |
free dynamic memory | |
void | resize (int _nblocks) |
same effect as constructor with same argument | |
void | resize (int _nblocks, int m) |
same effect as constructor with same argument | |
VariableBlockVector & | operator= (const VariableBlockVector &a) |
assignment | |
VariableBlockVector & | operator= (const field_type &k) |
assign from scalar | |
CreateIterator | createbegin () |
get initial create iterator | |
CreateIterator | createend () |
get create iterator pointing to one after the last block | |
window_type & | operator[] (int i) |
random access to blocks | |
const window_type & | operator[] (int i) const |
same for read only access | |
Iterator | begin () |
begin Iterator | |
Iterator | end () |
end Iterator | |
Iterator | rbegin () |
begin Iterator | |
Iterator | rend () |
end Iterator | |
Iterator | find (int i) |
random access returning iterator (end if not contained) | |
ConstIterator | begin () const |
begin ConstIterator | |
ConstIterator | end () const |
end ConstIterator | |
ConstIterator | rbegin () const |
begin ConstIterator | |
ConstIterator | rend () const |
end ConstIterator | |
int | N () const |
number of blocks in the vector (are of variable size here) | |
block_vector_unmanaged & | operator+= (const block_vector_unmanaged &y) |
vector space addition | |
block_vector_unmanaged & | operator-= (const block_vector_unmanaged &y) |
vector space subtraction | |
block_vector_unmanaged & | operator*= (const field_type &k) |
vector space multiplication with scalar | |
block_vector_unmanaged & | operator/= (const field_type &k) |
vector space division by scalar | |
block_vector_unmanaged & | axpy (const field_type &a, const block_vector_unmanaged &y) |
vector space axpy operation | |
field_type | operator* (const block_vector_unmanaged &y) const |
scalar product | |
double | one_norm () const |
one norm (sum over absolute values of entries) | |
double | one_norm_real () const |
simplified one norm (uses Manhattan norm for complex values) | |
double | two_norm () const |
two norm sqrt(sum over squared values of entries) | |
double | two_norm2 () const |
sqare of two norm (sum over squared values of entries), need for block recursion | |
double | infinity_norm () const |
infinity norm (maximum of absolute values of entries) | |
double | infinity_norm_real () const |
simplified infinity norm (uses Manhattan norm for complex values) | |
size_type | dim () const |
dimension of the vector space | |
B & | operator[] (size_type i) |
random access to blocks | |
const B & | operator[] (size_type i) const |
same for read only access | |
iterator | find (size_type i) |
random access returning iterator (end if not contained) | |
const_iterator | find (size_type i) const |
random access returning iterator (end if not contained) | |
size_type | size () const |
number of blocks in the array (are of size 1 here) | |
Classes | |
class | ConstIterator |
ConstIterator class for sequential access. More... | |
class | CreateIterator |
Iterator class for sequential creation of blocks. More... | |
class | Iterator |
Iterator class for sequential access. More... |
Member Typedef Documentation
typedef BlockVector<B,A> Dune::VariableBlockVector< B, A >::block_type |
export the type representing the components, note that this is *not* the type refered to by the iterators and random access. However, it can be used to copy blocks (which is its only purpose).
Reimplemented from Dune::block_vector_unmanaged< B, A >.
Member Enumeration Documentation
anonymous enum |
increment block level counter, yes, it is two levels because VariableBlockVector is a container of containers
Constructor & Destructor Documentation
Dune::VariableBlockVector< B, A >::VariableBlockVector | ( | ) | [inline] |
constructor without arguments makes empty vector, object cannot be used yet
Dune::VariableBlockVector< B, A >::VariableBlockVector | ( | int | _nblocks | ) | [inline] |
make vector with given number of blocks, but size of each block is not yet known, object cannot be used yet
Dune::VariableBlockVector< B, A >::VariableBlockVector | ( | int | _nblocks, | |
int | m | |||
) | [inline] |
make vector with given number of blocks each having a constant size, object is fully usable then
The documentation for this class was generated from the following file: