dune-istl
2.4.1
|
#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 More... | |
typedef B | block_type |
export the type representing the components More... | |
typedef A | allocator_type |
export the allocator type More... | |
typedef A::size_type | size_type |
The type for the index access. More... | |
typedef block_vector_unmanaged< B, A >::Iterator | Iterator |
make iterators available as types More... | |
typedef block_vector_unmanaged< B, A >::ConstIterator | 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 | |
BlockVectorWindow () | |
makes empty array More... | |
BlockVectorWindow (B *_p, size_type _n) | |
make array from given pointer and size More... | |
BlockVectorWindow (const BlockVectorWindow &a) | |
copy constructor, this has reference semantics! More... | |
BlockVectorWindow (const block_vector_unmanaged< B, A > &_a) | |
construct from base class object with reference semantics! More... | |
BlockVectorWindow & | operator= (const BlockVectorWindow &a) |
assignment More... | |
BlockVectorWindow & | operator= (const block_vector_unmanaged< B, A > &a) |
assign from base class object More... | |
BlockVectorWindow & | operator= (const field_type &k) |
assign from scalar More... | |
void | set (size_type _n, B *_p) |
set size and pointer More... | |
void | setsize (size_type _n) |
set size only More... | |
void | setptr (B *_p) |
set pointer only More... | |
B * | getptr () |
get pointer More... | |
size_type | getsize () |
get size 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 | N () const |
number of blocks in the vector (are of size 1 here) More... | |
size_type | dim () const |
dimension of the vector space More... | |
B & | operator[] (size_type i) |
random access to blocks More... | |
const B & | operator[] (size_type i) const |
same for read only access More... | |
iterator | begin () |
begin iterator More... | |
const_iterator | begin () const |
begin const_iterator More... | |
iterator | end () |
end iterator More... | |
const_iterator | end () const |
end const_iterator More... | |
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) More... | |
const_iterator | find (size_type i) const |
random access returning iterator (end if not contained) More... | |
size_type | size () const |
number of blocks in the array (are of size 1 here) More... | |
Protected Attributes | |
size_type | n |
B * | p |
BlockVectorWindow adds window manipulation functions to the block_vector_unmanaged template.
This class has no memory management. It assumes that the storage for the entries of the vector is maintained outside of this class.
But you can copy objects of this class and of the base class with reference semantics.
Assignment copies the data, if the format is incompatible with
the argument an exception is thrown in debug mode.
Error checking: no error checking is provided normally. Setting the compile time switch DUNE_ISTL_WITH_CHECKING enables error checking.
typedef A Dune::BlockVectorWindow< B, A >::allocator_type |
export the allocator type
typedef B Dune::BlockVectorWindow< B, A >::block_type |
export the type representing the components
|
inherited |
iterator class for sequential access
typedef block_vector_unmanaged<B,A>::ConstIterator Dune::BlockVectorWindow< B, A >::ConstIterator |
make iterators available as types
typedef B::field_type Dune::BlockVectorWindow< B, A >::field_type |
export the type representing the field
|
inherited |
iterator type for sequential access
typedef block_vector_unmanaged<B,A>::Iterator Dune::BlockVectorWindow< B, A >::Iterator |
make iterators available as types
|
inherited |
export the type representing the components
typedef A::size_type Dune::BlockVectorWindow< B, A >::size_type |
The type for the index access.
|
inherited |
for STL compatibility
anonymous enum |
|
inline |
makes empty array
|
inline |
make array from given pointer and size
References Dune::base_array_unmanaged< B, A >::n, and Dune::base_array_unmanaged< B, A >::p.
|
inline |
copy constructor, this has reference semantics!
References Dune::base_array_unmanaged< B, A >::n, and Dune::base_array_unmanaged< B, A >::p.
|
inline |
construct from base class object with reference semantics!
References Dune::base_array_unmanaged< B, A >::n, and Dune::base_array_unmanaged< B, A >::p.
|
inlineinherited |
vector space axpy operation
Referenced by Dune::block_vector_unmanaged< T, A >::axpy().
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
begin iterator
Referenced by test_basearray(), and test_IO().
|
inlineinherited |
begin const_iterator
|
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().
|
inlineinherited |
end iterator
Referenced by Dune::compressed_base_array_unmanaged< B, A >::find(), Dune::compressed_block_vector_unmanaged< B, A >::includesindexset(), test_basearray(), and test_IO().
|
inlineinherited |
end const_iterator
|
inlineinherited |
random access returning iterator (end if not contained)
Referenced by Dune::compressed_block_vector_unmanaged< B, A >::includesindexset().
|
inlineinherited |
random access returning iterator (end if not contained)
|
inline |
|
inline |
|
inlineinherited |
infinity norm (maximum of absolute values of entries)
Referenced by Dune::block_vector_unmanaged< T, A >::infinity_norm(), and Dune::compressed_block_vector_unmanaged< B, A >::infinity_norm().
|
inlineinherited |
simplified infinity norm (uses Manhattan norm for complex values)
Referenced by Dune::block_vector_unmanaged< T, A >::infinity_norm_real(), and Dune::compressed_block_vector_unmanaged< B, A >::infinity_norm_real().
|
inlineinherited |
number of blocks in the vector (are of size 1 here)
Referenced by Dune::block_vector_unmanaged< T, A >::axpy(), Dune::block_vector_unmanaged< T, A >::dot(), 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 |
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
References Dune::block_vector_unmanaged< B, A >::N(), Dune::base_array_unmanaged< B, A >::n, and Dune::base_array_unmanaged< B, A >::p.
|
inline |
assign from base class object
References Dune::block_vector_unmanaged< B, A >::operator=().
|
inline |
assign from scalar
|
inlineinherited |
random access to blocks
|
inlineinherited |
same for read only access
|
inline |
set size and pointer
References Dune::base_array_unmanaged< B, A >::n, and Dune::base_array_unmanaged< B, A >::p.
Referenced by Dune::VariableBlockVector< T, A >::operator=(), and Dune::VariableBlockVector< T, A >::VariableBlockVector().
|
inline |
set pointer only
References Dune::base_array_unmanaged< B, A >::p.
Referenced by Dune::VariableBlockVector< B, A >::CreateIterator::operator++().
|
inline |
set size only
References Dune::base_array_unmanaged< B, A >::n.
Referenced by Dune::VariableBlockVector< B, A >::CreateIterator::operator++().
|
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::compressed_base_array_unmanaged< B, A >::beforeEnd(), Dune::BlockVector< FieldVector< T, n >, A >::BlockVector(), Dune::BlockVectorWindow< B, A >::BlockVectorWindow(), Dune::CompressedBlockVectorWindow< B, A >::CompressedBlockVectorWindow(), Dune::block_vector_unmanaged< T, A >::dim(), Dune::compressed_block_vector_unmanaged< B, A >::dim(), Dune::block_vector_unmanaged< T, A >::dot(), Dune::base_array_unmanaged< T, A >::end(), Dune::compressed_base_array_unmanaged< B, A >::end(), Dune::base_array_unmanaged< T, A >::find(), Dune::compressed_base_array_unmanaged< B, A >::find(), Dune::BlockVectorWindow< B, A >::getsize(), Dune::CompressedBlockVectorWindow< B, A >::getsize(), Dune::block_vector_unmanaged< T, A >::infinity_norm(), Dune::compressed_block_vector_unmanaged< B, A >::infinity_norm(), Dune::block_vector_unmanaged< T, A >::infinity_norm_real(), Dune::compressed_block_vector_unmanaged< B, A >::infinity_norm_real(), Dune::base_array_window< B, A >::move(), Dune::block_vector_unmanaged< T, A >::N(), Dune::compressed_block_vector_unmanaged< B, A >::N(), Dune::block_vector_unmanaged< T, A >::one_norm(), Dune::compressed_block_vector_unmanaged< B, A >::one_norm(), Dune::block_vector_unmanaged< T, A >::one_norm_real(), Dune::compressed_block_vector_unmanaged< B, A >::one_norm_real(), Dune::block_vector_unmanaged< T, A >::operator*(), Dune::compressed_block_vector_unmanaged< B, A >::operator*(), Dune::block_vector_unmanaged< T, A >::operator*=(), Dune::compressed_block_vector_unmanaged< B, 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::compressed_block_vector_unmanaged< B, 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::compressed_block_vector_unmanaged< B, A >::operator=(), Dune::CompressedBlockVectorWindow< B, A >::operator=(), Dune::base_array_unmanaged< T, A >::operator[](), Dune::compressed_base_array_unmanaged< B, 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::CompressedBlockVectorWindow< B, A >::set(), Dune::BlockVectorWindow< B, A >::setsize(), Dune::CompressedBlockVectorWindow< B, A >::setsize(), Dune::base_array_unmanaged< T, A >::size(), Dune::compressed_base_array_unmanaged< B, A >::size(), Dune::block_vector_unmanaged< T, A >::two_norm(), Dune::compressed_block_vector_unmanaged< B, A >::two_norm(), Dune::block_vector_unmanaged< T, A >::two_norm2(), Dune::compressed_block_vector_unmanaged< B, 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< B, A >::base_array(), Dune::BlockVector< FieldVector< T, n >, A >::BlockVector(), Dune::BlockVectorWindow< B, A >::BlockVectorWindow(), Dune::CompressedBlockVectorWindow< B, A >::CompressedBlockVectorWindow(), Dune::VariableBlockVector< B, A >::ConstIterator::ConstIterator(), Dune::compressed_block_vector_unmanaged< B, A >::dim(), Dune::BlockVectorWindow< B, A >::getptr(), Dune::CompressedBlockVectorWindow< B, A >::getptr(), Dune::compressed_block_vector_unmanaged< B, A >::infinity_norm(), Dune::compressed_block_vector_unmanaged< B, A >::infinity_norm_real(), Dune::VariableBlockVector< B, A >::Iterator::Iterator(), Dune::compressed_block_vector_unmanaged< B, A >::one_norm(), Dune::compressed_block_vector_unmanaged< B, A >::one_norm_real(), Dune::VariableBlockVector< B, A >::Iterator::operator!=(), Dune::VariableBlockVector< B, A >::ConstIterator::operator!=(), Dune::VariableBlockVector< B, A >::Iterator::operator*(), Dune::VariableBlockVector< B, A >::ConstIterator::operator*(), Dune::compressed_block_vector_unmanaged< B, A >::operator*(), Dune::compressed_block_vector_unmanaged< B, A >::operator*=(), Dune::VariableBlockVector< B, A >::CreateIterator::operator++(), Dune::VariableBlockVector< B, A >::Iterator::operator->(), Dune::VariableBlockVector< B, A >::ConstIterator::operator->(), Dune::compressed_block_vector_unmanaged< B, 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::compressed_block_vector_unmanaged< B, A >::operator=(), Dune::CompressedBlockVectorWindow< B, A >::operator=(), Dune::VariableBlockVector< B, A >::Iterator::operator==(), Dune::VariableBlockVector< B, A >::ConstIterator::operator==(), Dune::base_array_unmanaged< T, A >::operator[](), Dune::BlockVector< FieldVector< T, n >, A >::reserve(), Dune::VariableBlockVector< T, A >::resize(), Dune::BlockVectorWindow< B, A >::set(), Dune::CompressedBlockVectorWindow< B, A >::set(), Dune::BlockVectorWindow< B, A >::setptr(), Dune::CompressedBlockVectorWindow< B, A >::setptr(), Dune::compressed_block_vector_unmanaged< B, A >::two_norm(), Dune::compressed_block_vector_unmanaged< B, A >::two_norm2(), Dune::VariableBlockVector< T, A >::VariableBlockVector(), Dune::BlockVector< FieldVector< T, n >, A >::~BlockVector(), and Dune::VariableBlockVector< T, A >::~VariableBlockVector().