#include <deal.II/base/template_constraints.h>
template<typename VectorType>
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>;
}
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.