dune-common 2.11
Loading...
Searching...
No Matches
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

using size_type = typename Base::size_type
 The type used for the index access and size operation.
 
using value_type = typename Base::value_type
 The type of the elements stored in the vector.
 
using reference = value_type &
 The type used for references to the vector entries.
 
using const_reference = const value_type &
 The type used for const references to the vector entries.
 
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 () noexcept(std::is_nothrow_default_constructible_v< K >)
 Default constructor, making value-initialized vector with all components set to zero.
 
 explicit (SIZE !=1) const expr FieldVector(const value_type &value) noexcept
 Constructor with a given value initializing all entries to this value.
 
template<Concept::Number S>
requires (std::constructible_from<K,S>)
 explicit (SIZE !=1) const expr FieldVector(const S &scalar) noexcept(std::is_nothrow_constructible_v< K, S >)
 Constructor with a given scalar initializing all entries to this value.
 
constexpr FieldVector (const std::initializer_list< K > &l)
 Construct from a std::initializer_list of values.
 
template<class V >
requires (IsFieldVectorSizeCorrect<V,SIZE>::value && std::is_assignable_v<K&, decltype(std::declval<const V&>()[0])>)
constexpr FieldVector (const DenseVector< V > &x)
 Constructor from another dense vector if the elements are assignable to K.
 
template<class OtherK >
requires (std::is_assignable_v<K&, const OtherK&>)
constexpr FieldVector (const FieldVector< OtherK, SIZE > &x) noexcept(std::is_nothrow_assignable_v< K &, const OtherK & >)
 Converting constructor from FieldVector with different element type.
 
constexpr FieldVector (const FieldVector &)=default
 Copy constructor with default behavior.
 
template<class V >
requires (IsFieldVectorSizeCorrect<V,SIZE>::value && std::is_assignable_v<K&, decltype(std::declval<const V&>()[0])>)
constexpr FieldVectoroperator= (const DenseVector< V > &x)
 Assignment from another dense vector.
 
template<Concept::Number S>
requires std::constructible_from<K,S>
constexpr FieldVectoroperator= (const S &scalar) noexcept(std::is_nothrow_constructible_v< K, S >)
 Assignment operator from scalar.
 
template<class OtherK >
requires (std::is_assignable_v<K&, const OtherK&>)
constexpr FieldVectoroperator= (const FieldVector< OtherK, SIZE > &x) noexcept(std::is_nothrow_assignable_v< K &, const OtherK & >)
 Converting assignment operator from FieldVector with different element type.
 
constexpr FieldVectoroperator= (const FieldVector &)=default
 Copy assignment operator with default behavior.
 
constexpr value_typefront ()
 return reference to first element
 
constexpr const value_typefront () const
 return reference to first element
 
constexpr value_typeback ()
 return reference to last element
 
constexpr const value_typeback () const
 return reference to last element
 
constexpr bool empty () const
 checks whether the container is empty
 
constexpr size_type size () const
 size method
 
constexpr Iterator begin ()
 begin iterator
 
constexpr ConstIterator begin () const
 begin ConstIterator
 
constexpr Iterator end ()
 end iterator
 
constexpr ConstIterator end () const
 end ConstIterator
 
constexpr Iterator beforeEnd ()
 
constexpr ConstIterator beforeEnd () const
 
constexpr Iterator beforeBegin ()
 
constexpr ConstIterator beforeBegin () const
 
constexpr Iterator find (size_type i)
 return iterator to given element or end()
 
constexpr ConstIterator find (size_type i) const
 return iterator to given element or end()
 
constexpr derived_typeoperator+= (const DenseVector< Other > &x)
 vector space addition
 
constexpr std::enable_if< std::is_convertible< ValueType, value_type >::value, derived_type >::type & operator+= (const ValueType &kk)
 vector space add scalar to all comps
 
constexpr derived_typeoperator-= (const DenseVector< Other > &x)
 vector space subtraction
 
