Compute \(L^2\) and \(H^1\) norms

The file getfem/getfem_assembling.h defines the functions to compute \(L^2\) and \(H^1\) norms of a solution. The following functions compute the different norms:

getfem::asm_L2_norm(mim, mf, U, region = mesh_region::all_convexes());
getfem::asm_H1_semi_norm(mim, mf, U, region = mesh_region::all_convexes());
getfem::asm_H1_norm(mim, mf, U, region = mesh_region::all_convexes());

where mim is a getfem::mesh_im used for the integration, mf is a getfem::mesh_fem and describes the finite element method on which the solution is defined, U is the vector of values of the solution on each degree of freedom of mf and region is an optional parameter which specify the mesh region on which the norm is computed. The size of U should be mf.nb_dof().

In order to compare two solutions, it is often simpler and faster to use the following function than to interpolate one mesh_fem on another:

getfem::asm_L2_dist(mim, mf1, U1, mf2, U2, region = mesh_region::all_convexes());
getfem::asm_H1_dist(mim, mf1, U1, mf2, U2, region = mesh_region::all_convexes());

These functions return the \(L^2\) and \(H^1\) norms of \(u_1-u_2\).