dune-istl
2.4.1-rc2
|
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 More... | |
typedef A | allocator_type |
export the allocator type More... | |
typedef A::size_type | size_type |
The size type for the index access. More... | |
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 More... | |
typedef base_array_unmanaged < B, A >::const_iterator | ConstIterator |
make iterators available as types More... | |
typedef B | value_type |
for STL compatibility More... | |
typedef B | member_type |
export the type representing the components More... | |
typedef RealIterator< B > | iterator |
iterator type for sequential access More... | |
typedef RealIterator< const B > | const_iterator |
iterator class for sequential access More... | |
Public Member Functions | |
VariableBlockVector () | |
VariableBlockVector (size_type _nblocks) | |
VariableBlockVector (size_type _nblocks, size_type m) | |
VariableBlockVector (const VariableBlockVector &a) | |
copy constructor, has copy semantics More... | |
~VariableBlockVector () | |
free dynamic memory More... | |
void | resize (size_type _nblocks) |
same effect as constructor with same argument More... | |
void | resize (size_type _nblocks, size_type m) |
same effect as constructor with same argument More... | |
VariableBlockVector & | operator= (const VariableBlockVector &a) |
assignment More... | |
VariableBlockVector & | operator= (const field_type &k) |
assign from scalar More... | |
CreateIterator | createbegin () |
get initial create iterator More... | |
CreateIterator | createend () |
get create iterator pointing to one after the last block More... | |
window_type & | operator[] (size_type i) |
random access to blocks More... | |
const window_type & | operator[] (size_type i) const |
same for read only access More... | |
Iterator | begin () |
begin Iterator More... | |
Iterator | end () |
end Iterator More... | |
Iterator | beforeEnd () |
Iterator | beforeBegin () const |
Iterator | find (size_type i) |
random access returning iterator (end if not contained) More... | |
ConstIterator | find (size_type i) const |
random access returning iterator (end if not contained) More... | |
ConstIterator | begin () const |
begin ConstIterator More... | |
ConstIterator | end () const |
end ConstIterator More... | |
ConstIterator | beforeEnd () const |
ConstIterator | rend () const |
end ConstIterator More... | |
size_type | N () const |
number of blocks in the vector (are of variable size here) More... | |
block_vector_unmanaged & | operator+= (const block_vector_unmanaged &y) |
vector space addition More... | |
block_vector_unmanaged & | operator-= (const block_vector_unmanaged &y) |
vector space subtraction More... | |
block_vector_unmanaged & | operator*= (const field_type &k) |
vector space multiplication with scalar More... | |
block_vector_unmanaged & | operator/= (const field_type &k) |
vector space division by scalar More... | |
block_vector_unmanaged & | axpy (const field_type &a, const block_vector_unmanaged &y) |
vector space axpy operation More... | |
template<class OtherB , class OtherA > | |
PromotionTraits< field_type, typename OtherB::field_type > ::PromotedType | operator* (const block_vector_unmanaged< OtherB, OtherA > &y) const |
indefinite vector dot product ![]() | |
template<class OtherB , class OtherA > | |
PromotionTraits< field_type, typename OtherB::field_type > ::PromotedType | dot (const block_vector_unmanaged< OtherB, OtherA > &y) const |
vector dot product ![]() | |
FieldTraits< field_type > ::real_type | one_norm () const |
one norm (sum over absolute values of entries) More... | |
FieldTraits< field_type > ::real_type | one_norm_real () const |
simplified one norm (uses Manhattan norm for complex values) More... | |
FieldTraits< field_type > ::real_type | two_norm () const |
two norm sqrt(sum over squared values of entries) More... | |
FieldTraits< field_type > ::real_type | two_norm2 () const |
Square of the two-norm (the sum over the squared values of the entries) More... | |
FieldTraits< field_type > ::real_type | infinity_norm () const |
infinity norm (maximum of absolute values of entries) More... | |
FieldTraits< field_type > ::real_type | infinity_norm_real () const |
simplified infinity norm (uses Manhattan norm for complex values) More... | |
size_type | dim () const |
dimension of the vector space More... | |
iterator | beforeBegin () |
size_type | size () const |
number of blocks in the array (are of size 1 here) More... | |
Protected Attributes | |
size_type | n |
B * | p |
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
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).
|
inherited |
iterator class for sequential access
|
inherited |
make iterators available as types
typedef B::field_type Dune::VariableBlockVector< B, A >::field_type |
export the type representing the field
|
inherited |
make iterators available as types
|
inherited |
iterator type for sequential access
|
inherited |
export the type representing the components
typedef A::size_type Dune::VariableBlockVector< B, A >::size_type |
The size type for the index access.
|
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
Enumerator | |
---|---|
blocklevel |
The number of blocklevels this vector contains. |
|
inline |
constructor without arguments makes empty vector, object cannot be used yet
|
inlineexplicit |
make vector with given number of blocks, but size of each block is not yet known, object cannot be used yet
|
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 |
|
inline |
copy constructor, has copy semantics
|
inline |
free dynamic memory
|
inlineinherited |
vector space axpy operation
Referenced by Dune::block_vector_unmanaged< T, A >::axpy().
|
inlineinherited |
|
inline |
Referenced by Dune::Matrix< T, A >::beforeBegin().
|
inline |
Referenced by Dune::Matrix< T, A >::beforeEnd().
|
inline |
|
inline |
begin Iterator
Referenced by Dune::Matrix< T, A >::begin(), and test_IO().
|
inline |
begin ConstIterator
|
inline |
get initial create iterator
Referenced by test_IO().
|
inline |
get create iterator pointing to one after the last block
Referenced by test_IO().
|
inlineinherited |
dimension of the vector space
Referenced by Dune::UMFPack< BCRSMatrix< FieldMatrix< T, n, m >, A > >::apply(), and Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > >::apply().
|
inlineinherited |
vector dot product which corresponds to Petsc's VecDot
http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Vec/VecDot.html
y | other (compatible) vector |
Referenced by Dune::block_vector_unmanaged< T, A >::dot().
|
inline |
end Iterator
Referenced by Dune::Matrix< T, A >::end(), and test_IO().
|
inline |
end ConstIterator
|
inline |
random access returning iterator (end if not contained)
|
inline |
random access returning iterator (end if not contained)
|
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().
|
inline |
number of blocks in the vector (are of variable size here)
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().
|
inlineinherited |
one norm (sum over absolute values of entries)
|
inlineinherited |
simplified one norm (uses Manhattan norm for complex values)
|
inlineinherited |
indefinite vector dot product which corresponds to Petsc's VecTDot
http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Vec/VecTDot.html
y | other (compatible) vector |
|
inlineinherited |
vector space multiplication with scalar
|
inlineinherited |
vector space addition
|
inlineinherited |
vector space subtraction
|
inlineinherited |
vector space division by scalar
|
inline |
assignment
|
inline |
assign from scalar
|
inline |
random access to blocks
|
inline |
same for read only access
|
inline |
end ConstIterator
|
inline |
same effect as constructor with same argument
Referenced by Dune::Matrix< T, A >::setSize().
|
inline |
same effect as constructor with same argument
|
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 |
Square of the two-norm (the sum over the squared values of the entries)
|
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::block_vector_unmanaged< T, A >::dot(), 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::base_array< B, A >::operator=(), Dune::BlockVector< FieldVector< T, n >, 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::base_array< B, A >::operator=(), Dune::BlockVector< FieldVector< T, n >, 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().