constexpr std::enable_if< std::is_convertible< ValueType, value_type >::value, derived_type >::type & operator-= (const ValueType &kk)
 vector space subtract scalar from all comps
 
constexpr derived_type operator+ (const DenseVector< Other > &b) const
 Binary vector addition.
 
constexpr derived_type operator- (const DenseVector< Other > &b) const
 Binary vector subtraction.
 
constexpr derived_type operator- () const
 Vector negation.
 
constexpr std::enable_if< std::is_convertible< FieldType, field_type >::value, derived_type >::type & operator*= (const FieldType &kk)
 vector space multiplication with scalar
 
constexpr std::enable_if< std::is_convertible< FieldType, field_type >::value, derived_type >::type & operator/= (const FieldType &kk)
 vector space division by scalar
 
constexpr bool operator== (const DenseVector< Other > &x) const
 Binary vector comparison.
 
constexpr bool operator!= (const DenseVector< Other > &x) const
 Binary vector incomparison.
 
constexpr derived_typeaxpy (const field_type &a, const DenseVector< Other > &x)
 vector space axpy operation ( *this += a x )
 
constexpr 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
 
constexpr 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
 
constexpr FieldTraits< value_type >::real_type one_norm () const
 one norm (sum over absolute values of entries)
 
constexpr FieldTraits< value_type >::real_type one_norm_real () const
 simplified one norm (uses Manhattan norm for complex values)
 
constexpr FieldTraits< value_type >::real_type two_norm () const
 two norm sqrt(sum over squared values of entries)
 
constexpr FieldTraits< value_type >::real_type two_norm2 () const
 square of two norm (sum over squared values of entries), need for block recursion
 
constexpr FieldTraits< vt >::real_type infinity_norm () const
 infinity norm (maximum of absolute values of entries)
 
constexpr FieldTraits< vt >::real_type infinity_norm () const
 infinity norm (maximum of absolute values of entries)
 
constexpr FieldTraits< vt >::real_type infinity_norm_real () const
 simplified infinity norm (uses Manhattan norm for complex values)
 
constexpr FieldTraits< vt >::real_type infinity_norm_real () const
 simplified infinity norm (uses Manhattan norm for complex values)
 
constexpr size_type N () const
 number of blocks in the vector (are of size 1 here)
 
constexpr size_type dim () const
 dimension of the vector space
 
Element access
constexpr reference operator[] (size_type i)
 Return a reference to the ith element.
 
constexpr const_reference operator[] (size_type i) const
 Return a (const) reference to the ith element.
 
constexpr K * data () noexcept
 Return pointer to underlying array.
 
constexpr const K * data () const noexcept
 Return pointer to underlying array.
 
constexpr operator const_reference () const noexcept
 Conversion operator.
 
constexpr operator reference () noexcept
 Conversion operator.
 

Static Public Member Functions

Capacity
static constexpr size_type size () noexcept
 Obtain the number of elements stored in the vector.
 

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.
 

Friends

Comparison operators
template<Concept::Number S>
requires (SIZE == 1)
constexpr bool operator== (const FieldVector &a, const S &b) noexcept
 comparing FieldVectors<1> with scalar for equality
 
template<Concept::Number S>
requires (SIZE == 1)
constexpr bool operator== (const S &a, const FieldVector &b) noexcept
 comparing FieldVectors<1> with scalar for equality
 
template<class T >
requires (Std::three_way_comparable_with<K,T>)
constexpr auto operator<=> (const FieldVector &a, const FieldVector< T, SIZE > &b) noexcept
 three-way comparison of FieldVectors
 
template<Concept::Number S>
requires (SIZE == 1)
constexpr auto operator<=> (const FieldVector &a, const S &b) noexcept
 three-way comparison of FieldVectors<1> with scalar
 
template<Concept::Number S>
requires (SIZE == 1)
constexpr auto operator<=> (const S &a, const FieldVector &b) noexcept
 three-way comparison of FieldVectors<1> with scalar
 
