|
dune-istl 2.10
|
Loading...
Searching...
No Matches
multitypeblockvector.hh
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright © 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...>;
89 using real_type = Std::detected_t<std::common_type_t, typename FieldTraits< std::decay_t<Args> >::real_type...>;
91 // make sure that we have an std::common_type: using an assertion produces a more readable error message
95 "No std::common_type implemented for the given field_type/real_type of the Args. Please provide an implementation and check that a FieldTraits class is present for your type.");
157 operator[] ([[maybe_unused]] const std::integral_constant< size_type, index > indexVariable) const
Simple iterative methods like Jacobi, Gauss-Seidel, SOR, SSOR, etc. in a generic way.
void operator=(const T &newval)
Assignment operator.
Definition multitypeblockvector.hh:165
static constexpr size_type N()
Number of elements.
Definition multitypeblockvector.hh:110
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:103
std::tuple_element< index, TupleType >::type & operator[](const std::integral_constant< size_type, index > indexVariable)
Random-access operator.
Definition multitypeblockvector.hh:145
typename MultiTypeBlockVector< Args... >::field_type field_type
Definition multitypeblockvector.hh:44
size_type dim() const
Number of scalar elements.
Definition multitypeblockvector.hh:116
Std::detected_t< std::common_type_t, typename FieldTraits< std::decay_t< Args > >::real_type... > real_type
The type used for real values.
Definition multitypeblockvector.hh:89
field_type dot(const type &newv) const
Definition multitypeblockvector.hh:216
void operator*=(const T &w)
Multiplication with a scalar.
Definition multitypeblockvector.hh:194
void axpy(const Ta &a, const type &y)
Axpy operation on this vector (*this += a * y)
Definition multitypeblockvector.hh:319
real_type two_norm() const
Compute the Euclidean norm.
Definition multitypeblockvector.hh:252
void operator/=(const T &w)
Division by a scalar.
Definition multitypeblockvector.hh:203
MultiTypeBlockVector< Args... > type
Definition multitypeblockvector.hh:75
auto one_norm() const
Compute the 1-norm.
Definition multitypeblockvector.hh:225
real_type two_norm2() const
Compute the squared Euclidean norm.
Definition multitypeblockvector.hh:243
real_type infinity_norm_real() const
Compute the simplified maximum norm (uses 1-norm for complex values)
Definition multitypeblockvector.hh:286
void operator-=(const type &newv)
Definition multitypeblockvector.hh:184
real_type infinity_norm() const
Compute the maximum norm.
Definition multitypeblockvector.hh:256
field_type operator*(const type &newv) const
Definition multitypeblockvector.hh:209
void operator+=(const type &newv)
Definition multitypeblockvector.hh:174
typename std::tuple_element< i, std::tuple< Args... > >::type type
Definition multitypeblockvector.hh:352
auto one_norm_real() const
Compute the simplified 1-norm (uses 1-norm also for complex values)
Definition multitypeblockvector.hh:234
typename MultiTypeBlockVector< Args... >::real_type real_type
Definition multitypeblockvector.hh:45
STL namespace.
constexpr auto size(const T &t)
constexpr void forEach(Range &&range, F &&f)
typename detected_or< nonesuch, Op, Args... >::type detected_t
std::ostream & operator<<(std::ostream &s, const bigunsignedint< k > &x)
T field_type
T real_type
A Vector class to support different block types.
Definition multitypeblockvector.hh:59
T max(T... args)
Legal Statements / Impressum | Hosted by TU Dresden & Uni Heidelberg | Generated by
1.9.8