dune-common 2.9.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Related Symbols | List of all members
Dune::FieldVector< K, SIZE > Class Template Reference

vector space out of a tensor product of fields. More...

#include <dune/common/fvector.hh>

Inheritance diagram for Dune::FieldVector< K, SIZE >:
Inheritance graph

Public Types

typedef Base::size_type size_type
 
typedef Base::value_type value_type
 
typedef value_typereference
 The type used for references to the vector entry.
 
typedef const value_typeconst_reference
 The type used for const references to the vector entry.
 
typedef Traits::derived_type derived_type
 type of derived vector class
 
typedef FieldTraits< value_type >::field_type field_type
 export the type representing the field
 
typedef Traits::value_type block_type
 export the type representing the components
 
typedef DenseIterator< DenseVector, value_typeIterator
 Iterator class for sequential access.
 
typedef Iterator iterator
 typedef for stl compliant access
 
typedef DenseIterator< const DenseVector, const value_typeConstIterator
 ConstIterator class for sequential access.
 
typedef ConstIterator const_iterator
 typedef for stl compliant access
 

Public Member Functions

constexpr FieldVector ()
 Constructor making default-initialized vector.
 
 FieldVector (const K &t)
 Constructor making vector with identical coordinates.
 
 FieldVector (const FieldVector &)=default
 Copy constructor.
 
 FieldVector (std::initializer_list< K > const &l)
 Construct from a std::initializer_list.
 
FieldVectoroperator= (const FieldVector &)=default
 copy assignment operator
 
template<typename T >
FieldVectoroperator= (const FieldVector< T, SIZE > &x)
 
template<typename T , int N>
FieldVectoroperator= (const FieldVector< T, N > &)=delete
 
template<class C >
 FieldVector (const DenseVector< C > &x, typename std::enable_if< IsFieldVectorSizeCorrect< C, SIZE >::value >::type *dummy=0)
 Copy constructor from a second vector of possibly different type.
 
template<class K1 >
 FieldVector (const FieldVector< K1, SIZE > &x)
 Constructor making vector with identical coordinates.
 
template<typename T , int N>
 FieldVector (const FieldVector< T, N > &)=delete
 
K & operator[] (size_type i)
 
const K & operator[] (size_type i) const
 
K * data () noexcept
 return pointer to underlying array
 
const K * data () const noexcept
 return pointer to underlying array
 
value_typefront ()
 return reference to first element
 
const value_typefront () const
 return reference to first element
 
value_typeback ()
 return reference to last element
 
const value_typeback () const
 return reference to last element
 
bool empty () const
 checks whether the container is empty
 
size_type size () const
 size method
 
Iterator begin ()
 begin iterator
 
ConstIterator begin () const
 begin ConstIterator
 
Iterator end ()
 end iterator
 
ConstIterator end () const
 end ConstIterator
 
Iterator beforeEnd ()
 
ConstIterator beforeEnd () const
 
Iterator beforeBegin ()
 
ConstIterator beforeBegin () const
 
Iterator find (size_type i)
 return iterator to given element or end()
 
ConstIterator find (size_type i) const
 return iterator to given element or end()
 
derived_typeoperator+= (const DenseVector< Other > &x)
 vector space addition
 
std::enable_if< std::is_convertible< ValueType, value_type >::value, derived_type >::type & operator+= (const ValueType &kk)
 vector space add scalar to all comps
 
derived_typeoperator-= (const DenseVector< Other > &x)
 vector space subtraction
 
std::enable_if< std::is_convertible< ValueType, value_type >::value, derived_type >::type & operator-= (const ValueType &kk)
 vector space subtract scalar from all comps
 
derived_type operator+ (const DenseVector< Other > &b) const
 Binary vector addition.
 
derived_type operator- (const DenseVector< Other > &b) const
 Binary vector subtraction.
 
derived_type operator- () const
 Vector negation.
 
std::enable_if< std::is_convertible< FieldType, field_type >::value, derived_type >::type & operator*= (const FieldType &kk)
 vector space multiplication with scalar
 
std::enable_if< std::is_convertible< FieldType, field_type >::value, derived_type >::type & operator/= (const FieldType &kk)
 vector space division by scalar
 
bool operator== (const DenseVector< Other > &x) const
 Binary vector comparison.
 
