bempp.api.GridFunction.evaluate_on_vertices() functions that evaluate the grid function value at the grid element centers and at the grid vertices.
I’m wondering if it’s possible to compute the value of the grid function at arbitrary points on a surface in bempp? If not in bempp-cl, maybe this feature is available in bem++ 3.3.4?
You can evaluate at an arbitrary points on cells using the following code:
function = bempp.api.GridFunction(....)
values = function.evaluate(3, np.array([[0.1, 0.3, 0.5], [0.2, 0.1, 0.5]]))
This will evaluate the function at the local coordinates
(0.3, 0.1), and
(0.5,0.5) in cell
(Using this evaluate function can be a little bit fiddly, as you have to provide the local 2D coordinates in the cell you are evaluating in, as Bempp cannot evaluate a function at an arbitrary point in 3D as the grid function is only defined on the 2D boundary surface.)