Go to the documentation of this file.
20 #ifndef LIBMESH_SYSTEM_NORM_H
21 #define LIBMESH_SYSTEM_NORM_H
24 #include "libmesh/libmesh_common.h"
26 #ifdef LIBMESH_FORWARD_DECLARE_ENUMS
32 #include "libmesh/enum_norm_type.h"
78 SystemNorm(
const std::vector<FEMNormType> & norms);
87 SystemNorm(
const std::vector<FEMNormType> & norms,
88 std::vector<Real> & weights);
97 SystemNorm(
const std::vector<FEMNormType> & norms,
98 std::vector<std::vector<Real>> & weights);
125 const std::vector<Real> & v2);
180 #endif // LIBMESH_SYSTEM_NORM_H
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).
The libMesh namespace provides an interface to certain functionality in the library.
Real weight_sq(unsigned int var) const
std::vector< Real > _weights_sq
std::vector< Real > _weights
Real weight(unsigned int var) const
FEMNormType type(unsigned int var) const
SystemNorm()
Constructor, defaults to DISCRETE_L2.
virtual ~SystemNorm()=default
void set_type(unsigned int var, const FEMNormType &t)
Sets the type of the norm in variable var.
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)
This class defines a norm/seminorm to be applied to a NumericVector which contains coefficients in a ...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void set_weight(unsigned int var, Real w)
Sets the weight corresponding to the norm in variable var.
void ErrorVector unsigned int
std::vector< FEMNormType > _norms
SystemNorm & operator=(const SystemNorm &)=default