bool operator!= (const DenseVector< Other > &x) const
 Binary vector incomparison.
 
derived_typeaxpy (const field_type &a, const DenseVector< Other > &x)
 vector space axpy operation ( *this += a x )
 
PromotionTraits< field_type, typenameDenseVector< Other >::field_type >::PromotedType operator* (const DenseVector< Other > &x) const
 indefinite vector dot product $\left (x^T \cdot y \right)$ which corresponds to Petsc's VecTDot
 
PromotionTraits< field_type, typenameDenseVector< Other >::field_type >::PromotedType dot (const DenseVector< Other > &x) const
 vector dot product $\left (x^H \cdot y \right)$ which corresponds to Petsc's VecDot
 
FieldTraits< value_type >::real_type one_norm () const
 one norm (sum over absolute values of entries)
 
FieldTraits< value_type >::real_type one_norm_real () const
 simplified one norm (uses Manhattan norm for complex values)
 
FieldTraits< value_type >::real_type two_norm () const
 two norm sqrt(sum over squared values of entries)
 
FieldTraits< value_type >::real_type two_norm2 () const
 square of two norm (sum over squared values of entries), need for block recursion
 
FieldTraits< vt >::real_type infinity_norm () const
 infinity norm (maximum of absolute values of entries)
 
FieldTraits< vt >::real_type infinity_norm () const
 infinity norm (maximum of absolute values of entries)
 
FieldTraits< vt >::real_type infinity_norm_real () const
 simplified infinity norm (uses Manhattan norm for complex values)
 
FieldTraits< vt >::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
 

Static Public Member Functions

static constexpr size_type size ()
 

Static Public Attributes

static constexpr int dimension = SIZE
 The size of this vector.
 
static constexpr int blocklevel
 The number of block levels we contain. This is the leaf, that is, 1.
 

Related Symbols

(Note that these are not member symbols.)

template<class K , int SIZE>
std::istream & operator>> (std::istream &in, FieldVector< K, SIZE > &v)
 Read a FieldVector from an input stream.
 
std::ostream & operator<< (std::ostream &s, const DenseVector< FieldVector< K, SIZE > > &v)
 Write a DenseVector to an output stream.
 

Detailed Description

template<class K, int SIZE>
class Dune::FieldVector< K, SIZE >

vector space out of a tensor product of fields.

Template Parameters
Kthe field type (use float, double, complex, etc)
SIZEnumber of components.

Member Typedef Documentation

◆ block_type

typedef Traits::value_type Dune::DenseVector< FieldVector< K, SIZE > >::block_type
inherited

export the type representing the components

◆ const_iterator

typedef ConstIterator Dune::DenseVector< FieldVector< K, SIZE > >::const_iterator
inherited

typedef for stl compliant access

◆ const_reference

template<class K , int SIZE>
typedef const value_type& Dune::FieldVector< K, SIZE >::const_reference

The type used for const references to the vector entry.

◆ ConstIterator

typedef DenseIterator<const DenseVector,const value_type> Dune::DenseVector< FieldVector< K, SIZE > >::ConstIterator
inherited

ConstIterator class for sequential access.

◆ derived_type

typedef Traits::derived_type Dune::DenseVector< FieldVector< K, SIZE > >::derived_type
inherited

type of derived vector class

◆ field_type

typedef FieldTraits<value_type>::field_type Dune::DenseVector< FieldVector< K, SIZE > >::field_type
inherited

export the type representing the field

◆ Iterator

typedef DenseIterator<DenseVector,value_type> Dune::DenseVector< FieldVector< K, SIZE > >::Iterator
inherited

Iterator class for sequential access.

◆ iterator

typedef Iterator Dune::DenseVector< FieldVector< K, SIZE > >::iterator
inherited

typedef for stl compliant access

◆ reference

template<class K , int SIZE>
typedef value_type& Dune::FieldVector< K, SIZE >::reference

The type used for references to the vector entry.

◆ size_type

template<class K , int SIZE>
typedef Base::size_type Dune::FieldVector< K, SIZE >::size_type

◆ value_type

template<class K , int SIZE>
typedef Base::value_type Dune::FieldVector< K, SIZE >::value_type

Constructor & Destructor Documentation

◆ FieldVector() [1/7]

template<class K , int SIZE>
constexpr Dune::FieldVector< K, SIZE >::FieldVector ( )
inlineconstexpr