Vector space operations
template<Concept::Number S>
constexpr auto operator* (const FieldVector &a, const S &b) noexcept
 Vector space multiplication with scalar.
 
template<Concept::Number S>
constexpr auto operator* (const S &a, const FieldVector &b) noexcept
 Vector space multiplication with scalar.
 
template<Concept::Number S>
constexpr auto operator/ (const FieldVector &a, const S &b) noexcept
 Vector space division by scalar.
 
template<Concept::Number S>
requires (SIZE == 1)
constexpr FieldVector operator/ (const S &a, const FieldVector &b) noexcept
 Binary division, when using FieldVector<K,1> like K.
 
template<Concept::Number S>
requires (SIZE == 1)
constexpr auto operator+ (const FieldVector &a, const S &b) noexcept
 Binary addition, when using FieldVector<K,1> like K.
 
template<Concept::Number S>
requires (SIZE == 1)
constexpr auto operator+ (const S &a, const FieldVector &b) noexcept
 Binary addition, when using FieldVector<K,1> like K.
 
template<Concept::Number S>
requires (SIZE == 1)
constexpr auto operator- (const FieldVector &a, const S &b) noexcept
 Binary subtraction, when using FieldVector<K,1> like K.
 
template<Concept::Number S>
requires (SIZE == 1)
constexpr auto operator- (const S &a, const FieldVector &b) noexcept
 Binary subtraction, when using FieldVector<K,1> like K.
 

Related Symbols

(Note that these are not member symbols.)

template<class K , int SIZE>
std::istreamoperator>> (std::istream &in, FieldVector< K, SIZE > &v)
 Read a FieldVector from an input stream.
 
std::ostreamoperator<< (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>
using Dune::FieldVector< K, SIZE >::const_reference = const value_type&

The type used for const references to the vector entries.

◆ 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>
using Dune::FieldVector< K, SIZE >::reference = value_type&

The type used for references to the vector entries.

◆ size_type

template<class K , int SIZE>
using Dune::FieldVector< K, SIZE >::size_type = typename Base::size_type

The type used for the index access and size operation.

◆ value_type

template<class K , int SIZE>
using Dune::FieldVector< K, SIZE >::value_type = typename Base::value_type

The type of the elements stored in the vector.

Constructor & Destructor Documentation

◆ FieldVector() [1/5]

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

Default constructor, making value-initialized vector with all components set to zero.

◆ FieldVector() [2/5]

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

Construct from a std::initializer_list of values.

◆ FieldVector() [3/5]

template<class K , int SIZE>
template<class V >
requires (IsFieldVectorSizeCorrect<V,SIZE>::value && std::is_assignable_v<K&, decltype(std::declval<const V&>()[0])>)
constexpr Dune::FieldVector< K, SIZE >::FieldVector ( const DenseVector< V > &  x)
inlineconstexpr

Constructor from another dense vector if the elements are assignable to K.

◆ FieldVector() [4/5]

template<class K , int SIZE>
template<class OtherK >
requires (std::is_assignable_v<K&, const OtherK&>)
constexpr Dune::FieldVector< K, SIZE >::FieldVector ( const FieldVector< OtherK, SIZE > &  x)
inlineexplicitconstexprnoexcept

Converting constructor from FieldVector with different element type.

◆ FieldVector() [5/5]

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

Copy constructor with default behavior.

Member Function Documentation

◆ axpy()

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

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

◆ back() [1/2]

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

return reference to last element

◆ back() [2/2]

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

return reference to last element

◆ beforeBegin() [1/2]

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

◆ beforeBegin() [2/2]

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

◆ beforeEnd() [1/2]

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

◆ beforeEnd() [2/2]

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

◆ begin() [1/2]

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

begin iterator

◆ begin() [2/2]

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

begin ConstIterator

◆ data() [1/2]

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

Return pointer to underlying array.

◆ data() [2/2]

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

Return pointer to underlying array.

◆ dim()

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

dimension of the vector space

◆ dot()

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

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()

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

checks whether the container is empty

◆ end() [1/2]

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

end iterator

◆ end() [2/2]

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

end ConstIterator

◆ explicit() [1/2]

template<class K , int SIZE>
template<Concept::Number S>
requires (std::constructible_from<K,S>)
Dune::FieldVector< K, SIZE >::explicit ( SIZE !  = 1) const &
inlinenoexcept

Constructor with a given scalar initializing all entries to this value.

◆ explicit() [2/2]

template<class K , int SIZE>
Dune::FieldVector< K, SIZE >::explicit ( SIZE !  = 1) const &
inlinenoexcept

Constructor with a given value initializing all entries to this value.

◆ find() [1/2]

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

return iterator to given element or end()

◆ find() [2/2]

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

return iterator to given element or end()

◆ front() [1/2]

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

return reference to first element

◆ front() [2/2]

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

return reference to first element

◆ infinity_norm() [1/2]

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

infinity norm (maximum of absolute values of entries)

◆ infinity_norm() [2/2]

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

infinity norm (maximum of absolute values of entries)

◆ infinity_norm_real() [1/2]

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

simplified infinity norm (uses Manhattan norm for complex values)

◆ infinity_norm_real() [2/2]

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

simplified infinity norm (uses Manhattan norm for complex values)

◆ N()

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

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

◆ one_norm()

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

one norm (sum over absolute values of entries)

◆ one_norm_real()

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

simplified one norm (uses Manhattan norm for complex values)

◆ operator const_reference()

template<class K , int SIZE>
constexpr Dune::FieldVector< K, SIZE >::operator const_reference ( ) const
inlineconstexprnoexcept

Conversion operator.

◆ operator reference()

template<class K , int SIZE>
constexpr Dune::FieldVector< K, SIZE >::operator reference ( )
inlineconstexprnoexcept

Conversion operator.

◆ operator!=()

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

Binary vector incomparison.

◆ operator*()

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

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*=()

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

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+()

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

Binary vector addition.

◆ operator+=() [1/2]

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

vector space addition

◆ operator+=() [2/2]

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

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]

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

