Meshmode --> Volumential Interpolation (2D)
This PR will implement bidirectional interpolation operators between meshmode and volumential,
under the assumption that the concerned meshmode discretization is based on an $N-d box (1\leq N\leq 3$).
The algorithm should build around boxtree's area query to achieve reasonable performance.
-
A container class that performs and caches tree area queries, w/t the associated tree/targets. -
A routine that builds lookup tables using the area query result. - For each simplex element in
meshmode, find its circumscribedl^\infsphere. - Perform area query against the circumscribed sphere to find a short list of boxes that might intersect the element.
- Generate the
element-to-sourceslookup using this result.
- For each simplex element in
-
(From meshmode). Implement the evaluation routine, i.e., interpolate the DoF vector to a different set of points, given:- a
meshmodediscretization, - a DoF vector,
- a list of target points,
- targets' associated element ids.
- a
-
Add tests: - Given a function expression, compare: 1) evaluate on
meshmodenodes -> interpolate, and 2) evaluate onvolumentialnodes. - Test algebraic exactness.
- Given a function expression, compare: 1) evaluate on
-
[ ] (Tomeshmode). Refactorvolume_fmm.interpolate_volume_potentialto take cached area queries andmeshmodediscretizations. (I will save this for the future)
Closes #40 (closed)