Constructor making default-initialized vector.

◆ FieldVector() [2/7]

template<class K , int SIZE>
Dune::FieldVector< K, SIZE >::FieldVector ( const K &  t)
inlineexplicit

Constructor making vector with identical coordinates.

◆ FieldVector() [3/7]

template<class K , int SIZE>
Dune::FieldVector< K, SIZE >::FieldVector ( const FieldVector< K, SIZE > &  )
default

Copy constructor.

◆ FieldVector() [4/7]

template<class K , int SIZE>
Dune::FieldVector< K, SIZE >::FieldVector ( std::initializer_list< K > const &  l)
inline

Construct from a std::initializer_list.

◆ FieldVector() [5/7]

template<class K , int SIZE>
template<class C >
Dune::FieldVector< K, SIZE >::FieldVector ( const DenseVector< C > &  x,
typename std::enable_if< IsFieldVectorSizeCorrect< C, SIZE >::value >::type *  dummy = 0 
)
inline

Copy constructor from a second vector of possibly different type.

If the DenseVector type of the this constructor's argument is implemented by a FieldVector, it is statically checked if it has the correct size. If this is not the case the constructor is removed from the overload set using SFINAE.

Parameters
[in]xA DenseVector with correct size.
[in]dummyA void* dummy argument needed by SFINAE.

◆ FieldVector() [6/7]

template<class K , int SIZE>
template<class K1 >
Dune::FieldVector< K, SIZE >::FieldVector ( const FieldVector< K1, SIZE > &  x)
inlineexplicit

Constructor making vector with identical coordinates.

◆ FieldVector() [7/7]

template<class K , int SIZE>
template<typename T , int N>
Dune::FieldVector< K, SIZE >::FieldVector ( const FieldVector< T, N > &  )
explicitdelete

Member Function Documentation

◆ axpy()

derived_type & Dune::DenseVector< FieldVector< K, SIZE > >::axpy ( const field_type a,
const DenseVector< Other > &  x 
)
inlineinherited

vector space axpy operation ( *this += a x )

◆ back() [1/2]

value_type & Dune::DenseVector< FieldVector< K, SIZE > >::back ( )
inlineinherited

return reference to last element

◆ back() [2/2]

const value_type & Dune::DenseVector< FieldVector< K, SIZE > >::back ( ) const
inlineinherited

return reference to last element

◆ beforeBegin() [1/2]

Iterator Dune::DenseVector< FieldVector< K, SIZE > >::beforeBegin ( )
inlineinherited
Returns
an iterator that is positioned before the first entry of the vector.

◆ beforeBegin() [2/2]

ConstIterator Dune::DenseVector< FieldVector< K, SIZE > >::beforeBegin ( ) const
inlineinherited
Returns
an iterator that is positioned before the first entry of the vector.

◆ beforeEnd() [1/2]

Iterator Dune::DenseVector< FieldVector< K, SIZE > >::beforeEnd ( )
inlineinherited
Returns
an iterator that is positioned before the end iterator of the vector, i.e. at the last entry.

◆ beforeEnd() [2/2]

ConstIterator Dune::DenseVector< FieldVector< K, SIZE > >::beforeEnd ( ) const
inlineinherited
Returns
an iterator that is positioned before the end iterator of the vector. i.e. at the last element

◆ begin() [1/2]

Iterator Dune::DenseVector< FieldVector< K, SIZE > >::begin ( )
inlineinherited

begin iterator

◆ begin() [2/2]

ConstIterator Dune::DenseVector< FieldVector< K, SIZE > >::begin ( ) const
inlineinherited

begin ConstIterator

◆ data() [1/2]

template<class K , int SIZE>
const K * Dune::FieldVector< K, SIZE >::data ( ) const
inlinenoexcept

return pointer to underlying array

◆ data() [2/2]

template<class K , int SIZE>
K * Dune::FieldVector< K, SIZE >::data ( )
inlinenoexcept

return pointer to underlying array

◆ dim()

size_type Dune::DenseVector< FieldVector< K, SIZE > >::dim ( ) const
inlineinherited

dimension of the vector space

◆ dot()

PromotionTraits< field_type, typenameDenseVector< Other >::field_type >::PromotedType Dune::DenseVector< FieldVector< K, SIZE > >::dot ( const DenseVector< Other > &  x) const
inlineinherited

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
xother vector
Returns

