dune-istl
2.2.1
|
A vector of blocks with memory management. More...
#include <dune/istl/bvector.hh>
Public Types | |
enum | { blocklevel = B::blocklevel+1 } |
increment block level counter More... | |
typedef B::field_type | field_type |
export the type representing the field | |
typedef B | block_type |
export the type representing the components | |
typedef A | allocator_type |
export the allocator type | |
typedef A::size_type | size_type |
The type for the index access. | |
typedef block_vector_unmanaged < B, A >::Iterator | Iterator |
make iterators available as types | |
typedef block_vector_unmanaged < B, A >::ConstIterator | 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 | |
BlockVector () | |
makes empty vector | |
BlockVector (size_type _n) | |
make vector with _n components | |
BlockVector (size_type _n, size_type capacity) | |
Make vector with _n components but preallocating capacity components. | |
void | reserve (size_type capacity, bool copyOldValues=true) |
Reserve space. | |
size_type | capacity () const |
Get the capacity of the vector. | |
void | resize (size_type size, bool copyOldValues=true) |
Resize the vector. | |
BlockVector (const BlockVector &a) | |
copy constructor | |
BlockVector (const block_vector_unmanaged< B, A > &_a) | |
construct from base class object | |
~BlockVector () | |
free dynamic memory | |
BlockVector & | operator= (const BlockVector &a) |
assignment | |
BlockVector & | operator= (const block_vector_unmanaged< B, A > &a) |
assign from base class object | |
BlockVector & | operator= (const field_type &k) |
assign from scalar | |
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 | N () const |
number of blocks in the vector (are of size 1 here) | |
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 | begin () |
begin iterator | |
const_iterator | begin () const |
begin const_iterator | |
iterator | end () |
end iterator | |
const_iterator | end () const |
end const_iterator | |
iterator | beforeEnd () |
const_iterator | beforeEnd () const |
iterator | beforeBegin () |
const_iterator | beforeBegin () const |
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) |
Protected Attributes | |
size_type | capacity_ |
A | allocator_ |
size_type | n |
B * | p |
A vector of blocks with memory management.
BlockVector adds memory management with ordinary copy semantics to the block_vector_unmanaged template.
Error checking: no error checking is provided normally. Setting the compile time switch DUNE_ISTL_WITH_CHECKING enables error checking.
typedef A Dune::BlockVector< B, A >::allocator_type |
export the allocator type
typedef B Dune::BlockVector< B, A >::block_type |
export the type representing the components
|
inherited |
iterator class for sequential access
typedef block_vector_unmanaged<B,A>::ConstIterator Dune::BlockVector< B, A >::ConstIterator |
make iterators available as types
typedef B::field_type Dune::BlockVector< B, A >::field_type |
export the type representing the field
|
inherited |
iterator type for sequential access
typedef block_vector_unmanaged<B,A>::Iterator Dune::BlockVector< B, A >::Iterator |
make iterators available as types
|
inherited |
export the type representing the components
typedef A::size_type Dune::BlockVector< B, A >::size_type |
The type for the index access.
|
inherited |
for STL compatibility
anonymous enum |
|
inline |
makes empty vector
|
inlineexplicit |
make vector with _n components
|
inline |
Make vector with _n components but preallocating capacity components.
If _n > capacity then space for _n entries is allocated.
|
inline |
copy constructor
|
inline |
construct from base class object
|
inline |
free dynamic memory
|
inlineinherited |
vector space axpy operation
Referenced by Dune::block_vector_unmanaged< T, A >::axpy().
|
inlineinherited |
|
inlineinherited |
Reimplemented in Dune::VariableBlockVector< B, A >, and Dune::VariableBlockVector< T, A >.
|
inlineinherited |
Reimplemented in Dune::VariableBlockVector< B, A >, and Dune::VariableBlockVector< T, A >.
|
inlineinherited |
Reimplemented in Dune::VariableBlockVector< B, A >, and Dune::VariableBlockVector< T, A >.
|
inlineinherited |
begin iterator
Reimplemented in Dune::VariableBlockVector< B, A >, and Dune::VariableBlockVector< T, A >.
Referenced by test_basearray(), and test_IO().
|
inlineinherited |
begin const_iterator
Reimplemented in Dune::VariableBlockVector< B, A >, and Dune::VariableBlockVector< T, A >.
|
inline |
Get the capacity of the vector.
I. e. the maximum number of elements the vector can hold.
Referenced by Dune::BlockVector< FieldVector< T, n >, A >::BlockVector(), and Dune::BlockVector< FieldVector< T, n >, A >::reserve().
|
inlineinherited |
dimension of the vector space
|
inlineinherited |
end iterator
Reimplemented in Dune::VariableBlockVector< B, A >, and Dune::VariableBlockVector< T, A >.
Referenced by test_basearray(), and test_IO().
|
inlineinherited |
end const_iterator
Reimplemented in Dune::VariableBlockVector< B, A >, and Dune::VariableBlockVector< T, A >.
|
inlineinherited |
random access returning iterator (end if not contained)
Reimplemented in Dune::VariableBlockVector< B, A >, and Dune::VariableBlockVector< T, A >.
|
inlineinherited |
random access returning iterator (end if not contained)
Reimplemented in Dune::VariableBlockVector< B, A >, and Dune::VariableBlockVector< T, A >.
|
inlineinherited |
infinity norm (maximum of absolute values of entries)
Referenced by Dune::block_vector_unmanaged< T, A >::infinity_norm().
|
inlineinherited |
simplified infinity norm (uses Manhattan norm for complex values)
Referenced by Dune::block_vector_unmanaged< T, A >::infinity_norm_real().
|
inlineinherited |
number of blocks in the vector (are of size 1 here)
Reimplemented in Dune::VariableBlockVector< B, A >, and Dune::VariableBlockVector< T, A >.
Referenced by Dune::block_vector_unmanaged< T, A >::axpy(), Dune::block_vector_unmanaged< T, A >::operator*(), Dune::block_vector_unmanaged< T, A >::operator+=(), Dune::block_vector_unmanaged< T, A >::operator-=(), and Dune::BlockVectorWindow< B, A >::operator=().
|
inlineinherited |
one norm (sum over absolute values of entries)
|
inlineinherited |
simplified one norm (uses Manhattan norm for complex values)
|
inlineinherited |
scalar product
|
inlineinherited |
vector space multiplication with scalar
|
inlineinherited |
vector space addition
|
inlineinherited |
vector space subtraction
|
inlineinherited |
vector space division by scalar
|
inline |
assignment
Referenced by Dune::BlockVector< FieldVector< T, n >, A >::operator=().
|
inline |
assign from base class object
|
inline |
assign from scalar
Reimplemented from Dune::block_vector_unmanaged< B, A >.
|
inlineinherited |
random access to blocks
Reimplemented in Dune::VariableBlockVector< B, A >, and Dune::VariableBlockVector< T, A >.
|
inlineinherited |
same for read only access
Reimplemented in Dune::VariableBlockVector< B, A >, and Dune::VariableBlockVector< T, A >.
|
inline |
Reserve space.
After calling this method the vector can hold up to capacity values. If the specified capacity is smaller than the current capacity and bigger than the current size space will be freed.
If the template parameter copyOldValues is true the values will be copied. If it is false the old values are lost.
capacity | The maximum number of elements the vector needs to hold. |
copyOldValues | If false no object will be copied and the data might be lost. Default value is true. |
Referenced by Dune::BlockVector< FieldVector< T, n >, A >::resize().
|
inline |
Resize the vector.
After calling this method BlockVector::N() will return size If the capacity of the vector is smaller than the specified size then reserve(size) will be called.
If the template parameter copyOldValues is true the values will be copied if the capacity changes. If it is false the old values are lost.
size | The new size of the vector. |
copyOldValues | If false no object will be copied and the data might be lost. |
|
inlineinherited |
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().
|
inlineinherited |
two norm sqrt(sum over squared values of entries)
Referenced by test_Iter().
|
inlineinherited |
sqare of two norm (sum over squared values of entries), need for block recursion
|
protected |
|
protected |
Referenced by Dune::BlockVector< FieldVector< T, n >, A >::BlockVector(), Dune::BlockVector< FieldVector< T, n >, A >::capacity(), Dune::BlockVector< FieldVector< T, n >, A >::operator=(), Dune::BlockVector< FieldVector< T, n >, A >::reserve(), Dune::BlockVector< FieldVector< T, n >, A >::resize(), and Dune::BlockVector< FieldVector< T, n >, A >::~BlockVector().
|
protectedinherited |
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().
|
protectedinherited |
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().