|
dune-istl
2.2.0
|
A Vector of blocks with different blocksizes. More...
#include <dune/istl/vbvector.hh>
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... | |
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 A::size_type | size_type |
| The size type for the index access. | |
| typedef BlockVector< B, A > | block_type |
| typedef BlockVectorWindow< B, A > | window_type |
| 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 (size_type _nblocks) | |
| VariableBlockVector (size_type _nblocks, size_type m) | |
| VariableBlockVector (const VariableBlockVector &a) | |
| copy constructor, has copy semantics | |
| ~VariableBlockVector () | |
| free dynamic memory | |
| void | resize (size_type _nblocks) |
| same effect as constructor with same argument | |
| void | resize (size_type _nblocks, size_type 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[] (size_type i) |
| random access to blocks | |
| const window_type & | operator[] (size_type i) const |
| same for read only access | |
| Iterator | begin () |
| begin Iterator | |
| Iterator | end () |
| end Iterator | |
| Iterator | beforeEnd () |
| Iterator | beforeBegin () const |
| Iterator | find (size_type i) |
| random access returning iterator (end if not contained) | |
| ConstIterator | find (size_type i) const |
| random access returning iterator (end if not contained) | |
| ConstIterator | begin () const |
| begin ConstIterator | |
| ConstIterator | end () const |
| end ConstIterator | |
| ConstIterator | beforeEnd () const |
| ConstIterator | rend () const |
| end ConstIterator | |
| size_type | 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 | |
| iterator | beforeBegin () |
| size_type | size () const |
| number of blocks in the array (are of size 1 here) | |
Protected Attributes | |
| size_type | n |
| B * | p |
Friends | |
| class | CreateIterator |
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!
| typedef A Dune::VariableBlockVector< B, A >::allocator_type |
export the allocator type
Reimplemented from Dune::block_vector_unmanaged< B, A >.
| 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 >.
typedef RealIterator<const B> Dune::base_array_unmanaged< B, A >::const_iterator [inherited] |
iterator class for sequential access
Reimplemented in Dune::base_array< B, A >, and Dune::base_array_window< B, A >.
typedef base_array_unmanaged<B,A>::const_iterator Dune::block_vector_unmanaged< B, A >::ConstIterator [inherited] |
make iterators available as types
Reimplemented in Dune::BlockVectorWindow< B, A >, Dune::BlockVector< B, A >, and Dune::BlockVector< FieldVector< T, n >, A >.
| typedef B::field_type Dune::VariableBlockVector< B, A >::field_type |
export the type representing the field
Reimplemented from Dune::block_vector_unmanaged< B, A >.
typedef base_array_unmanaged<B,A>::iterator Dune::block_vector_unmanaged< B, A >::Iterator [inherited] |
make iterators available as types
Reimplemented in Dune::BlockVectorWindow< B, A >, Dune::BlockVector< B, A >, and Dune::BlockVector< FieldVector< T, n >, A >.
typedef RealIterator<B> Dune::base_array_unmanaged< B, A >::iterator [inherited] |
iterator type for sequential access
Reimplemented in Dune::base_array< B, A >, and Dune::base_array_window< B, A >.
typedef B Dune::base_array_unmanaged< B, A >::member_type [inherited] |
export the type representing the components
Reimplemented in Dune::base_array< B, A >, and Dune::base_array_window< B, A >.
| typedef A::size_type Dune::VariableBlockVector< B, A >::size_type |
The size type for the index access.
Reimplemented from Dune::block_vector_unmanaged< B, A >.
typedef B Dune::block_vector_unmanaged< B, A >::value_type [inherited] |
for STL compatibility
| typedef BlockVectorWindow<B,A> Dune::VariableBlockVector< B, A >::window_type |
| anonymous enum |
increment block level counter, yes, it is two levels because VariableBlockVector is a container of containers
| Dune::VariableBlockVector< B, A >::VariableBlockVector | ( | ) | [inline] |
constructor without arguments makes empty vector, object cannot be used yet
| Dune::VariableBlockVector< B, A >::VariableBlockVector | ( | size_type | _nblocks | ) | [inline, explicit] |
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 | ( | size_type | _nblocks, |
| size_type | m | ||
| ) | [inline] |
make vector with given number of blocks each having a constant size, object is fully usable then.
| _nblocks | Number of blocks |
| m | Number of elements in each block |
| Dune::VariableBlockVector< B, A >::VariableBlockVector | ( | const VariableBlockVector< B, A > & | a | ) | [inline] |
copy constructor, has copy semantics
| Dune::VariableBlockVector< B, A >::~VariableBlockVector | ( | ) | [inline] |
free dynamic memory
| block_vector_unmanaged& Dune::block_vector_unmanaged< B, A >::axpy | ( | const field_type & | a, |
| const block_vector_unmanaged< B, A > & | y | ||
| ) | [inline, inherited] |
vector space axpy operation
Referenced by Dune::block_vector_unmanaged< T, A >::axpy().
| iterator Dune::base_array_unmanaged< B, A >::beforeBegin | ( | ) | [inline, inherited] |
| Iterator Dune::VariableBlockVector< B, A >::beforeBegin | ( | ) | const [inline] |
Reimplemented from Dune::base_array_unmanaged< B, A >.
Referenced by Dune::Matrix< T, A >::beforeBegin().
| Iterator Dune::VariableBlockVector< B, A >::beforeEnd | ( | ) | [inline] |
Reimplemented from Dune::base_array_unmanaged< B, A >.
Referenced by Dune::Matrix< T, A >::beforeEnd().
| ConstIterator Dune::VariableBlockVector< B, A >::beforeEnd | ( | ) | const [inline] |
Reimplemented from Dune::base_array_unmanaged< B, A >.
| Iterator Dune::VariableBlockVector< B, A >::begin | ( | ) | [inline] |
begin Iterator
Reimplemented from Dune::base_array_unmanaged< B, A >.
Referenced by Dune::Matrix< T, A >::begin(), and test_IO().
| ConstIterator Dune::VariableBlockVector< B, A >::begin | ( | ) | const [inline] |
begin ConstIterator
Reimplemented from Dune::base_array_unmanaged< B, A >.
| CreateIterator Dune::VariableBlockVector< B, A >::createbegin | ( | ) | [inline] |
get initial create iterator
Referenced by test_IO().
| CreateIterator Dune::VariableBlockVector< B, A >::createend | ( | ) | [inline] |
get create iterator pointing to one after the last block
Referenced by test_IO().
| size_type Dune::block_vector_unmanaged< B, A >::dim | ( | ) | const [inline, inherited] |
dimension of the vector space
| Iterator Dune::VariableBlockVector< B, A >::end | ( | ) | [inline] |
end Iterator
Reimplemented from Dune::base_array_unmanaged< B, A >.
Referenced by Dune::Matrix< T, A >::end(), and test_IO().
| ConstIterator Dune::VariableBlockVector< B, A >::end | ( | ) | const [inline] |
end ConstIterator
Reimplemented from Dune::base_array_unmanaged< B, A >.
| Iterator Dune::VariableBlockVector< B, A >::find | ( | size_type | i | ) | [inline] |
random access returning iterator (end if not contained)
Reimplemented from Dune::base_array_unmanaged< B, A >.
| ConstIterator Dune::VariableBlockVector< B, A >::find | ( | size_type | i | ) | const [inline] |
random access returning iterator (end if not contained)
Reimplemented from Dune::base_array_unmanaged< B, A >.
| double Dune::block_vector_unmanaged< B, A >::infinity_norm | ( | ) | const [inline, inherited] |
infinity norm (maximum of absolute values of entries)
Referenced by Dune::block_vector_unmanaged< T, A >::infinity_norm().
| double Dune::block_vector_unmanaged< B, A >::infinity_norm_real | ( | ) | const [inline, inherited] |
simplified infinity norm (uses Manhattan norm for complex values)
Referenced by Dune::block_vector_unmanaged< T, A >::infinity_norm_real().
| size_type Dune::VariableBlockVector< B, A >::N | ( | ) | const [inline] |
number of blocks in the vector (are of variable size here)
Reimplemented from Dune::block_vector_unmanaged< B, A >.
Referenced by Dune::Matrix< T, A >::mv(), Dune::Matrix< T, A >::N(), Dune::Matrix< T, A >::rowdim(), Dune::Matrix< T, A >::umv(), and Dune::Matrix< T, A >::usmv().
| double Dune::block_vector_unmanaged< B, A >::one_norm | ( | ) | const [inline, inherited] |
one norm (sum over absolute values of entries)
| double Dune::block_vector_unmanaged< B, A >::one_norm_real | ( | ) | const [inline, inherited] |
simplified one norm (uses Manhattan norm for complex values)
| field_type Dune::block_vector_unmanaged< B, A >::operator* | ( | const block_vector_unmanaged< B, A > & | y | ) | const [inline, inherited] |
scalar product
| block_vector_unmanaged& Dune::block_vector_unmanaged< B, A >::operator*= | ( | const field_type & | k | ) | [inline, inherited] |
vector space multiplication with scalar
| block_vector_unmanaged& Dune::block_vector_unmanaged< B, A >::operator+= | ( | const block_vector_unmanaged< B, A > & | y | ) | [inline, inherited] |
vector space addition
| block_vector_unmanaged& Dune::block_vector_unmanaged< B, A >::operator-= | ( | const block_vector_unmanaged< B, A > & | y | ) | [inline, inherited] |
vector space subtraction
| block_vector_unmanaged& Dune::block_vector_unmanaged< B, A >::operator/= | ( | const field_type & | k | ) | [inline, inherited] |
vector space division by scalar
| VariableBlockVector& Dune::VariableBlockVector< B, A >::operator= | ( | const VariableBlockVector< B, A > & | a | ) | [inline] |
assignment
| VariableBlockVector& Dune::VariableBlockVector< B, A >::operator= | ( | const field_type & | k | ) | [inline] |
assign from scalar
Reimplemented from Dune::block_vector_unmanaged< B, A >.
| window_type& Dune::VariableBlockVector< B, A >::operator[] | ( | size_type | i | ) | [inline] |
random access to blocks
Reimplemented from Dune::base_array_unmanaged< B, A >.
| const window_type& Dune::VariableBlockVector< B, A >::operator[] | ( | size_type | i | ) | const [inline] |
same for read only access
Reimplemented from Dune::base_array_unmanaged< B, A >.
| ConstIterator Dune::VariableBlockVector< B, A >::rend | ( | ) | const [inline] |
end ConstIterator
| void Dune::VariableBlockVector< B, A >::resize | ( | size_type | _nblocks | ) | [inline] |
same effect as constructor with same argument
Referenced by Dune::Matrix< T, A >::setSize().
| void Dune::VariableBlockVector< B, A >::resize | ( | size_type | _nblocks, |
| size_type | m | ||
| ) | [inline] |
same effect as constructor with same argument
| size_type Dune::base_array_unmanaged< B, A >::size | ( | ) | const [inline, inherited] |
number of blocks in the array (are of size 1 here)
Referenced by Dune::Matrix< T, A >::coldim(), and Dune::BlockVector< FieldVector< T, n >, A >::resize().
| double Dune::block_vector_unmanaged< B, A >::two_norm | ( | ) | const [inline, inherited] |
two norm sqrt(sum over squared values of entries)
Referenced by test_Iter().
| double Dune::block_vector_unmanaged< B, A >::two_norm2 | ( | ) | const [inline, inherited] |
sqare of two norm (sum over squared values of entries), need for block recursion
friend class CreateIterator [friend] |
size_type Dune::base_array_unmanaged< B, A >::n [protected, inherited] |
Referenced by Dune::base_array_window< B, A >::advance(), Dune::block_vector_unmanaged< T, A >::axpy(), Dune::base_array< B, A >::base_array(), Dune::base_array_unmanaged< T, A >::beforeEnd(), Dune::BlockVector< FieldVector< T, n >, A >::BlockVector(), Dune::BlockVectorWindow< B, A >::BlockVectorWindow(), Dune::block_vector_unmanaged< T, A >::dim(), Dune::base_array_unmanaged< T, A >::end(), Dune::base_array_unmanaged< T, A >::find(), Dune::BlockVectorWindow< B, A >::getsize(), Dune::block_vector_unmanaged< T, A >::infinity_norm(), Dune::block_vector_unmanaged< T, A >::infinity_norm_real(), Dune::base_array_window< B, A >::move(), Dune::block_vector_unmanaged< T, A >::N(), Dune::block_vector_unmanaged< T, A >::one_norm(), Dune::block_vector_unmanaged< T, A >::one_norm_real(), Dune::block_vector_unmanaged< T, A >::operator*(), Dune::block_vector_unmanaged< T, A >::operator*=(), Dune::VariableBlockVector< B, A >::CreateIterator::operator++(), Dune::block_vector_unmanaged< T, A >::operator+=(), Dune::block_vector_unmanaged< T, A >::operator-=(), Dune::block_vector_unmanaged< T, A >::operator/=(), Dune::block_vector_unmanaged< T, A >::operator=(), Dune::VariableBlockVector< T, A >::operator=(), Dune::BlockVector< FieldVector< T, n >, A >::operator=(), Dune::base_array< B, A >::operator=(), Dune::BlockVectorWindow< B, A >::operator=(), Dune::base_array_unmanaged< T, A >::operator[](), Dune::VariableBlockVector< T, A >::resize(), Dune::BlockVector< FieldVector< T, n >, A >::resize(), Dune::base_array< B, A >::resize(), Dune::base_array_window< B, A >::set(), Dune::BlockVectorWindow< B, A >::set(), Dune::BlockVectorWindow< B, A >::setsize(), Dune::base_array_unmanaged< T, A >::size(), Dune::block_vector_unmanaged< T, A >::two_norm(), Dune::block_vector_unmanaged< T, A >::two_norm2(), Dune::VariableBlockVector< T, A >::VariableBlockVector(), Dune::base_array< B, A >::~base_array(), and Dune::VariableBlockVector< T, A >::~VariableBlockVector().
B* Dune::base_array_unmanaged< B, A >::p [protected, inherited] |
Referenced by Dune::base_array_window< B, A >::advance(), Dune::base_array< B, A >::base_array(), Dune::base_array_unmanaged< T, A >::beforeBegin(), Dune::base_array_unmanaged< T, A >::beforeEnd(), Dune::base_array_unmanaged< T, A >::begin(), Dune::BlockVector< FieldVector< T, n >, A >::BlockVector(), Dune::BlockVectorWindow< B, A >::BlockVectorWindow(), Dune::base_array_unmanaged< T, A >::end(), Dune::base_array_unmanaged< T, A >::find(), Dune::base_array_window< B, A >::getptr(), Dune::BlockVectorWindow< B, A >::getptr(), Dune::base_array_window< B, A >::move(), Dune::VariableBlockVector< B, A >::CreateIterator::operator++(), Dune::VariableBlockVector< T, A >::operator=(), Dune::BlockVector< FieldVector< T, n >, A >::operator=(), Dune::base_array< B, A >::operator=(), Dune::BlockVectorWindow< B, A >::operator=(), Dune::base_array_unmanaged< T, A >::operator[](), Dune::BlockVector< FieldVector< T, n >, A >::reserve(), Dune::VariableBlockVector< T, A >::resize(), Dune::base_array< B, A >::resize(), Dune::base_array_window< B, A >::set(), Dune::BlockVectorWindow< B, A >::set(), Dune::BlockVectorWindow< B, A >::setptr(), Dune::VariableBlockVector< T, A >::VariableBlockVector(), Dune::base_array< B, A >::~base_array(), Dune::BlockVector< FieldVector< T, n >, A >::~BlockVector(), and Dune::VariableBlockVector< T, A >::~VariableBlockVector().
1.7.6.1