◆ empty()

bool Dune::DenseVector< FieldVector< K, SIZE > >::empty ( ) const
inlineinherited

checks whether the container is empty

◆ end() [1/2]

Iterator Dune::DenseVector< FieldVector< K, SIZE > >::end ( )
inlineinherited

end iterator

◆ end() [2/2]

ConstIterator Dune::DenseVector< FieldVector< K, SIZE > >::end ( ) const
inlineinherited

end ConstIterator

◆ find() [1/2]

Iterator Dune::DenseVector< FieldVector< K, SIZE > >::find ( size_type  i)
inlineinherited

return iterator to given element or end()

◆ find() [2/2]

ConstIterator Dune::DenseVector< FieldVector< K, SIZE > >::find ( size_type  i) const
inlineinherited

return iterator to given element or end()

◆ front() [1/2]

value_type & Dune::DenseVector< FieldVector< K, SIZE > >::front ( )
inlineinherited

return reference to first element

◆ front() [2/2]

const value_type & Dune::DenseVector< FieldVector< K, SIZE > >::front ( ) const
inlineinherited

return reference to first element

◆ infinity_norm() [1/2]

FieldTraits< vt >::real_type Dune::DenseVector< FieldVector< K, SIZE > >::infinity_norm ( ) const
inlineinherited

infinity norm (maximum of absolute values of entries)

◆ infinity_norm() [2/2]

FieldTraits< vt >::real_type Dune::DenseVector< FieldVector< K, SIZE > >::infinity_norm ( ) const
inlineinherited

infinity norm (maximum of absolute values of entries)

◆ infinity_norm_real() [1/2]

FieldTraits< vt >::real_type Dune::DenseVector< FieldVector< K, SIZE > >::infinity_norm_real ( ) const
inlineinherited

simplified infinity norm (uses Manhattan norm for complex values)

◆ infinity_norm_real() [2/2]

FieldTraits< vt >::real_type Dune::DenseVector< FieldVector< K, SIZE > >::infinity_norm_real ( ) const
inlineinherited

simplified infinity norm (uses Manhattan norm for complex values)

◆ N()

size_type Dune::DenseVector< FieldVector< K, SIZE > >::N ( ) const
inlineinherited

number of blocks in the vector (are of size 1 here)

◆ one_norm()

FieldTraits< value_type >::real_type Dune::DenseVector< FieldVector< K, SIZE > >::one_norm ( ) const
inlineinherited

one norm (sum over absolute values of entries)

◆ one_norm_real()

FieldTraits< value_type >::real_type Dune::DenseVector< FieldVector< K, SIZE > >::one_norm_real ( ) const
inlineinherited

simplified one norm (uses Manhattan norm for complex values)

◆ operator!=()

bool Dune::DenseVector< FieldVector< K, SIZE > >::operator!= ( const DenseVector< Other > &  x) const
inlineinherited

Binary vector incomparison.

◆ operator*()

PromotionTraits< field_type, typenameDenseVector< Other >::field_type >::PromotedType Dune::DenseVector< FieldVector< K, SIZE > >::operator* ( const DenseVector< Other > &  x) const
inlineinherited

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
xother vector
Returns

◆ operator*=()

std::enable_if< std::is_convertible< FieldType, field_type >::value, derived_type >::type & Dune::DenseVector< FieldVector< K, SIZE > >::operator*= ( const FieldType &  kk)
inlineinherited

vector space multiplication with scalar

