DUNE ISTL (2.9)
multitypeblockvector.hh
1// SPDX-FileCopyrightText: Copyright (C) DUNE Project contributors, see file LICENSE.md in module root
82 using field_type = Std::detected_t<std::common_type_t, typename FieldTraits< std::decay_t<Args> >::field_type...>;
84 // make sure that we have an std::common_type: using an assertion produces a more readable error message
87 "No std::common_type implemented for the given field_types of the Args. Please provide an implementation and check that a FieldTraits class is present for your type.");
161 operator[] ([[maybe_unused]] const std::integral_constant< size_type, index > indexVariable) const
231 return accumulate(*this, typename FieldTraits<field_type>::real_type(0), [&](auto&& a, auto&& entry) {
240 return accumulate(*this, typename FieldTraits<field_type>::real_type(0), [&](auto&& a, auto&& entry) {
249 return accumulate(*this, typename FieldTraits<field_type>::real_type(0), [&](auto&& a, auto&& entry) {
A Vector class to support different block types.
Definition: multitypeblockvector.hh:59
void operator=(const T &newval)
Assignment operator.
Definition: multitypeblockvector.hh:169
std::size_t size_type
Type used for vector sizes.
Definition: multitypeblockvector.hh:65
static constexpr size_type N()
Number of elements.
Definition: multitypeblockvector.hh:102
Std::detected_t< std::common_type_t, typename FieldTraits< std::decay_t< Args > >::field_type... > field_type
The type used for scalars.
Definition: multitypeblockvector.hh:82
static constexpr size_type size()
Return the number of non-zero vector entries.
Definition: multitypeblockvector.hh:95
std::tuple_element< index, TupleType >::type & operator[](const std::integral_constant< size_type, index > indexVariable)
Random-access operator.
Definition: multitypeblockvector.hh:149
FieldTraits< field_type >::real_type two_norm() const
Compute the Euclidean norm.
Definition: multitypeblockvector.hh:256
size_type dim() const
Number of scalar elements.
Definition: multitypeblockvector.hh:120
std::ostream & operator<<(std::ostream &s, const MultiTypeBlockVector< Args... > &v)
Send MultiTypeBlockVector to an outstream.
Definition: multitypeblockvector.hh:339
void operator*=(const T &w)
Multiplication with a scalar.
Definition: multitypeblockvector.hh:198
void axpy(const Ta &a, const type &y)
Axpy operation on this vector (*this += a * y)
Definition: multitypeblockvector.hh:325
void operator/=(const T &w)
Division by a scalar.
Definition: multitypeblockvector.hh:207
MultiTypeBlockVector< Args... > type
Definition: multitypeblockvector.hh:75
FieldTraits< field_type >::real_type infinity_norm_real() const
Compute the simplified maximum norm (uses 1-norm for complex values)
Definition: multitypeblockvector.hh:291
auto one_norm() const
Compute the 1-norm.
Definition: multitypeblockvector.hh:229
void operator-=(const type &newv)
Definition: multitypeblockvector.hh:188
void operator+=(const type &newv)
Definition: multitypeblockvector.hh:178
FieldTraits< field_type >::real_type infinity_norm() const
Compute the maximum norm.
Definition: multitypeblockvector.hh:260
auto one_norm_real() const
Compute the simplified 1-norm (uses 1-norm also for complex values)
Definition: multitypeblockvector.hh:238
FieldTraits< field_type >::real_type two_norm2() const
Compute the squared Euclidean norm.
Definition: multitypeblockvector.hh:247
Simple iterative methods like Jacobi, Gauss-Seidel, SOR, SSOR, etc. in a generic way.
STL namespace.
|
Legal Statements / Impressum |
Hosted by TU Dresden & Uni Heidelberg |
generated with Hugo v0.111.3
(May 27, 22:36, 2026)