Vector negation.

◆ operator-() [2/2]

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

Binary vector subtraction.

◆ operator-=() [1/2]

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

vector space subtraction

◆ operator-=() [2/2]

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

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/=()

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

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/4]

template<class K , int SIZE>
template<class V >
requires (IsFieldVectorSizeCorrect<V,SIZE>::value && std::is_assignable_v<K&, decltype(std::declval<const V&>()[0])>)
constexpr FieldVector & Dune::FieldVector< K, SIZE >::operator= ( const DenseVector< V > &  x)
inlineconstexpr

Assignment from another dense vector.

◆ operator=() [2/4]

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

Copy assignment operator with default behavior.

◆ operator=() [3/4]

template<class K , int SIZE>
template<class OtherK >
requires (std::is_assignable_v<K&, const OtherK&>)
constexpr FieldVector & Dune::FieldVector< K, SIZE >::operator= ( const FieldVector< OtherK, SIZE > &  x)
inlineconstexprnoexcept

Converting assignment operator from FieldVector with different element type.

◆ operator=() [4/4]

template<class K , int SIZE>
template<Concept::Number S>
requires std::constructible_from<K,S>
constexpr FieldVector & Dune::FieldVector< K, SIZE >::operator= ( const S &  scalar)
inlineconstexprnoexcept

Assignment operator from scalar.

◆ operator==()

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

Binary vector comparison.

◆ operator[]() [1/2]

template<class K , int SIZE>
constexpr reference Dune::FieldVector< K, SIZE >::operator[] ( size_type  i)
inlineconstexpr

Return a reference to the ith element.

Exceptions
RangeErrorif index i is out of range [0,SIZE) (only checked if DUNE_CHECK_BOUNDS is defined).

◆ operator[]() [2/2]

template<class K , int SIZE>
constexpr const_reference Dune::FieldVector< K, SIZE >::operator[] ( size_type  i) const
inlineconstexpr

Return a (const) reference to the ith element.

