What can I do with it?
Each recipe is a short program from the repository's examples/ directory, with the output it prints. The test suite runs every one of them, so what you read here is what the library does today. Each says what it assumes of your data and what it costs.
Build a mesh, project a smooth function onto the lowest-order space and read the value at a point.
Pass vertex and tetrahedron arrays from Gmsh, TetGen or your own code, check them, and find the cell that contains a point.
Load a .msh file (ASCII, format 2.2 or 4.1, first-order tetrahedra) with parseGmsh and use it like any other mesh. What cannot be used is an error that says why.
A potential, an edge field, a flux and a density: what each one projects to and where it lives.
The canonical interpolation refuses it; the stable operator integrates against a weight and stays finite. This is what the bounded operators are for.
The gradient of the projection is the projection of the gradient, so curl-free fields stay curl-free. Two ways to see it.
Which operators reproduce boundary values exactly, and which trade that for needing less of the input.
Bisect the cells around a feature, keep the mesh conforming, and watch the error near the feature fall.
Locate the evaluation points once, then project each new time step cheaply.
Project one field at many points on worker threads, or compute the coefficients of a bounded operator on a pool. The result is bitwise the same as on one thread.
Canonical interpolation of any degree, the locally bounded higher-order projection, and the trace-preserving operator above the lowest order.