Dune Core Modules (2.5.2)

Dune::block_vector_unmanaged< B, A > Class Template Reference

An unmanaged vector of blocks. More...

#include <dune/istl/bvector.hh>

Public Types

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 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 & reference
 Type used for references.
 
typedef const B & const_reference
 Type used for const references.
 
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

block_vector_unmanagedoperator= (const field_type &k)
 Assignment from a scalar.
 
block_vector_unmanagedoperator+= (const block_vector_unmanaged &y)
 vector space addition
 
block_vector_unmanagedoperator-= (const block_vector_unmanaged &y)
 vector space subtraction
 
block_vector_unmanagedoperator*= (const field_type &k)
 vector space multiplication with scalar
 
block_vector_unmanagedoperator/= (const field_type &k)
 vector space division by scalar
 
block_vector_unmanagedaxpy (const field_type &a, const block_vector_unmanaged &y)
 vector space axpy operation
 
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 \(\left (x^T \cdot y \right)\) which corresponds to Petsc's VecTDot More...
 
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 \(\left (x^H \cdot y \right)\) which corresponds to Petsc's VecDot More...
 
FieldTraits< field_type >::real_type one_norm () const
 one norm (sum over absolute values of entries)
 
FieldTraits< field_type >::real_type one_norm_real () const
 simplified one norm (uses Manhattan norm for complex values)
 
FieldTraits< field_type >::real_type two_norm () const
 two norm sqrt(sum over squared values of entries)
 
FieldTraits< field_type >::real_type two_norm2 () const
 Square of the two-norm (the sum over the squared values of the entries)
 
template<typename ft = field_type, typename std::enable_if<!has_nan< ft >::value, int >::type = 0>
FieldTraits< ft >::real_type infinity_norm () const
 infinity norm (maximum of absolute values of entries)
 
template<typename ft = field_type, typename std::enable_if<!has_nan< ft >::value, int >::type = 0>
FieldTraits< ft >::real_type infinity_norm_real () const
 simplified infinity norm (uses Manhattan norm for complex values)
 
template<typename ft = field_type, typename std::enable_if< has_nan< ft >::value, int >::type = 0>
FieldTraits< ft >::real_type infinity_norm () const
 infinity norm (maximum of absolute values of entries)
 
template<typename ft = field_type, typename std::enable_if< has_nan< ft >::value, int >::type = 0>
FieldTraits< ft >::real_type 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 Member Functions

 block_vector_unmanaged ()
 make constructor protected, so only derived classes can be instantiated
 

Detailed Description

template<class B, class A = std::allocator<B>>
class Dune::block_vector_unmanaged< B, A >

An unmanaged vector of blocks.

block_vector_unmanaged extends the base_array_unmanaged by vector operations such as addition and scalar multiplication. No memory management is added.

Error checking: no error checking is provided normally. Setting the compile time switch DUNE_ISTL_WITH_CHECKING enables error checking.

This class is an implementation detail, and should not be used outside of dune-istl.

Member Function Documentation

◆ beforeBegin() [1/2]

iterator Dune::base_array_unmanaged< B, std::allocator< B > >::beforeBegin ( )
inlineinherited
Returns
an iterator that is positioned before the first entry of the vector.

◆ beforeBegin() [2/2]

const_iterator Dune::base_array_unmanaged< B, std::allocator< B > >::beforeBegin ( ) const
inlineinherited
Returns
an iterator that is positioned before the first entry of the vector.

◆ beforeEnd() [1/2]

iterator Dune::base_array_unmanaged< B, std::allocator< B > >::beforeEnd ( )
inlineinherited
Returns
an iterator that is positioned before the end iterator of the vector, i.e. at the last entry.

◆ beforeEnd() [2/2]

const_iterator Dune::base_array_unmanaged< B, std::allocator< B > >::beforeEnd ( ) const
inlineinherited
Returns
an iterator that is positioned before the end iterator of the vector. i.e. at the last element.

◆ dot()

template<class B , class A = std::allocator<B>>
template<class OtherB , class OtherA >
PromotionTraits<field_type,typename OtherB::field_type>::PromotedType Dune::block_vector_unmanaged< B, A >::dot ( const block_vector_unmanaged< OtherB, OtherA > &  y) const
inline

vector dot product \(\left (x^H \cdot y \right)\) which corresponds to Petsc's VecDot

http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Vec/VecDot.html

Parameters
yother (compatible) vector
Returns

References DUNE_THROW, and Dune::block_vector_unmanaged< B, A >::N().

◆ operator*()

template<class B , class A = std::allocator<B>>
template<class OtherB , class OtherA >
PromotionTraits<field_type,typename OtherB::field_type>::PromotedType Dune::block_vector_unmanaged< B, A >::operator* ( const block_vector_unmanaged< OtherB, OtherA > &  y) const
inline

indefinite vector dot product \(\left (x^T \cdot y \right)\) which corresponds to Petsc's VecTDot

http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Vec/VecTDot.html

Parameters
yother (compatible) vector
Returns

References DUNE_THROW, and Dune::block_vector_unmanaged< B, A >::N().


The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.80.0 (Apr 26, 22:29, 2024)