Norms
Let \(f\) be a bounded function on domain \(\Omega\).
1. L2 norms
For \(f \in L^2(\Omega)\) use normL2():
\|\| f \|\|_{L^2(\Omega)} = \sqrt{\int_\Omega |f|^2}
1.1. Interface
normL2( _range, _expr, _quad, _geomap );
Or the squared norm:
normL2Squared( _range, _expr, _quad, _geomap );
Required parameters:
- 
_range= domain of integration - 
_expr= measurable function 
Optional parameters:
- 
_quad= quadrature to use (default: runtime-chosen order) - 
_geomap= geometric mapping (default:GEOMAP_OPT) 
2. H1 norms
H1 norm or semi-norm (for \(f \in H^1(\Omega)\)) can be computed with normH1() and normSemiH1().
\begin{aligned} \|\| f \|\|_{H^1(\Omega)} &= \sqrt{\int_\Omega |f|^2 + |\nabla f|^2} \\ |f|_{H^1(\Omega)} &= \sqrt{\int_\Omega |\nabla f|^2} \end{aligned}
2.1. Interface
normH1( _range, _expr, _grad_expr, _quad, _geomap );
Or semi-norm:
normSemiH1( _range, _grad_expr, _quad, _geomap );
Required parameters:
- 
_range= domain of integration - 
_expr= measurable function - 
_grad_expr= gradient expression (row vector) 
2.2. Example
auto g = sin(2*pi*Px())*cos(2*pi*Py());
auto gradg = 2*pi*cos(2*pi*Px())*cos(2*pi*Py())*oneX()
           - 2*pi*sin(2*pi*Px())*sin(2*pi*Py())*oneY();
// gradg is a column vector; use trans() to provide a row gradient
double normH1_g = normH1( _range = elements(mesh), _expr = g, _grad_expr = trans(gradg) );
3. L-infinity norm
Use normLinf() to approximate the infinity norm by sampling (returns value and coordinates):
\|\| f \|\|_\infty = \sup_{x \in \Omega} |f(x)|
3.1. Interface
normLinf( _range, _expr, _pset, _geomap );
Required parameters:
- 
_range= domain of integration - 
_expr= measurable function - 
_pset= set of sampling points (e.g. quadrature points) 
Optional parameters:
- 
_geomap= geometric mapping (defaultGEOMAP_OPT) 
The returned object provides:
- 
value()— maximum value - 
operator()()— synonym tovalue() - 
arg()— coordinates where the maximum occurs