For my project I am interested in improving the accuracy of my solution with higher order functions, therefore I am restricted to using the legacy version of bempp.
My question is about coefficients, both in the specifying the grid function and in the solution. How do I know what interpolation points the coefficients belong to? The coefficients that belong to the nodes are obvious, but for defining the grid function how do I map my data to the mesh? I can`t seem to find information about this in the documentation.
Thanks in advance,
this is very legacy code. I would have to dig deep into the basis functions from the Dune library that we were using in the legacy version. We will eventually implement at least quadratic functions for the new Bempp-cl. But this is not a priority at the moment.
just a quick note, since I encountered this issue when coupling ngsolve to bempp:
On the reference element, the degrees of freedom are the lagrange nodes for the points generated by the following snippet:
nd=int((k+1)*(k+2)/2) ##number of degrees of freedom on the reference element
if k == 0:
eval_pts = [(1/3, 1/3)] # center point
eval_pts = [ (i/k, j/k) for j in range(k+1) for i in range(k-j+1)]
You then probably have to use the local_to_global map to get to the real coefficients. Maybe you can look at ngbem/ngbem.py at master · arieder/ngbem · GitHub for inspiration.
Thank you both for your reply. I dug through the source code and have come to the same conclusion.