we use enable_if to avoid an ambiguity, if the function parameter can be converted to field_type implicitly. (see FS#1457)

The function is only enabled, if the parameter is directly convertible to field_type.

◆ operator+()

derived_type Dune::DenseVector< FieldVector< K, SIZE > >::operator+ ( const DenseVector< Other > &  b) const
inlineinherited

Binary vector addition.

◆ operator+=() [1/2]

derived_type & Dune::DenseVector< FieldVector< K, SIZE > >::operator+= ( const DenseVector< Other > &  x)
inlineinherited

vector space addition

◆ operator+=() [2/2]

std::enable_if< std::is_convertible< ValueType, value_type >::value, derived_type >::type & Dune::DenseVector< FieldVector< K, SIZE > >::operator+= ( const ValueType &  kk)
inlineinherited

vector space add scalar to all comps

we use enable_if to avoid an ambiguity, if the function parameter can be converted to value_type implicitly. (see FS#1457)

The function is only enabled, if the parameter is directly convertible to value_type.

◆ operator-() [1/2]

derived_type Dune::DenseVector< FieldVector< K, SIZE > >::operator- ( ) const
inlineinherited

Vector negation.

◆ operator-() [2/2]

derived_type Dune::DenseVector< FieldVector< K, SIZE > >::operator- ( const DenseVector< Other > &  b) const
inlineinherited

Binary vector subtraction.

◆ operator-=() [1/2]

derived_type & Dune::DenseVector< FieldVector< K, SIZE > >::operator-= ( const DenseVector< Other > &  x)
inlineinherited

vector space subtraction

◆ operator-=() [2/2]

std::enable_if< std::is_convertible< ValueType, value_type >::value, derived_type >::type & Dune::DenseVector< FieldVector< K, SIZE > >::operator-= ( const ValueType &  kk)
inlineinherited

vector space subtract scalar from all comps

we use enable_if to avoid an ambiguity, if the function parameter can be converted to value_type implicitly. (see FS#1457)

The function is only enabled, if the parameter is directly convertible to value_type.

◆ operator/=()

std::enable_if< std::is_convertible< FieldType, field_type >::value, derived_type >::type & Dune::DenseVector< FieldVector< K, SIZE > >::operator/= ( const FieldType &  kk)
inlineinherited

vector space division by scalar

we use enable_if to avoid an ambiguity, if the function parameter can be converted to field_type implicitly. (see FS#1457)

The function is only enabled, if the parameter is directly convertible to field_type.

◆ operator=() [1/3]

template<class K , int SIZE>
FieldVector & Dune::FieldVector< K, SIZE >::operator= ( const FieldVector< K, SIZE > &  )
default

copy assignment operator

◆ operator=() [2/3]

template<class K , int SIZE>
template<typename T , int N>
FieldVector & Dune::FieldVector< K, SIZE >::operator= ( const FieldVector< T, N > &  )
delete

◆ operator=() [3/3]

template<class K , int SIZE>
template<typename T >
FieldVector & Dune::FieldVector< K, SIZE >::operator= ( const FieldVector< T, SIZE > &  x)
inline

◆ operator==()

bool Dune::DenseVector< FieldVector< K, SIZE > >::operator== ( const DenseVector< Other > &  x) const
inlineinherited

Binary vector comparison.

◆ operator[]() [1/2]

template<class K , int SIZE>
K & Dune::FieldVector< K, SIZE >::operator[] ( size_type  i)
inline

◆ operator[]() [2/2]

template<class K , int SIZE>
const K & Dune::FieldVector< K, SIZE >::operator[] ( size_type  i) const
inline

◆ size() [1/2]

template<class K , int SIZE>
static constexpr size_type Dune::FieldVector< K, SIZE >::size ( )
inlinestaticconstexpr

◆ size() [2/2]

size_type Dune::DenseVector< FieldVector< K, SIZE > >::size ( ) const
inlineinherited

size method

◆ two_norm()

FieldTraits< value_type >::real_type Dune::DenseVector< FieldVector< K, SIZE > >::two_norm ( ) const
inlineinherited

two norm sqrt(sum over squared values of entries)

◆ two_norm2()

FieldTraits< value_type >::real_type Dune::DenseVector< FieldVector< K, SIZE > >::two_norm2 ( ) const
inlineinherited

square of two norm (sum over squared values of entries), need for block recursion

Friends And Related Symbol Documentation

◆ operator<<()

std::ostream & operator<< ( std::ostream &  s,
const DenseVector< FieldVector< K, SIZE > > &  v 
)
related

Write a DenseVector to an output stream.

Parameters
[in]sstd :: ostream to write to
[in]vDenseVector to write
Returns
the output stream (s)

Member Data Documentation

◆ blocklevel

constexpr int Dune::DenseVector< FieldVector< K, SIZE > >::blocklevel
staticconstexprinherited

The number of block levels we contain. This is the leaf, that is, 1.

◆ dimension

template<class K , int SIZE>
constexpr int Dune::FieldVector< K, SIZE >::dimension = SIZE
staticconstexpr

The size of this vector.


The documentation for this class was generated from the following files: