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^\inf
sphere. - Perform area query against the circumscribed sphere to find a short list of boxes that might intersect the element.
- Generate the
element-to-sources
lookup 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
meshmode
discretization, - a DoF vector,
- a list of target points,
- targets' associated element ids.
- a
-
Add tests: - Given a function expression, compare: 1) evaluate on
meshmode
nodes -> interpolate, and 2) evaluate onvolumential
nodes. - Test algebraic exactness.
- Given a function expression, compare: 1) evaluate on
-
[ ] (Tomeshmode
). Refactorvolume_fmm.interpolate_volume_potential
to take cached area queries andmeshmode
discretizations. (I will save this for the future)
Closes #40 (closed)