FEniCS/basix

Interpolation interface

Closed this issue · 0 comments

Currently, in dolfinx we get an interpolation matrix from basix.
But instead we could interpolate the same way we apply dof transformations (apply_dof_transformation):

std::vector<double>coefficients (ndofs * bs);
auto points = element.points();
values  = some_function_to_evaluate_values_at_points(points);
element.interpolate(values, coefficients, bs);

So then, in dolfinx, we could call this function without having to reason if basix is interpolating by entity or by just multiplying the interpolation matrix. This allows us to continue the work with interpolating functions from different function spaces (but the same family).

It would be more consistent with the current interface (for transformation and pullback).