deal.II version GIT relicensing-2289-g1e5549a87a 2024-12-21 21:30:00+00:00
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
concepts::is_vector_space_vector Concept Reference

#include <deal.II/base/template_constraints.h>

Concept definition

template<typename VectorType>
concept concepts::is_vector_space_vector = requires(VectorType U,
VectorType V,
VectorType W,
typename VectorType::value_type a,
typename VectorType::value_type b,
typename VectorType::value_type s) {
typename VectorType::value_type;
typename VectorType::size_type;
typename VectorType::real_type;
U.reinit(V);
U.reinit(V, true);
U = V;
U = a;
U.equ(a, V);
U *= a;
U /= a;
U.scale(V);
U += V;
U -= V;
U.add(a);
U.add(a, V);
U.add(a, V, b, W);
U.sadd(s, a, V);
{
U.mean_value()
} -> std::convertible_to<typename VectorType::value_type>;
{
U.l1_norm()
} -> std::convertible_to<typename VectorType::real_type>;
{
U.l2_norm()
} -> std::convertible_to<typename VectorType::real_type>;
{
U.linfty_norm()
} -> std::convertible_to<typename VectorType::real_type>;
{
U *V
} -> std::convertible_to<typename VectorType::value_type>;
{
U.add_and_dot(a, V, W)
} -> std::convertible_to<typename VectorType::value_type>;
{
U.size()
} -> std::convertible_to<typename VectorType::size_type>;
{
U.all_zero()
} -> std::same_as<bool>;
{
U.get_mpi_communicator()
} -> std::same_as<MPI_Comm>;
}

Detailed Description

A concept that tests whether a class VectorType has the required interface to serve as a vector in vector-space operations – principally what is required to run iterative solvers: things such as norms, dot products, etc.

Definition at line 985 of file template_constraints.h.