20#ifndef LIBMESH_SYSTEM_NORM_H
21#define LIBMESH_SYSTEM_NORM_H
24#include "libmesh/libmesh_common.h"
86 std::vector<Real> & weights);
96 std::vector<std::vector<Real>> & weights);
123 const std::vector<Real> & v2);
void ErrorVector unsigned int
This class defines a norm/seminorm to be applied to a NumericVector which contains coefficients in a ...
virtual ~SystemNorm()=default
SystemNorm(SystemNorm &&)=default
void set_type(unsigned int var, const FEMNormType &t)
Sets the type of the norm in variable var, as well as for any unset variables with index less than va...
std::vector< FEMNormType > _norms
void set_weight(unsigned int var, Real w)
Sets the weight corresponding to the norm in variable var, as well as for any unset variables with in...
std::vector< Real > _weights
void set_off_diagonal_weight(unsigned int i, unsigned int j, Real w)
Sets the weight corresponding to the norm from the variable pair v1(var1) coming from v2(var2).
FEMNormType type(unsigned int var) const
SystemNorm & operator=(const SystemNorm &)=default
SystemNorm()
Constructor, defaults to DISCRETE_L2 with weight of 1.0.
std::vector< std::vector< Real > > _off_diagonal_weights
One more data structure needed to store the off diagonal components for the generalize SystemNorm cas...
Real calculate_norm(const std::vector< Real > &v)
std::vector< Real > _weights_sq
Real weight(unsigned int var) const
Real weight_sq(unsigned int var) const
SystemNorm(const SystemNorm &)=default
Copy/move ctor, copy/move assignment operator, and destructor are all explicitly defaulted for this s...
The libMesh namespace provides an interface to certain functionality in the library.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real