Exceptions
RangeErrorif index i is out of range [0,SIZE) (only checked if DUNE_CHECK_BOUNDS is defined).

◆ size() [1/2]

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

size method

◆ size() [2/2]

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

Obtain the number of elements stored in the vector.

◆ two_norm()

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

two norm sqrt(sum over squared values of entries)

◆ two_norm2()

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

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

Friends And Related Symbol Documentation

◆ operator* [1/2]

template<class K , int SIZE>
template<Concept::Number S>
constexpr auto operator* ( const FieldVector< K, SIZE > &  a,
const S &  b 
)
friend

Vector space multiplication with scalar.

◆ operator* [2/2]

template<class K , int SIZE>
template<Concept::Number S>
constexpr auto operator* ( const S &  a,
const FieldVector< K, SIZE > &  b 
)
friend

Vector space multiplication with scalar.

◆ operator+ [1/2]

template<class K , int SIZE>
template<Concept::Number S>
requires (SIZE == 1)
constexpr auto operator+ ( const FieldVector< K, SIZE > &  a,
const S &  b 
)
friend

Binary addition, when using FieldVector<K,1> like K.

◆ operator+ [2/2]

template<class K , int SIZE>
template<Concept::Number S>
requires (SIZE == 1)
constexpr auto operator+ ( const S &  a,
const FieldVector< K, SIZE > &  b 
)
friend

Binary addition, when using FieldVector<K,1> like K.

◆ operator- [1/2]

template<class K , int SIZE>
template<Concept::Number S>
requires (SIZE == 1)
constexpr auto operator- ( const FieldVector< K, SIZE > &  a,
const S &  b 
)
friend

Binary subtraction, when using FieldVector<K,1> like K.

◆ operator- [2/2]

template<class K , int SIZE>
template<Concept::Number S>
requires (SIZE == 1)
constexpr auto operator- ( const S &  a,
const FieldVector< K, SIZE > &  b 
)
friend

Binary subtraction, when using FieldVector<K,1> like K.

◆ operator/ [1/2]

template<class K , int SIZE>
template<Concept::Number S>
constexpr auto operator/ ( const FieldVector< K, SIZE > &  a,
const S &  b 
)
friend

Vector space division by scalar.

◆ operator/ [2/2]

template<class K , int SIZE>
template<Concept::Number S>
requires (SIZE == 1)
constexpr FieldVector operator/ ( const S &  a,
const FieldVector< K, SIZE > &  b 
)
friend

Binary division, when using FieldVector<K,1> like K.

◆ 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)

◆ operator<=> [1/3]

template<class K , int SIZE>
template<class T >
requires (Std::three_way_comparable_with<K,T>)
constexpr auto operator<=> ( const FieldVector< K, SIZE > &  a,
const FieldVector< T, SIZE > &  b 
)
friend

three-way comparison of FieldVectors

◆ operator<=> [2/3]

template<class K , int SIZE>
template<Concept::Number S>
requires (SIZE == 1)
constexpr auto operator<=> ( const FieldVector< K, SIZE > &  a,
const S &  b 
)
friend

three-way comparison of FieldVectors<1> with scalar

◆ operator<=> [3/3]

template<class K , int SIZE>
template<Concept::Number S>
requires (SIZE == 1)
constexpr auto operator<=> ( const S &  a,
const FieldVector< K, SIZE > &  b 
)
friend

three-way comparison of FieldVectors<1> with scalar

◆ operator== [1/2]

template<class K , int SIZE>
template<Concept::Number S>
requires (SIZE == 1)
constexpr bool operator== ( const FieldVector< K, SIZE > &  a,
const S &  b 
)
friend

comparing FieldVectors<1> with scalar for equality

◆ operator== [2/2]

template<class K , int SIZE>
template<Concept::Number S>
requires (SIZE == 1)
constexpr bool operator== ( const S &  a,
const FieldVector< K, SIZE > &  b 
)
friend

comparing FieldVectors<1> with scalar for equality

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: